2010-02-26 2 views
1

나는 Asp.net MVC 애플리케이션에서 OpenID로 시작하고 OpenID를 사용할 때 몇 가지 함정이 무엇인지 궁금해했다. 내가 묻는 이유는 OpenID 구현을 사용할 때 많은 경고를 읽었 기 때문입니다. 주로 "그 라이브러리를 사용하지 마십시오! URL에서 한 단어 만 바꾸면 사이트는 누구에게나 열려 있습니다 !!!!"Aspend.net에 대한 OpendID 보안 팁

나는 거의 DotNetOpenAuth를 사용하게 될 것이지만, 초보자로서 사용되는 일부 온도는 약간 외견 상 인 것처럼 보인다. 그것은 무지가 내 응용 프로그램을 매우 안전하게 만들지 않기 때문에이 질문을 한 이유 중 하나이기도합니다.

정답이 하나도 없기 때문에이 질문을 '커뮤니티 위키'로하는 것이 옳은 일이라고 생각합니다. 이런 종류의 질문이 허용되지 않으면 즉시 삭제하겠습니다.

Pickels

답변

1

DotNetOpenAuth 그 중 하나가 아닌 사전에

덕분에, "한 단어를 변경하고이 깨진"도서관. 사용하는 것이 좋습니다. 지금까지 용어로

:

  • ClaimedIdentifier는 새로운 이름입니다. 대소 문자를 구분하여 처리하고 데이터베이스를 기반으로 사용자 레코드를 조회 할 때 데이터베이스가 대소 문자를 정확히 구분하는지 확인하십시오. 다른 사용자와 동일한 http 및 https URL을 고려하지 마십시오. 완전히 다른 것으로 간주해야합니다.
  • 사용자 제공 식별자은 사용자가 OpenID 상자에 입력 한 리터럴 문자열입니다 (있는 경우). 여기에있는 어떤 것도 권위있는 것으로 취급해서는 안되며, 그에 근거한 보안 결정을 내리지 마십시오. 응답에서 ClaimedIdentifier를 가져 와서이를 기반으로 의사 결정을 내릴 때까지 기다리십시오. ProviderEndpoint.
  • OP 엔드 포인트 (별명 공급자 엔드 포인트)은 OpenID Provider의 OpenID 엔드 포인트의 URL이며, 특정 제공자 만 신뢰하려는 경우 결정할 수 있습니다.
  • 클레임과 같이 전자 메일 주소 및 사용자의 전체 이름은 해당 특성을 요청할 경우 공급자로부터 올 수 있습니다. 그러나 당신이 신뢰하는 OP 엔드 포인트로부터의 클레임이 아니라면 정확한 것으로 믿지 마십시오.
+0

답변을 주셔서 감사합니다. 처음 두 가지는 정말 좋은 팁입니다. – Pickels

1

기존 .NET 프로젝트에 대해서는 말할 수 없지만 초보자를위한 기본 설명을 제공 할 수 있습니다. 일부 경우와 선택적 기능이 있지만 기본 흐름을 이해하는 것은 어렵지 않습니다. OpenID 지원 서비스 공급자 ("신뢰 당사자"또는 RP)는 타사 웹 사이트 ("ID 공급자"또는 IdP)에 대한 인증의 암호 확인 기능을 효과적으로 분산시킵니다. 이러한 IdP에 대한 (최종 사용자 특정) URL은 최종 사용자에 의해 지정되며 (RP의 관점에서)이 URL은 최종 사용자의 "식별자"입니다. RP는 식별자 URL에 대한 서버 측 호출을 수행하여 활동 토큰을 얻은 다음 브라우저를 식별자 URL로 반송합니다. 이제는 최종 사용자가 IdP와 상호 작용하고 IdP가 만족 될 때 성공을 나타 내기 위해 쿼리 문자열에 몇 가지 정보가 추가 된 RP가 다시 브라우저로 반송됩니다. Voila.

사용자는 신원을 확인하는 사람을 결정할 수 있기 때문에 전화기에서 전화를 걸거나 연결된 장치를 통해 손도장을 요구하는 등 완전히 다른 인증 메커니즘을 사용하는 서비스를 선택할 수도 있습니다. 또는 전세계에서 다른 사람을 신뢰하지 않으면 자신의 IdP를 프로그래밍하고 자신의 신원을 완전히 제어 할 수 있습니다.

RP는 서비스 전반에 걸쳐 실제로 식별자를 공개합니다 (예 : SO). 최종 사용자의 사용자 이름으로 사용합니다. 따라서 허영 URL이나 블로그 URL을 사용하는 것이 유행이며 http://superopenidprovider.com/adjad9va8ivasdlkjnq8t7보다 의미가 있습니다. 따라서 자신의 홈페이지/블로그에 적절한 LINK 태그를 포함하는 최종 사용자가 http://superopenidprovider.com/adjad9va8ivasdlkjnq8t7에 포함하는 IdP 위임 개념이 자신의 홈페이지/블로그 URL을 식별자로 사용할 수 있습니다. RP는이 기능을 알고 적절한 조치를 취해야합니다.

높은 수준의 개념 Wikipedia에서 대략

. 이것들은 Andrew의 대답보다 개념적입니다.

  • 최종 사용자 서비스 제공 업체에 자신의 정체성을 주장하고 싶은 사람.
  • Identity 단일 최종 사용자와 관련된 서비스 공급자 관련 정보입니다. 나는. 최종 사용자가 식별하여 보호하고자하는 모든 것.
  • 식별자 최종 사용자가 제공 한 OpenID 인증을 시작할 수있는 최종 사용자 별 URL입니다.
  • RP (Reelying Party) OpenID를 사용하여 최종 사용자의 ID 클레임의 진위를 결정하는 서비스 공급자입니다.
  • 신뢰 당사자의 OpenID 인증 요청에 응답 할 수있는 ID 제공 업체 (IdP) 웹 양식 및 쿠키를 통해 최종 사용자와의 암호 기반 챌린지/응답을 포함하는 웹 사이트입니다. IdP는 일반적으로 여러 사용자를 지원하므로 최종 사용자가 사이트를 통해 식별자를 등록하고 관리 할 수 ​​있습니다. 그러나 개인은 자신을 인증하는 자체 IDP를 호스팅 할 수 있습니다.
관련 문제