Variáveis de fluxo do OAuth

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X
.info

O Apigee Edge encapsula os recursos do OAuth 1.0a e do 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 para fluxos do OAuth. Para uso do 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.

Política de verificação de tokens 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 produtos 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>

Há suporte apenas para tokens de portador. Tokens MAC não são aceitos.

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 transmitida 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 transmitida 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 atributos são derivados dinamicamente da variável de fluxo especificada ou estaticamente usando um valor padrão na política.

Se ambos forem especificados, a variável de fluxo terá precedência.

Gerar política de token de acesso para código 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 transmitida 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 atributos são derivados dinamicamente da variável de fluxo especificada ou estaticamente usando um valor padrão na política.

Se ambos forem especificados, 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 transmitida 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 atributos são derivados dinamicamente da variável de fluxo especificada ou estaticamente usando um valor padrão na política.

Se ambos forem especificados, a variável de fluxo terá precedência.

Política de atualização de tokens 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 transmitida 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.

Política de recebimento 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>
Política de recebimento de atributos de tokens 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>
Política de recebimento de atributos de 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>
Política de recebimento de atributos de tokens 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 política de chaves 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 política de 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 tokens

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