2014-09-12 3 views
2

모바일 애플리케이션을 구축 중이며 나중에 웹 애플리케이션이 될 수도 있습니다. 서버 측은 ASP.NET MVC + 웹 API 응용 프로그램이며 서비스의 사용자 관리 및 인증을 구현하는 방법에 대해 생각하고 있습니다.모바일 앱 웹 API 인증

앱에 등록/로그인 화면을 어떻게 구현해야합니까? 네이티브 앱 양식은 API 요청을 서비스에 보내거나 웹 브라우저 구성 요소을 표시하고 을 표시하고 웹 사이트의 로그인 페이지를 표시 한 다음 사용자가 로그인 한 후 토큰을 추출하는 것이 더 바람직합니까? 첫 번째 옵션은 더 사용자 친화적이지만 두 번째 옵션은 이전 버전의 앱을 손상시키지 않고 로그인/등록 페이지 (예 : 외부 인증 공급자 추가)를 변경하게합니다.

두 번째 질문은 외부 인증 공급자에 관한 것입니다. ASP.NET ID는 그들에 대한 좋은 지원을 가지고 있으며 사용자가 Facebook이나 다른 OAuth2 공급자를 사용하여 등록하게하는 것이 가능합니다. 앱의 API를 공개적으로 공개하려는 경우 외부 인증 공급자에 대한 지원을 추가하는 것이 합리적입니까? 그게 좋은 생각이 아닌 이유가 있습니까?

답변

2

첫 번째 옵션은 사용자가 자신의 암호를 관리해야한다고 생각하는 경우 가장 좋습니다. 당신은 당신의 서비스에 안전한 호출을하고, 결과적으로 서비스가 베어러 토큰을 생성하게하십시오. 그것은 익명의 전화 일 것입니다. 나는 내가 그 길을 가야하는이 질문에서 답을 사용 : 사용자가 자신의 자격 증명을 사용하여 당신을 신뢰 가능성이 적은

Get IPrincipal from OAuth Bearer Token in OWIN

경우, 웹보기 및 외부 공급자가 좋은 대안입니다. 모바일 장치에서 앱 클라이언트 ID 및 클라이언트 암호를 공유하고 싶지 않으므로 "암묵적 허가 흐름"을 지원하는 제공 업체와 협력해야합니다. 이 접근 방식은 웹보기를 사용하여 로그인 한 다음 응답의 클라이언트 URI 조각에서 토큰을 캡처하는 것을 포함합니다. 나는 그것이 위치 머리말에있다라고 생각한다. 그러나 나 앞에서 일하는 예를 가지지 마라. 다음과 같이 : https://your.domain.com/#access_token = 8473987927394723943294

나중에 각 api 호출과 함께 토큰을 전달합니다.

행운을 빈다.