2014-06-11 3 views
0

Google 웹 애플리케이션 용 REST API를 설정했으며 여러 기기에 앱을 제작 중입니다. 이제는 보안을 유지하는 방법을 찾고 있습니다. OAuth 2는 논리적 인 방법으로 보입니다. 특히 나중에 사용자를 위해 API를 열어보기를 원하기 때문입니다. 그러나 이것에 완전히 익숙하지 않아 OAuth 2를 읽었으며 몇 가지 대답을 찾는데 어려움이 있습니다.API 및 앱용 OAUTH 2

우리가 사용하고 싶은 솔루션은 Googles OAuth 2와 매우 유사합니다. 앱을 처음 열면 코드가 표시됩니다. 그런 다음 웹 응용 프로그램에서 코드를 입력하는 계정에 로그인하면 장치가 신뢰할 수있는 장치로 추가됩니다. 여기에서 필요한 경우 나중에 액세스 권한을 취소 할 수 있습니다. 앱은 웹 애플리케이션의 사용자 계정에 추가 될 때 받게 될 액세스 토큰을 폴링합니다. 그러면 사용자는 앱을 통해 자신의 콘텐츠에 액세스 할 수 있어야합니다.

지금까지 클라이언트 인증 정보가있는 OAuth 2는 신뢰할 수있는 앱에서 사용해야하는 것으로 보이지만 사용자를 식별해야하고 시스템에 데이터를 전송할 예정이므로 확실하지 않습니다. 나는 바른 길을 가고있다?

답변

1

응용 프로그램과 관련된 특수한 소리를 사용하는 초기 흐름. 즉, 이러한 흐름은 OAuth 2.0에 정의되어 있지 않습니다.

Client Credentials Grantclient type이 '기밀'인 경우에만 허용됩니다. 따라서 Android 및/또는 iOS에 응용 프로그램을 설치하는 경우 클라이언트 자격 증명 부여를 사용하지 않아야합니다.

OAuth 2.0에 정의 된 흐름 (예 : Authorization Code Grant 또는 OAuth 2.0)에 따라 사용자 상호 작용과 관련된 흐름을 구현해야한다는 점에 유의해야합니다. Implicit Grant).

응용 프로그램의 첫 번째 호출시 사용자에게 표시되는 특수 코드가 고유하게 생성되어 사용자에게 할당 된 경우 'client_id'로 코드를 사용하려는 경우 'response_type = none'을 사용할 수 있습니다 '는 OAuth 2.0 Multiple Response Type Encoding Practices, 4. None Response Type으로 정의됩니다. 이 섹션에서는 아래 시나리오를 예로 들어 설명합니다.

한 가지 시나리오는 사용자가 시장에서 응용 프로그램을 구입하고자 할 때 응용 프로그램 설치를 승인하고 응용 프로그램에 보호 된 리소스에 대한 액세스를 한 번에 허용하려는 경우입니다. 그러나 사용자가 현재 (아직 활성화되지 않은) 응용 프로그램과 상호 작용하지 않기 때문에 권한 부여 단계에서 액세스 자격 증명을 동시에 반환하는 것은 적절하지 않습니다.

+0

안녕하세요 타카히코, 아래에서 OAuth 2.0 접근과 관련된 질문에 대한 의견을 말할 수 있습니다. 아래에서 언급 한 내용을 사용하거나 더 좋은 방법이 있으면 사용할 수 있습니다. https://stackoverflow.com/questions/44620839/what-is-the-right-oauth-workflow-for-3rd-party-rest-apis – Jit