2009-06-19 5 views
7

회사 나는 내부 웹 사이트를 외부 세계에 게시하려고하지만, 쉬운 방법으로 방문자를 식별하기를 원합니다. 일부 기능은 모든 방문자에게 표시되지만 대부분 인증 된 방문자에게 표시되어야합니다. 관리 기능은 자체 인증 시스템을 구현하는 것을 고려하고 있지만, 이미 사용할 수있는 기존 기술을 사용하고 사용자 이름/비밀번호를 관리하지 않도록 제안했습니다. (보안에 대해 이야기 할 때 우리는 아마추어이기 때문에 인증은 매우 좋을 필요가 있습니다.)OpenID 구현하기 : 사용자 식별하기

Google에서 시작하여 OpenID으로 시작하여 그들이 제공 한 라이브러리를 검사했습니다. 사용하기 쉽고 사용자가 인증되었음을 알리는 토큰을 얻을 수 있습니다. 하지만이 사용자를 어떻게 식별하여 ID/토큰/무엇이든간에 프로파일 정보를 연결할 수 있습니까?

간단하게 유지하기 위해 내가 놓친 것이 있습니다. Google을 통해 방문자를 인증 한 다음이 사용자에게 영원히 링크 할 수있는 토큰을 얻는 방법을 보여주는 예제가 필요합니다. (따라서 세션 토큰이 없습니다.)이 토큰은 사용자가 자신의 프로필을 작성하는 데 사용될 수 있습니다.

+1

여기에서 "Google"에 대해 이야기하는 것이 혼란 스럽습니다. "Google에서 OpenID"라고 말하면 "Andot Arnott가 관리하고 Google Code에서 호스팅되는 DotNetOpenAuth 라이브러리"를 의미합니다. 하지만 "Google을 통해 방문자를 인증"하는 것이 무슨 뜻인지 잘 모르겠습니다. 다른 사용자의 OpenID가 아닌 사용자 만 Google 계정을 사용해야한다는 의미입니까? "토큰"이 필요하다면 Gmail 주소가 필요한 것처럼 들리지 않습니다. – keturn

+0

사실, 지금은 그냥 간단하게 유지하고 Google OpenID 만 지원하고 싶습니다. 이 프로젝트는 여전히 개념 증명이며, 저는 우리 자신의 인증 시스템을 구현하는 대신 OpenID를 사용하도록 경영진을 설득하려고합니다. 그렇다면 오픈 아이디는 개방형 표준이기 때문에 다른 공급자에게도 사용하기가 어려워서는 안됩니다 ... –

답변

4

태그에서 언어가 C#이라고 제안 했으므로 DotNetOpenAuth을 권합니다. 무료이며, 사용자를 구별하는 데 사용할 수있는 토큰 (클레임 된 식별자라고하는 OpenID 용어로)을 얻는 방법을 보여주는 샘플이 포함되어 있습니다. 당신은 단지 그것의 LoggedIn 이벤트를 처리하고 e.ClaimedIdentifier 속성을 얻을 OpenIdTextBox 또는 OpenIdLogin 제어를 사용하는 경우

는 주장 식별자 (당신이 찾고있는 영구 식별자)를 얻으려면. 프로그래밍 방식으로 (컨트롤 없음) 수행하는 경우 OpenIdRelyingParty.GetResponse() 메서드는 얻을 수있는 ClaimedIdentifier 속성이있는 IAuthenticationResponse 인터페이스를 반환합니다.

그런 다음 일부 OpenID 클레임 식별자를 관리 역할에 포함시킬 수있는 ASP.NET 역할 공급자를 구현할 수 있으므로 표준 ASP.NET 인증 기법을 통해 개인을 점차적으로 잠글 수 있습니다 인증 했어.

+0

내 질문에 언급 된 것과 동일한 사이트로 연결된다는 것을 알고 계십니까? 그리고 네, 그게 사소한 일이지만, 어떻게 든 영구 식별자 또는 OpenID 계정을 내 사용자 데이터베이스에 연결할 수있는 방법을 찾지 못했습니다. –

+0

와우. :) 죄송합니다, 그 링크를 확인하지 않았습니다 ... 그냥 일반 openid.net 사이트에 있다고 가정합니다. 필자가 필요로하는 영구 식별자를 얻는 방법에 대한 자세한 내용을 포함하도록 답변을 업데이트했습니다. –

+0

감사! 내가 놓친 것. :-) –

관련 문제