2013-08-09 5 views
1

우리는 특정 고객 데이터에 액세스해야하는 새로운 앱을 개발하고 있으며 OAuth는 수명이 긴 액세스 토큰, 특정 리소스 또는 범위에 대한 액세스 권한 부여 기능 등 우리의 요구 사항에 절대적으로 적합한 것으로 보입니다. 우리는 이 아니라을 찾고 있습니다. 여기서 '페이스 북'유형의 기능을 찾고 있습니다. 기존 고객 로그인 데이터베이스를 기반으로 한 단일 OAuth 인증 서버를 공개하고 웹 및 기본 앱이이 엔드 포인트를 통해 사용자를 인증 할 수있게하려고합니다.OAuth 스타일의 API 인증 및 승인을 제공하려면 OAuth 2뿐 아니라 OpenID도 구현해야하나요?

나는 DotNetOpenAuth 코드 샘플을보고 있었고 모든 OAuth 2 예제는 OpenID를 사용하여 초기 인증을 수행 한 다음 OAuth를 사용하여 실제로 리소스에 대한 액세스 권한을 부여하는 것으로 나타났습니다.

제 생각에는 '무단 권한'을 사용하여 초기 인증을 수행하여 전체 프로세스에 OAuth2를 사용할 수 있다는 점입니다. 연합 인증을 지원하고 싶지 않기 때문에 OpenID는 실제로 아무것도 제공하지 않으므로 가능한 경우 단순화를 위해 단일 프로토콜을 사용합니다.

.NET을 사용하여 구축 된 순수 OAuth2 인증 서버의 좋은 예가 있습니까? DotNetOpenAuth와 함께 제공되는 예제 코드를 잘못 이해 했습니까? 아니면 초기 인증 단계에서 OpenID가 필요합니까?

답변

1

OAuth2.0과 OpenId는 서로 관련이 없습니다. OAuth2.0 구현에서 사용자 정의 로그인 전략을 구현할 수 있습니다.

"리소스 소유자"가 될 것이므로 (응용 프로그램이 사용자 기반을 소유하고있는 것으로 이해함) DNOA 인증 서버 샘플에서 openid 로그인을 표준 asp.net 로그인으로 간단하게 바꿀 수 있습니다.

OAuth2.0 프로토콜은 액세스 토큰을 내보내려면 사용자 신원을 확인하기 만하면됩니다. 즉, 신원 확인 방법은 전적으로 사용자에게 달려 있습니다.