Comprendre les points de terminaison OAuth

Cette page s'applique à Apigee et à Apigee hybrid.

Consultez la documentation d'Apigee Edge.

Pour remplir sa tâche en tant que serveur d'autorisation OAuth2, Apigee doit exposer les points de terminaison où les clients peuvent demander des jetons et des codes d'authentification. Cet article présente rapidement ces points de terminaison et vous explique comment les configurer dans Apigee.

Qu'est-ce qu'un point de terminaison OAuth2 ?

Un point de terminaison OAuth2 est une URL que les clients appellent pour demander des jetons OAuth (ou des codes d'authentification). Voici un exemple de requête pour un jeton d'accès :

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

Vous avez besoin d'une règle OAuthV2 pour traiter cette requête. Comme vous pouvez le déduire de l'exemple ci-dessus, la règle doit accepter le type d'attribution "Identifiants client" et s'exécuter sur le chemin d'accès /oauth/client_credentials/accesstoken.

Voici un exemple de règle OAuthV2 configurée pour accepter le type d'attribution client_credentials. Pour plus d'informations sur les éléments de configuration facultatifs que vous pouvez configurer avec cette stratégie, consultez la page Stratégie OAuthV2.

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

Voici un exemple de configuration de point de terminaison permettant de générer un jeton d'accès. Il exécute la stratégie GenerateAccessToken, qui doit être configurée pour accepter le type d'attribution 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 le client fournit les identifiants corrects, la stratégie génère et renvoie un jeton. Sinon, l'appel renvoie une erreur.

Articles associés

Pour en savoir plus sur tous les types d'attributions autorisés et obtenir des exemples de codes, consultez la page Obtenir des jetons OAuth 2.0.