Informazioni sugli endpoint OAuth

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Per svolgere il suo compito di server di autorizzazione OAuth2, Apigee deve esporre endpoint in cui i client possono richiedere token e codici di autorizzazione. Questo argomento offre una breve introduzione a questi endpoint e mostra come configurarli in Apigee.

Che cos'è un endpoint OAuth2?

Un endpoint OAuth2 è un URL che i client chiamano per richiedere token OAuth (o codici di autorizzazione). Ecco un esempio di richiesta di un token di accesso:

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

Per elaborare questa richiesta, è necessario un criterio OAuthV2. Come puoi dedurre dalla richiesta di esempio riportata sopra, la policy deve supportare il tipo di concessione "credenziali client" ed essere eseguita sul percorso /oauth/client_credentials/accesstoken.

Questo è un criterio OAuthV2 di esempio configurato per accettare il tipo di concessione client_credentials. Per informazioni sugli elementi di configurazione facoltativi che puoi configurare con questo criterio, consulta Criterio OAuthV2.

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

Ecco un esempio di configurazione dell'endpoint per generare un token di accesso. Verrà eseguito il criterio GenerateAccessToken, che deve essere configurato per supportare il tipo di concessione 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>
...

Se il client fornisce le credenziali corrette, il criterio genera e restituisce un token; in caso contrario, restituisce un errore.

Argomenti correlati

Per informazioni dettagliate su tutti i tipi di concessione supportati e codice campione, vedi Ottenere token OAuth 2.0.