나는 단지 어떤 종류의 사각 지대가 있는지 모르겠지만 OAuth 2 사양을 여러 번 읽었고 메일 링리스트 아카이브를 읽었으며 암묵적 보조금이 왜 필요한지에 대한 좋은 설명을 찾지 못했습니다. 액세스 토큰을 얻기위한 흐름이 개발되었습니다. Authorization Code Grant와 비교할 때 강력한 이유없이 클라이언트 인증을 포기하는 것 같습니다. "스크립팅 언어를 사용하여 브라우저에서 구현 된 클라이언트에 어떻게 최적화되어 있습니까?"
두 흐름 모두 동일하게 시작됩니다 (출처 : http://tools.ietf.org/html/draft-ietf-oauth-v2-22 ) :
- 클라이언트는 자원 소유자의 사용자 에이전트를 권한 부여 엔드 포인트로 지정하여 플로우를 시작합니다.
- 권한 부여 서버는 (사용자 에이전트를 통해) 자원 소유자를 인증하고 자원 소유자가 클라이언트의 액세스 요청을 승인 또는 거부하는지 여부를 설정합니다.
- 자원 소유자가 액세스 권한을 부여한다고 가정하면 권한 부여 서버는 이전에 제공된 (요청시 또는 클라이언트 등록 중에) 리디렉션 URI를 사용하여 사용자 에이전트를 클라이언트로 다시 리디렉션합니다.
- 리디렉션 URI에는 인증 코드 (인증 코드 흐름)가 포함되어 있습니다.
- 리디렉션 URI에는 URI 조각에 액세스 토큰이 포함됩니다 (암시 적 흐름)
흐름이 분할되는 곳입니다. 두 경우 모두이 시점에서 리디렉션 URI는 클라이언트가 호스트하는 일부 엔드 포인트에 대한 것입니다.
- 권한 부여 코드 플로우에서 사용자 에이전트가 URI의 권한 부여 코드를 사용하여 해당 엔드 포인트에 도달하면 해당 엔드 포인트의 코드가 클라이언트 신임 정보와 함께 권한 코드를 액세스 토큰에 대한 권한 코드와 교환하여 필요에 따라 사용할 수 있습니다. 예를 들어, 페이지의 스크립트가 액세스 할 수있는 웹 페이지에 쓸 수 있습니다.
- 암시 적 흐름은이 클라이언트 인증 단계를 모두 건너 뛰고 클라이언트 스크립트를 사용하여 웹 페이지를로드합니다. 여기에 액세스 토큰이 너무 많이 전달되지 않도록하는 URL 조각에는 귀여운 트릭이 있지만 최종 결과는 동일합니다. 클라이언트 호스팅 사이트는 액세스 토큰을 가져올 수있는 스크립트가있는 페이지를 제공합니다. .
따라서 내 질문 : 클라이언트 인증 단계를 건너 뛰면 무엇을 얻었습니까?