Esta é a documentação do Apigee Edge.
Acesse
Documentação da Apigee X. informações
Como revogar tokens de acesso e de atualização
Em alguns casos, os apps precisam revogar ou invalidar tokens explicitamente, por exemplo, quando um usuário sai de um app ativado para OAuth. Se você revogar um token, ele poderá ser aprovado novamente a qualquer momento antes de ele expirar.
O procedimento para revogação de token é definido pela especificação da revogação de token OAuth 2.0.
O Apigee Edge fornece uma operação InvalidateToken que permite configurar um endpoint de revogação de token dedicado. Ao publicar o URI desse endpoint, você permite que os desenvolvedores de apps invalidem os tokens emitidos pelo Edge.
Veja um exemplo de configuração da política de OAuthV2 e da operação InvalidateToken. Nesse caso, o token de acesso e o token de atualização associado são revogados. Tecnicamente, eles são revogados porque a sinalização em cascata está definida como "true". Para mais informações sobre como a sinalização em cascata funciona, consulte a seção de atributos do elemento Token abaixo.
<OAuthV2 name="InvalidateToken"> <Operation>InvalidateToken</Operation> <Tokens> <Token type="accesstoken" cascade="true">flow.variable</Token> </Tokens> </OAuthV2>
Elemento <Tokens>/<Token>
Identifica a variável de fluxo que especifica o token a ser revogado. Se espera-se
que os desenvolvedores enviem uma solicitação de revogação usando um parâmetro de consulta
chamado access_token
, por exemplo, a variável de fluxo correta
será: request.queryparam.access_token
. Para exigir o token em um cabeçalho HTTP,
por exemplo, defina esse valor como request.header.access_token
.
Atributos
-
type
(obrigatório, string): o tipo de token identificado pela variável especificada. Os valores aceitos sãoaccesstoken
erefreshtoken:
- Para revogar um token de acesso, especifique o tipo accesstoken.
- Para revogar os tokens de acesso e de atualização, especifique o tipo refreshtoken. Quando ele vê
o tipo de atualização de token, o Edge presume que o token é um token de atualização. Se esse token de atualização for
encontrado, ele será revogado. Se esse token de atualização não for encontrado, o Edge verificará se
ele é um token de acesso. Se o token de acesso existir, ele será revogado.
Observação: se você passar um token já invalidado para uma política InvalidateToken, a política não retornará um erro, mesmo que você espere por um. Essa operação não tem efeito.
-
cascade
(opcional, booleano, padrão: verdadeiro) O uso principal desse atributo é revogar um token de atualização sem revogar o token de acesso associado a ele. Considere estes casos:- Revogue apenas um token de atualização e não revogue o token de acesso associado. Para fazer isso,
defina o tipo de <Token> como
refreshtoken
e defina a cascata comofalse
. - Revogue o token de acesso e o token de atualização. Para isso, defina o tipo <Token>
como
accesstoken
. O valor de cascata pode sertrue
(o padrão) oufalse
. Se você defini-lo comotrue
, o token de acesso e o token de atualização serão revogados. Se você defini-lo comofalse
, o token de acesso será revogado e o token de atualização não poderá ser usado. Veja mais detalhes na observação abaixo. - Revogue um token de acesso e não revogar o token de atualização associado. Não compatível. Veja mais detalhes na observação abaixo.
- Revogue apenas um token de atualização e não revogue o token de acesso associado. Para fazer isso,
defina o tipo de <Token> como
Observação: por motivos de segurança, se você revogar um
token de acesso, o token de atualização associado também será revogado. Portanto, não é possível usar
o atributo cascata para revogar apenas um token de acesso. Por exemplo, se você definir o tipo <Token>
como accesstoken
e definir cascade=false
, o token de acesso será revogado
(conforme esperado). No entanto, o token de atualização associado não pode ser usado. Ele não pode ser usado para atualizar
o token de acesso revogado. O principal caso de uso do atributo em cascata é quando você quer revogar
apenas um token de atualização. Nesse caso, defina o tipo <Token> como refreshtoken
e defina cascade=false
. O token de atualização será revogado, mas o token
de acesso associado permanecerá válido, até que ele expire ou seja revogado. Para mais informações, consulte esta
discussão do fórum da comunidade.
Como aprovar tokens de acesso e de atualização
Use a operação ValidateToken para "reaprovar" um token revogado. Ou seja, quando você aplicar essa operação, o status do token de acesso ou atualização será alterado de "revogado" para "aprovado". Você pode validar qualquer token revogado que ainda não tenha expirado.
<OAuthV2 name="ValidateToken"> <Operation>ValidateToken</Operation> <Tokens> <Token type="refreshtoken" cascade="true">flow.variable</Token> </Tokens> </OAuthV2>
Elemento <Tokens>/<Token>
Identifica a variável de fluxo que especifica o token a ser validado. Se espera-se
que os desenvolvedores enviem uma solicitação de validação usando um parâmetro de consulta
chamado access_token
, por exemplo, a variável de fluxo correta
será: request.queryparam.access_token
. Para exigir o token em um cabeçalho HTTP,
por exemplo, defina esse valor como request.header.access_token
.
Atributos
type
(obrigatório, string) O tipo de token identificado pela variável especificada. Os valores aceitos sãoaccesstoken
erefreshtoken
.cascade
(opcional, booleano): por padrão, essa opção é definida comotrue
, e faz com que a validação seja propagada para os tokens associados. Portanto, se aplicado a um token de atualização, o token de acesso associado a ele também será validado Se aplicado a um token de acesso, o token de atualização associado também será validado. Se você definir essa opção comofalse
, somente o token especificado de acesso ou de atualização será validado.