Esta é a documentação do Apigee Edge.
  Acesse
     Documentação da Apigee X. informações
O que
Permite adicionar ou atualizar atributos personalizados associados a um token de acesso. Os atributos personalizados podem incluir itens como nome do departamento, ID do cliente ou identificador de sessão. Consulte também Como personalizar tokens e códigos de autorização.
Você só pode adicionar ou modificar atributos personalizados. Essa política não pode ser usada para alterar campos como scope, status, expires_in, developer_email, client_id, org_name ou refresh_count. Se já houver um atributo, a política será atualizada. Se não existir, a política a adicionará. O token de acesso mencionado precisa ser válido e estar em um estado aprovado.
Amostras
Exemplo básico
Veja abaixo um exemplo de política usada para atualizar um token de acesso do OAuth 2.0. O exemplo abaixo
      localiza o token de acesso na mensagem da solicitação procurando um parâmetro de consulta chamado
      access_token. Quando um token de acesso é apresentado por um app cliente, a política
      abaixo localizará o token de acesso no parâmetro de consulta. Em seguida, ele atualizará o perfil do token de
      acesso. Ela adiciona uma propriedade personalizada chamada department.id ao
      perfil. 
<SetOAuthV2Info name="SetOAuthV2Info"> 
  <AccessToken ref="request.queryparam.access_token"></AccessToken>
  <Attributes>
    <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
  </Attributes>
</SetOAuthV2Info>Referência de elemento
A referência de elementos descreve os elementos e atributos da política SetOAuthV2.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="SetOAuthV2Info-1"> <DisplayName>Set OAuth v2.0 Info 1</DisplayName> <AccessToken ref={some-variable}></AccessToken> <Attributes/> </SetOAuthV2Info> </xml>
Atributos de <SetOAuthV2Info>
<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Set-OAuth-v20-Info-1">
A tabela a seguir descreve atributos comuns a todos os elementos pai de políticas:
| Atributo | Descrição | Padrão | Presença | 
|---|---|---|---|
name | 
        
           O nome interno da política. O valor do atributo  Opcionalmente, use o elemento   | 
        N/A | Obrigatório | 
continueOnError | 
        
           Defina como  Defina como   | 
        falso | Opcional | 
enabled | 
        
           Defina como  Defina como   | 
        true | Opcional | 
async | 
        
           Esse atributo está obsoleto.  | 
        falso | Obsoleto | 
Elemento <DisplayName>
Use em conjunto com o atributo name para rotular a política no
  editor de proxy da IU de gerenciamento com um nome de linguagem natural diferente.
<DisplayName>Policy Display Name</DisplayName>
| Padrão | 
           N/A Se você omitir esse elemento, será usado o valor do atributo   | 
      
|---|---|
| Presença | Opcional | 
| Tipo | String | 
Elemento <AccessToken>
Identifica a variável em que o token de acesso está localizado. Por exemplo, se o token de acesso estiver
  anexado à mensagem de solicitação como um parâmetro de consulta, especifique
  request.queryparam.access_token. Você pode usar qualquer variável válida que faça referência ao
  token. Ou pode passar a string de token literal (caso raro).
<AccessToken ref="request.queryparam.access_token"></AccessToken>
| Padrão: | N/A | 
| Presença: | Obrigatório | 
| Tipo: | String | 
Atributos
| Atributo | Descrição | Padrão | Presença | 
|---|---|---|---|
| ref | 
           Uma variável de token de acesso. Normalmente, recuperado de uma variável de fluxo.  | 
        N/A | Opcional | 
Elemento <Attributes>
Um conjunto de atributos no perfil do token de acesso que será modificado ou aumentado.
| Padrão: | N/A | 
| Presença: | Obrigatório | 
| Tipo: | N/A | 
Elemento <Attributes>/<Attribute>
Um atributo individual para atualização.
O atributo name identifica a propriedade personalizada do perfil do token de acesso a ser atualizado. Neste exemplo, mostramos como usar um valor de variável referenciado e um valor estático.
  <Attributes>
    <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
    <Attribute name="foo">bar</Attribute>
  </Attributes>| Padrão: | N/A | 
| Presença: | Opcional | 
| Tipo: | N/A | 
Atributos
| Atributo | Descrição | Padrão | Presença | 
|---|---|---|---|
| name | Nome do atributo de perfil a ser adicionado ou alterado. | N/A | |
| ref | 
           O valor a ser atribuído ao atributo de perfil.  | 
        N/A | Opcional | 
Variáveis de fluxo
Em caso de sucesso, as seguintes variáveis de fluxo serão definidas:
oauthv2accesstoken.{policyName}.access_tokenoauthv2accesstoken.{policyName}.client_idoauthv2accesstoken.{policyName}.refresh_countoauthv2accesstoken.{policyName}.organization_nameoauthv2accesstoken.{policyName}.expires_in //--in secondsoauthv2accesstoken.{policyName}.refresh_token_expires_in //--in secondsoauthv2accesstoken.{policyName}.issued_atoauthv2accesstoken.{policyName}.statusoauthv2accesstoken.{policyName}.api_product_listoauthv2accesstoken.{policyName}.token_typeoauthv2accesstoken.{policyName}.{custom_attribute_name}
Schema
Cada tipo de política é definido por um esquema XML (.xsd). Para referência, os esquemas de política
  estão disponíveis no GitHub.
Referência de erros
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | 
|---|---|---|
steps.oauth.v2.access_token_expired | 
        500 | O token de acesso enviado para a política expirou. | 
steps.oauth.v2.invalid_access_token | 
        500 | O token de acesso enviado para a política é inválido. | 
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound | 
        401 | Consulte esta postagem da comunidade da Apigee para informações sobre como solucionar esse erro. | 
Erros de implantação
Consulte a mensagem relatada na IU para informações sobre erros de implantação.
Variáveis de falha
Essas variáveis são definidas quando essa política aciona um erro no ambiente de execução.
| Variáveis | Onde | Exemplo | 
|---|---|---|
fault.name="fault_name" | 
        fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name = "invalid_access_token" | 
      
oauthV2.policy_name.failed | 
        policy_name é o nome da política especificada pelo usuário que gerou a falha. | oauthV2.SetTokenInfo.failed = true | 
      
oauthV2.policy_name.fault.name | 
        policy_name é o nome da política especificada pelo usuário que gerou a falha. | oauthV2.SetTokenInfo.fault.name = invalid_access_token | 
      
oauthv2.policy_name.fault.cause | 
        policy_name é o nome da política especificada pelo usuário que gerou a falha. | oauthV2.SetTokenInfo.cause = Invalid Access Token | 
      
Exemplo de resposta de erro
{
  "fault": {
    "faultstring": "Invalid Access Token",
    "detail": {
      "errorcode": "keymanagement.service.invalid_access_token"
    }
  }
}Exemplo de regra de falha
<FaultRule name=SetOAuthV2Info Faults">
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
        <Condition>(fault.name = "invalid_access_token")</Condition>
    </Step>
    <Condition>(oauthV2.failed = true) </Condition>
</FaultRule>