OAuth 흐름 변수

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

Apigee Edge는 OAuth 1.0a 및 OAuth 2 기능을 일련의 정책에 캡슐화합니다. 생성, 검증, 저장을 포함한 토큰 및 보안 비밀의 수명 주기 관리는 백엔드 서비스를 대신하여 Apigee Edge에서 관리합니다.

이 문서에서는 OAuth 정책에서 정의한 흐름 변수를 지정합니다. 이 변수는 OAuth 흐름의 맞춤 동작을 구현하는 데 사용할 수 있습니다. OAuth 사용에 관한 정보는 OAuth를 참고하세요.

OAuth 2.0 흐름 변수

이 표에 정의된 흐름 변수는 각 OAuth 정책이 실행될 때 채워지며 API 프록시 흐름에서 실행되는 다른 정책 또는 애플리케이션에서 사용할 수 있습니다.

액세스 토큰 정책 확인
  • organization_name
  • organization_name
  • developer.id
  • developer.app.name
  • client_id
  • grant_type
  • token_type
  • access_token
  • accesstoken.{custom_attribute}
  • issued_at
  • expires_in
  • status
  • scope
  • apiproduct.name*
  • apiproduct.<custom_attribute_name>*

* API 제품 변수

샘플 정책:

<OAuthV2 name="VerifyAccessToken">
    <Operation>VerifyAccessToken</Operation>
    <Scope>space-separated-scopes</Scope>*
    <AccessToken>flow.variable</AccessToken>*        
    <AccessTokenPrefix>Bearer</AccessTokenPrefix>*
</OAuthV2>

Bearer 토큰만 지원됩니다. MAC 토큰은 지원되지 않습니다.

기본적으로 액세스 토큰은 승인 HTTP 요청 헤더로 전달되어야 합니다.

예를 들면 다음과 같습니다.

"Authorization: Bearer {PlainText_AccessToken}"

모든 flow.variable는 다음과 같이 전달할 수 있습니다.

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

선택사항인 필드를 지정하지 않으면 OAuth 2.0 사양에 따라 값이 추출됩니다.

승인 코드 정책 생성
성공 시 설정된 변수:
  • oauthv2authcode.{policy_name}.code
  • oauthv2authcode.{policy_name}.redirect_uri
  • oauthv2authcode.{policy_name}.scope
  • oauthv2authcode.{policy_name}.client_id

샘플 정책:

<OAuthV2 name="GetAuthCode">
  <Operation>GenerateAuthorizationCode</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <ResponseType>flow.variable</ResponseType>*
  <ClientId>flow.variable</ClientId>*
  <RedirectUri>flow.variable</RedirectUri>*
  <Scope>flow.variable</Scope>*
  <State>flow.variable</State>*
  <Attributes>*   
    <Attribute name=”1” ref=”flow.variable”>value1</Attribute>
    <Attribute name=”2” ref=”flow.variable”>value2</Attribute>
  </Attributes>
</OAuthV2>

* 선택사항

모든 flow.variable는 다음과 같이 전달할 수 있습니다.

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

선택사항인 필드를 지정하지 않으면 OAuth 2.0 사양에 따라 값이 추출됩니다.

속성 값은 지정된 흐름 변수에서 동적으로 파생되거나 정책의 기본값을 사용하여 정적으로 파생됩니다.

둘 다 지정된 경우 Flow 변수가 우선합니다.

권한 부여 유형에 대한 액세스 토큰 정책 생성, 승인 코드, 사용자 인증 정보, 클라이언트 사용자 인증 정보
성공 시 설정된 변수:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

샘플 정책:

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <SupportedGrantTypes>*
    <GrantType>authorization_code</GrantType>
    <GrantType>password</GrantType>
   <GrantType>client_credentials</GrantType>
  </SupportedGrantTypes>
  <GrantType>flow.variable</GrantType>* 
  <ClientId>flow.variable</ClientId>* 
  <RedirectUri>flow.variable</RedirectUri>* 
  <Scope>flow.variable</Scope>* 
  <AppEndUser>flow.variable</AppEndUser>* 
  <Code>flow.variable</Code>* 
  <UserName>flow.variable</UserName>* 
  <PassWord>flow.variable</PassWord>*
  <Attributes>*
    <Attribute name=”1” ref=”flow.variable”>value1</Attribute> 
    <Attribute name=”2” ref=”flow.variable”>value2</Attribute>  
  </Attributes>
</OAuthV2>

* 선택사항

모든 flow.variable는 다음과 같이 전달할 수 있습니다.

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

선택사항인 필드를 지정하지 않으면 OAuth 2.0 사양에 따라 값이 추출됩니다.

속성 값은 지정된 흐름 변수에서 동적으로 파생되거나 정책의 기본값을 사용하여 정적으로 파생됩니다.

둘 다 지정된 경우 Flow 변수가 우선합니다.

암시적 권한 부여 유형의 액세스 토큰 정책 생성
성공 시 설정된 변수:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

