Variables de flujo de OAuth

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Apigee Edge encapsula capacidades de OAuth 1.0a y OAuth 2 en un conjunto de políticas. Apigee Edge administra el ciclo de vida de los tokens y secretos, incluida la generación, la validación y el almacenamiento, en nombre de tus servicios de backend.

En este documento, se especifican las variables de flujo definidas por las políticas de OAuth. Las variables se pueden usar para implementar comportamientos personalizados en los flujos de OAuth. Para el uso de OAuth, consulta OAuth.

Variables de flujo de OAuth 2.0

Las variables de flujo definidas en esta tabla se propagan cuando se ejecutan las políticas de OAuth correspondientes. Por lo tanto, están disponibles para otras políticas o aplicaciones que se ejecutan en el flujo de proxy de API.

Verifica la política de tokens de acceso
  • 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>*

* Variables de producto de API

Ejemplo de política:

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

Solo se admiten tokens del portador. No se admiten los tokens de MAC.

De forma predeterminada, el token de acceso se debe pasar en el encabezado de la solicitud HTTP de autorización.

Por ejemplo:

"Authorization: Bearer {PlainText_AccessToken}"

Cualquier flow.variable se puede pasar como:

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

Si no se especifican los campos opcionales, se extraen los valores según la especificación de OAuth 2.0.

Generar política de código de autorización
Variables configuradas con éxito:
  • oauthv2authcode.{policy_name}.code
  • oauthv2authcode.{policy_name}.redirect_uri
  • oauthv2authcode.{policy_name}.scope
  • oauthv2authcode.{policy_name}.client_id

Ejemplo 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

Cualquier flow.variable se puede pasar como:

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

Si no se especifican los campos opcionales, se extraen los valores según la especificación de OAuth 2.0.

Los valores de los atributos se derivan de manera dinámica de la variable de flujo especificada o de forma estática mediante un valor predeterminado en la política.

Si se especifican ambos, la variable de flujo tendrá prioridad.

Generar una política de tokens de acceso para otorgar códigos de autorización de tipos, credenciales de usuario y credenciales de cliente
Variables configuradas con éxito:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Ejemplo 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

Cualquier flow.variable se puede pasar como:

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

Si no se especifican los campos opcionales, se extraen los valores según la especificación de OAuth 2.0.

Los valores de los atributos se derivan de manera dinámica de la variable de flujo especificada o de forma estática mediante un valor predeterminado en la política.

Si se especifican ambos, la variable de flujo tendrá prioridad.

Genera una política de token de acceso para el tipo de otorgamiento implícito
Variables configuradas con éxito:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Ejemplo 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

Cualquier flow.variable se puede pasar como:

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

Si no se especifican los campos opcionales, se extraen los valores según la especificación de OAuth 2.0.

Los valores de los atributos se derivan de manera dinámica de la variable de flujo especificada o de forma estática mediante un valor predeterminado en la política.

Si se especifican ambos, la variable de flujo tendrá prioridad.

Actualizar política de token de acceso
Variables configuradas con éxito:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Ejemplo de política:

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

* Opcional

Cualquier flow.variable se puede pasar como:

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

Si no se especifican los campos opcionales, se extraen los valores según la especificación de OAuth 2.0.

Obtener política de atributos de cliente

Ejemplo de política:

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

Ejemplo de política:

<GetOAuthV2Info name="GetClientAttributes">
  <ClientId>{client_id}</ClientId>
</GetOAuthV2Info>
Política de obtención de atributos de tokens de acceso
Variables configuradas con éxito:
  • 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

Ejemplo de política:

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

Ejemplo de política:

<GetOAuthV2Info name="GetTokenAttributes">
<AccessToken>{access_token}</AccessToken>
</GetOAuthV2Info>
Obtener políticas de atributos de código de autorización

Ejemplo de política:

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

Ejemplo de política:

<GetOAuthV2Info name="GetAuthCodeAttributes">
    <AuthorizationCode>{authorization_code}</AuthorizationCode>
</GetOAuthV2Info>
Obtener política de atributos de tokens de actualización

Ejemplo de política:

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

Ejemplo de política:

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

Variables de flujo de OAuth 1.0a

Las variables de flujo definidas en esta tabla se propagan cuando se ejecutan las políticas de OAuth correspondientes. Por lo tanto, están disponibles para otras políticas o aplicaciones que se ejecutan en el flujo de proxy de API.

Genera una política de tokens de solicitud

Ejemplo de política:

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

Variables establecidas con éxito:

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

Genera una política de tokens de acceso

Ejemplo de política:

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

Variables establecidas con éxito:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Política de verificación de tokens de acceso

Ejemplo de política:

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

Variables establecidas con éxito:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Verifica la política de la clave de API

Ejemplo de política:

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

* Opcional

Variables establecidas con éxito:

  • oauth_consumer_key
  • oauth_consumer_secret

Verifique la política del consumidor

Ejemplo de política:

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

* Opcional

Variables establecidas con éxito:

  • oauth_consumer_key
  • oauth_consumer_secret

Verifica la política de tokens

Ejemplo de política:

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

* Opcional

Variables establecidas con éxito:

  • oauth_token
  • oauth_token_secret