Noções básicas sobre os endpoints do OAuth

Esta página se aplica à Apigee e à Apigee híbrida.

Confira a documentação da Apigee Edge.

Para realizar seu trabalho como um servidor de autorização OAuth2, a Apigee precisa expor endpoints onde os clientes podem solicitar tokens e códigos de autenticação. Neste tópico, apresentamos uma introdução rápida a esses endpoints e mostramos como configurá-los no Apigee.

O que é um endpoint OAuth2?

Um ponto de extremidade OAuth2 é um URL que os clientes chamam para solicitar tokens OAuth (ou códigos de autenticação). Veja abaixo um exemplo de solicitação de um token de acesso:

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

Você precisa de uma política OAuthV2 para processar esta solicitação. Como é possível inferir a partir do exemplo de solicitação acima, a política precisa ser compatível com o tipo de concessão "credenciais de cliente" a ser executada no caminho /oauth/client_credentials/accesstoken.

Esta é uma amostra da política de OAuthV2 configurada para aceitar o tipo de concessão client_credentials. Para mais informações sobre elementos de configuração opcionais que podem ser configurados com essa política, consulte a Política do OAuthV2 (em inglês).

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

Veja um exemplo de configuração de endpoint para gerar um token de acesso. Ele executará a política GenerateAccessToken, que precisa ser configurada para aceitar o tipo de autorização 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 o cliente fornecer as credenciais corretas, a política gerará e retornará um token. Caso contrário, retornará um erro.

Temas relacionados

Para ver informações detalhadas sobre todos os tipos de concessão compatíveis e exemplos de código, consulte Receber tokens OAuth 2.0