샘플 정책:

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessTokenImplicitGrant</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <ResponseType>flow.variable></ResponseType>*
  <ClientId>flow.variable></ClientId>*
  <RedirectUri>flow.variable></RedirectUri>*
  <Scope>flow.variable></Scope>*
  <State>flow.variable></State>*
  <AppEndUser>flow.variable</AppEndUser>*                                   
  <Attributes>*
    <Attribute name=”1” ref=”flow.variable”>value1</Attribute>
    <Attribute name=”2” ref=”flow.variable”>value2</Attribute>
  </Attributes>
</OAuthV2>

* 선택사항

모든 flow.variable는 다음과 같이 전달할 수 있습니다.

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

선택사항인 필드를 지정하지 않으면 OAuth 2.0 사양에 따라 값이 추출됩니다.

속성 값은 지정된 흐름 변수에서 동적으로 파생되거나 정책의 기본값을 사용하여 정적으로 파생됩니다.

둘 다 지정된 경우 Flow 변수가 우선합니다.

액세스 토큰 정책 갱신
성공 시 설정된 변수:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

샘플 정책:

<OAuthV2 name="RefreshAccessToken">
  <Operation>RefreshAccessToken</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <GrantType>flow.variable</GrantType>*
  <RefreshToken>flow.variable</RefreshToken>*
</OAuthV2>

* 선택사항

모든 flow.variable는 다음과 같이 전달할 수 있습니다.

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

선택사항인 필드를 지정하지 않으면 OAuth 2.0 사양에 따라 값이 추출됩니다.

클라이언트 속성 정책 가져오기

샘플 정책:

<GetOAuthV2Info name="GetClientAttributes">
<ClientId ref="{variable_name}"/>
</GetOAuthV2Info>

샘플 정책:

<GetOAuthV2Info name="GetClientAttributes">
  <ClientId>{client_id}</ClientId>
</GetOAuthV2Info>
액세스 토큰 속성 정책 가져오기
성공 시 설정된 변수:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.scope
  • oauthv2accesstoken.{policy_name}.refresh_token
  • oauthv2accesstoken.{policy_name}.accesstoken.{custom_attribute_name}
  • oauthv2accesstoken.{policy_name}.developer.id
  • oauthv2accesstoken.{policy_name}.developer.app.name
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.status

샘플 정책:

<GetOAuthV2Info name="GetTokenAttributes">
  <AccessToken ref="{variable_name}"/>
</GetOAuthV2Info>

샘플 정책:

<GetOAuthV2Info name="GetTokenAttributes">
<AccessToken>{access_token}</AccessToken>
</GetOAuthV2Info>
승인 코드 속성 정책 가져오기

샘플 정책:

<GetOAuthV2Info name="GetAuthCodeAttributes">
 <AuthorizationCode ref="{variable_name}"/>
</GetOAuthV2Info>

샘플 정책:

<GetOAuthV2Info name="GetAuthCodeAttributes">
    <AuthorizationCode>{authorization_code}</AuthorizationCode>
</GetOAuthV2Info>
갱신 토큰 속성 정책 가져오기

샘플 정책:

<GetOAuthV2Info name="GetTokenAttributes">
  <RefreshToken ref="{variable_name}"/>
</GetOAuthV2Info>

샘플 정책:

<GetOAuthV2Info name="GetTokenAttributes">
    <RefreshToken>{refresh_token}</RefreshToken>
</GetOAuthV2Info>

OAuth 1.0a 흐름 변수

이 표에 정의된 흐름 변수는 각 OAuth 정책이 실행될 때 채워지며 API 프록시 흐름에서 실행되는 다른 정책 또는 애플리케이션에서 사용할 수 있습니다.

요청 토큰 정책 생성

샘플 정책:

<OAuthV1 name="GenerateRequestToken">
  <Operation>GenerateRequestToken</Operation>
</OAuthV1>

성공 시 설정된 변수:

  • oauth_token
  • oauth_token_secret
  • oauth_callback_confirmed
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

액세스 토큰 정책 생성

샘플 정책:

<OAuthV1 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
</OAuthV1>

성공 시 설정된 변수:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

액세스 토큰 확인 정책

샘플 정책:

<OAuthV1 name="VerifyAccessToken">
  <Operation>VerifyAccessToken</Operation>
</OAuthV1>

성공 시 설정된 변수:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

API 키 정책 확인

샘플 정책:

<GetOAuthV1Info name="VerifyApiKey">
  <OAuthConfig>{config_name}</OAuthConfig>*
  <APIKey ref="{variable_name}" />
</GetOAuthV1Info>

* 선택사항

성공 시 설정된 변수:

  • oauth_consumer_key
  • oauth_consumer_secret

소비자 정책 확인

샘플 정책:

<GetOAuthV1Info name="VerifyConsumer">
  <OAuthConfig>{config_name}</OAuthConfig>*
  <ConsumerKey ref="{variable_name}" />
</GetOAuthV1Info>

* 선택사항

성공 시 설정된 변수:

  • oauth_consumer_key
  • oauth_consumer_secret

토큰 정책 확인

샘플 정책:

<GetOAuthV1Info name="VerifyToken">
  <OAuthConfig>{config_name}</OAuthConfig>*
  <RequestToken ref="{variable_name}" />
</GetOAuthV1Info>

* 선택사항

성공 시 설정된 변수:

  • oauth_token
  • oauth_token_secret