OAuth 엔드포인트 이해

OAuth2 승인 서버로 작업을 수행하려면 Apigee는 클라이언트가 토큰과 인증 코드를 요청할 수 있는 엔드포인트를 노출해야 합니다. 이 주제에서는 이러한 엔드포인트를 간단히 소개하고 Apigee에서 이를 설정하는 방법을 설명합니다.

OAuth2 엔드포인트란 무엇인가요?

OAuth2 엔드포인트는 클라이언트가 OAuth 토큰(또는 인증 코드)을 요청하도록 호출하는 URL입니다. 다음은 액세스 토큰의 요청 예시입니다.

$ curl -i -H "ContentType: x-www-form-urlencoded" \
-X POST "https://apitest.acme.com/oauth/client_credential/accesstoken" \
-d "grant_type=client_credentials" \
-H "Authorization: Basic c3FIOG9vSGV4VHo4QzAySVg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ"

이 요청을 처리하려면 OAuthV2 정책이 필요합니다. 위의 예시 요청에서 추론할 수 있듯이 정책은 '클라이언트 사용자 인증 정보' 권한 유형을 지원하고 /oauth/client_credentials/accesstoken 경로에서 실행되어야 합니다.

이는 client_credentials 권한 부여 유형을 수락하도록 구성된 샘플 OAuthV2 정책입니다. 이 정책으로 구성할 수 있는 선택적 구성 요소에 대한 자세한 내용은 OAuthV2 정책을 참조하세요.

<OAuthV2 name="GenerateAccessToken">
    <Operation>GenerateAccessToken</Operation>
    <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes -->
    <SupportedGrantTypes>
      <GrantType>client_credentials</GrantType>
    </SupportedGrantTypes>
    <GenerateResponse enabled="true"/>
</OAuthV2>

다음은 액세스 토큰을 생성하기 위한 샘플 엔드포인트 구성입니다. 이는 client_credentials 부여 유형을 지원하도록 구성되어야 하는 GenerateAccessToken 정책을 실행합니다.

...
       <Flow name="generate-access-token">
            <Request>
                <Step>
                    <Name>GenerateAccessToken</Name>
                </Step>
            </Request>
            <Response/>
            <Condition>(proxy.pathsuffix MatchesPath "/token") and (request.verb = "POST")</Condition>
        </Flow>
...

클라이언트가 올바른 사용자 인증 정보를 제공하는 경우 정책에서 토큰을 생성하고 반환합니다. 그렇지 않으면 오류를 반환합니다.

관련 주제

지원되는 모든 권한 유형과 샘플 코드에 대한 자세한 내용은 액세스 토큰 및 승인 코드 요청을 참조하세요.