Comprender los puntos de conexión de OAuth

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

Para hacer su trabajo como servidor de autorización OAuth2, Apigee debe exponer endpoints donde los clientes puedan solicitar tokens y códigos de autorización. En este tema se ofrece una breve introducción a estos endpoints y se explica cómo configurarlos en Apigee.

¿Qué es un endpoint de OAuth2?

Un endpoint de OAuth2 es una URL a la que llaman los clientes para solicitar tokens de OAuth (o códigos de autorización). A continuación, se muestra un ejemplo de solicitud de token de acceso:

$ curl -i -H "ContentType: x-www-form-urlencoded" \
-X POST "https://apitest.acme.com/oauth/client_credential/accesstoken" \
-d "grant_type=client_credentials" \
-H "Authorization: Basic c3FIOG9vSGV4VHo4QzAySVg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ"

Necesitas una política OAuthV2 para procesar esta solicitud. Como puede deducir de la solicitud de ejemplo anterior, la política debe admitir el tipo de autorización "client credentials" y ejecutarse en la ruta /oauth/client_credentials/accesstoken.

Esta es una política de OAuthV2 de ejemplo configurada para aceptar el tipo de concesión client_credentials. Para obtener información sobre los elementos de configuración opcionales que puedes configurar con esta política, consulta la política OAuthV2.

<OAuthV2 name="GenerateAccessToken">
    <Operation>GenerateAccessToken</Operation>
    <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes -->
    <SupportedGrantTypes>
      <GrantType>client_credentials</GrantType>
    </SupportedGrantTypes>
    <GenerateResponse enabled="true"/>
</OAuthV2>

A continuación, se muestra un ejemplo de configuración de endpoint para generar un token de acceso. Ejecutará la política GenerateAccessToken, que debe configurarse para admitir el tipo de autorización client_credentials.

...
       <Flow name="generate-access-token">
            <Request>
                <Step>
                    <Name>GenerateAccessToken</Name>
                </Step>
            </Request>
            <Response/>
            <Condition>(proxy.pathsuffix MatchesPath "/token") and (request.verb = "POST")</Condition>
        </Flow>
...

Si el cliente proporciona las credenciales correctas, la política genera y devuelve un token. De lo contrario, devuelve un error.

Temas relacionados

Para obtener información detallada sobre todos los tipos de concesión admitidos y código de ejemplo, consulta Obtener tokens de OAuth 2.0.