Variáveis de fluxo do OAuth

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

O Apigee Edge encapsula os recursos do OAuth 1.0a e OAuth 2 em um conjunto de políticas. O gerenciamento do ciclo de vida de tokens e secrets, incluindo geração, validação e armazenamento, é gerenciado pelo Apigee Edge em nome dos serviços de back-end.

Este documento especifica as variáveis de fluxo definidas pelas políticas do OAuth. As variáveis podem ser usadas para implementar um comportamento personalizado nos fluxos do OAuth. Para usar o OAuth, consulte OAuth.

Variáveis de fluxo do OAuth 2.0

As variáveis de fluxo definidas nesta tabela são preenchidas quando as respectivas políticas de OAuth são executadas e, portanto, estão disponíveis para outras políticas ou aplicativos em execução no fluxo de proxy da API.

Verificar a política de token de acesso
  • 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>*

* Variáveis de produto de API

Exemplo de política:

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

Somente tokens do portador são compatíveis. Os tokens MAC não são compatíveis.

Por padrão, o token de acesso precisa ser transmitido no cabeçalho da solicitação HTTP de autorização.

Exemplo:

"Authorization: Bearer {PlainText_AccessToken}"

Qualquer flow.variable pode ser transmitido como:

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

Se os campos opcionais não forem especificados, os valores serão extraídos de acordo com a especificação do OAuth 2.0.

Gerar política de código de autorização
Variáveis definidas em caso de sucesso:
  • oauthv2authcode.{policy_name}.code
  • oauthv2authcode.{policy_name}.redirect_uri
  • oauthv2authcode.{policy_name}.scope
  • oauthv2authcode.{policy_name}.client_id

Exemplo de política:

<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>

* Opcional

Qualquer flow.variable pode ser transmitido como:

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

Se os campos opcionais não forem especificados, os valores serão extraídos de acordo com a especificação do OAuth 2.0.

Os valores de atributo são derivados dinamicamente da variável de fluxo especificada ou estaticamente, usando um valor padrão na política.

Se ambas forem especificadas, a variável de fluxo terá precedência.

Gerar política de token de acesso para códigos de autorização de tipos de concessão, credenciais de usuário e credenciais de cliente
Variáveis definidas em caso de sucesso:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Exemplo de política:

<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>

* Opcional

Qualquer flow.variable pode ser transmitido como:

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

Se os campos opcionais não forem especificados, os valores serão extraídos de acordo com a especificação do OAuth 2.0.

Os valores de atributo são derivados dinamicamente da variável de fluxo especificada ou estaticamente, usando um valor padrão na política.

Se ambas forem especificadas, a variável de fluxo terá precedência.

Gerar política de token de acesso para o tipo de concessão implícita
Variáveis definidas em caso de sucesso:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Exemplo de política:

<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>

* Opcional

Qualquer flow.variable pode ser transmitido como:

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

Se os campos opcionais não forem especificados, os valores serão extraídos de acordo com a especificação do OAuth 2.0.

Os valores de atributo são derivados dinamicamente da variável de fluxo especificada ou estaticamente, usando um valor padrão na política.

Se ambas forem especificadas, a variável de fluxo terá precedência.

Atualizar política de token de acesso
Variáveis definidas em caso de sucesso:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Exemplo de política:

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

* Opcional

Qualquer flow.variable pode ser transmitido como:

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

Se os campos opcionais não forem especificados, os valores serão extraídos de acordo com a especificação do OAuth 2.0.

Acessar política de atributos do cliente

Exemplo de política:

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

Exemplo de política:

<GetOAuthV2Info name="GetClientAttributes">
  <ClientId>{client_id}</ClientId>
</GetOAuthV2Info>
Acessar política de atributos de token de acesso
Variáveis definidas em caso de sucesso:
  • 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

Exemplo de política:

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

Exemplo de política:

<GetOAuthV2Info name="GetTokenAttributes">
<AccessToken>{access_token}</AccessToken>
</GetOAuthV2Info>
Acessar política de atributos do código de autorização

Exemplo de política:

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

Exemplo de política:

<GetOAuthV2Info name="GetAuthCodeAttributes">
    <AuthorizationCode>{authorization_code}</AuthorizationCode>
</GetOAuthV2Info>
Acessar política de atributos de token de atualização

Exemplo de política:

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

Exemplo de política:

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

Variáveis de fluxo do OAuth 1.0a

As variáveis de fluxo definidas nesta tabela são preenchidas quando as respectivas políticas de OAuth são executadas e, portanto, estão disponíveis para outras políticas ou aplicativos em execução no fluxo de proxy da API.

Gerar política de token de solicitação

Exemplo de política:

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

Variáveis definidas em caso de sucesso:

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

Gerar política de token de acesso

Exemplo de política:

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

Variáveis definidas em caso de sucesso:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Política de verificação de tokens de acesso

Exemplo de política:

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

Variáveis definidas em caso de sucesso:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Verificar a política da chave de API

Exemplo de política:

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

* Opcional

Variáveis definidas em caso de sucesso:

  • oauth_consumer_key
  • oauth_consumer_secret

Verificar a política do consumidor

Exemplo de política:

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

* Opcional

Variáveis definidas em caso de sucesso:

  • oauth_consumer_key
  • oauth_consumer_secret

Verificar política de token

Exemplo de política:

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

* Opcional

Variáveis definidas em caso de sucesso:

  • oauth_token
  • oauth_token_secret