Variáveis de fluxo do OAuth

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

O Apigee Edge encapsula os recursos OAuth 1.0a e OAuth 2 em um conjunto de políticas. A vida 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 usados para implementar um comportamento personalizado para 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 aceitos. Os tokens MAC não são compatíveis.

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

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 solicitação especificação.

Gerar política do código de autorização
Variáveis definidas se o sucesso for bem-sucedido:
  • 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 solicitação especificação.

Os valores dos atributos 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 código de autorização de tipos de concessão, credenciais do usuário e credenciais do cliente
Variáveis definidas se o sucesso for bem-sucedido:
  • 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 solicitação especificação.

Os valores dos atributos 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 se o sucesso for bem-sucedido:
  • 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 solicitação especificação.

Os valores dos atributos 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 se o sucesso for bem-sucedido:
  • 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 solicitação especificação.

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 do token de acesso
Variáveis definidas se o sucesso for bem-sucedido:
  • 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 do 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 se o sucesso for bem-sucedido:

  • 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 se o sucesso for bem-sucedido:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Verificação de token de acesso política

Exemplo de política:

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

Variáveis definidas se o sucesso for bem-sucedido:

  • 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 se o sucesso for bem-sucedido:

  • oauth_consumer_key
  • oauth_consumer_secret

Verificar política do consumidor

Exemplo de política:

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

* Opcional

Variáveis definidas se o sucesso for bem-sucedido:

  • oauth_consumer_key
  • oauth_consumer_secret

Verificar a política de token

Exemplo de política:

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

* Opcional

Variáveis definidas se o sucesso for bem-sucedido:

  • oauth_token
  • oauth_token_secret