다리가 두 개인 OAuth 요청을 사용하도록 OpenID Connect Provider 구성

일반 OAuth 플로우는 세 개의 "다리", 즉 클라이언트와 권한 부여 서버 사이의 상호작용 단계로 구성됩니다. 다리가 두 개인 OAuth 시나리오에서 클라이언트는 사전에 권한이 부여된 범위를 사용하므로 사용자와의 상호작용이 필요하지 않으며, 일반 플로우에서 다리 중 하나를 수행할 필요가 없습니다. 특히, 사용자는 권한 부여 서버에 대해 인증하거나 요청된 범위에서 지정된 정보 공유에 대해 승인을 제공할 필요가 없습니다. 대신, 요청된 모든 범위 매개변수는 사전에 권한 부여된 것으로 간주되고 자동으로 요청 토큰에 추가된 후 요청 토큰이 권한 부여 서버로 전송됩니다.

시작하기 전에

이 태스크는 OpenID Connect 제공자로 적절하게 구성된 Liberty 서버가 있을 것으로 예상합니다.

이 태스크 정보

두 개의 다리 또는 단계가 있는 시나리오에서 Open ID Connect 클라이언트는 다리가 두 개인 HTTP 요청을 client_credential 또는 resource owner passwordgrant type과 함께 전송할 수 있습니다. 이러한 요청은 권한 부여 엔드포인트를 통과하지 않으므로 사용자가 요청된 범위를 확인하고 승인할 범위 승인 양식이 없습니다. 그러나 OpenID Connect Provider는 여전히 access_token 컨텐츠에서 권한 부여된 범위를 처리해야 합니다.

다리가 두 개인 OAuth 요청을 처리할 장치가 있는 OpenID Connect 제공자로 구성된 Liberty 서버는 다음 기준을 사용하여 사전에 권한 부여된 범위를 승인합니다.

  1. 요청의 grant_type 매개변수 값이 client_credential 또는 resource owner password이고 요청이 OAuth 2.0 요청인 경우, 이 요청에서 정의된 모든 범위가 승인되고 액세스 토큰의 컨텐츠에 복사됩니다. 이는 OAuth 2.0 기능의 기존 동작입니다.
  2. 요청이 OpenID Connect 요청이거나 JWT Token OAuth 또는 OpenID Connect 요청인 경우에는 다음 기준이 사용됩니다.
    • 요청에 지정된 범위 매개변수가 없는 경우, OpenID Connect Provider는 요청을 승인하지 않습니다.
    • 요청된 범위는 클라이언트 구성의 scope 속성으로 정의된 범위 목록에 있어야 하며 또한 클라이언트 구성의 preAuthorizedScope 목록에도 지정되어야 합니다.

이 태스크는 OpenID Connect 제공자로 작동하는 Liberty 서버가 다리가 두 개인 OAuth 요청을 사용할 수 있도록 구성하는 방법을 설명합니다.

프로시저

클라이언트에 대해 사전에 권한 부여된 범위 목록을 지정하려면 server.xml 파일의 적절한 <oauthProvider> 요소 내에 있는 클라이언트 구성의 scopepreAuthorizedScope 속성에 필요한 범위를 추가하십시오. 표시된 예제에서 profileemail 범위는 OpenID Connect Provider가 리턴한 액세스 토큰의 범위 목록에 지정되도록 규정됩니다. phone 범위는 preAuthorizedScope 목록에 없으므로 사전에 권한 부여된 범위로 고려되지 않습니다.
<oauthProvider id="OAuthConfigSample" ...>
 ....
           <localStore>
             <client name="client01" secret="{xor}..."
               displayname="client01"
               scope="profile email phone"
               preAuthorizedScope="profile email"
               enabled="true" />
             ....
           </localStore>
</oauthProvider>
참고: 요청된 범위가 클라이언트 구성의 scope 속성에 나열되지 않은 경우에는 리턴되는 액세스 토큰의 범위에서 생략됩니다. 요청된 범위가 클라이언트 구성의 scope 속성에 나열되어 있지만 클라이언트 구성의 preAuthorizedScope 목록에는 포함되지 않은 경우, OpenID Connect Provider의 응답에서 invalid_grant 오류를 트리거합니다.

주제의 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_oidc_2leg_oauth_req
파일 이름: twlp_oidc_2leg_oauth_req.html