

# Análise de reivindicações de tokens
<a name="id_roles_providers_outbound_token_claims"></a>

Quando você chama a API [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html), o AWS Security Token Service retorna um JSON Web Token (JWT) assinado que contém um conjunto de reivindicações que representam a identidade da entidade principal do IAM. Esses tokens são compatíveis com a [RFC 7519](https://datatracker.ietf.org/doc/html/rfc7519). Compreender a estrutura e o conteúdo desses tokens ajuda você a implementar fluxos de autenticação seguros, configurar validações de reivindicações apropriadas em serviços externos e usar com eficácia reivindicações personalizadas para um controle de acesso refinado.

O JWT inclui reivindicações padrão do OpenID Connect (OIDC), como subject (“sub”), audience (“aud”), issuer (“iss”), para facilitar a interoperabilidade entre diferentes serviços externos. O AWS STS preenche o token com reivindicações específicas de identidade da AWS (como as tags da entidade principal e do ID da conta da AWS) e reivindicações de contexto de sessão (como ARNs de instância do EC2), quando aplicável. Você também pode adicionar reivindicações personalizadas ao token transmitindo-as como tags de solicitação para a API [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html). As reivindicações específicas de identidade da AWS, as reivindicações de contexto da sessão e as reivindicações personalizadas estão aninhadas no namespace “https://sts.amazonaws.com/” no token.

Consulte o exemplo de token abaixo para ver uma lista das reivindicações incluídas no token. Observe que todas essas reivindicações podem não estar presentes em um token ao mesmo tempo. 

```
{
  "iss": "https://abc123-def456-ghi789-jkl012.tokens.sts.global.api.aws",
  "aud": "https://api.example.com",
  "sub": "arn:aws:iam::123456789012:role/DataProcessingRole",
  "iat": 1700000000,
  "exp": 1700000900,
  "jti": "xyz123-def456-ghi789-jkl012",
  "https://sts.amazonaws.com/": {
    "aws_account": "123456789012",
    "source_region": "us-east-1",
    "org_id": "o-abc1234567",
    "ou_path": "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/",
    "principal_tags": {
      "environment": "production",
      "team": "data-engineering",
      "cost-center": "engineering"
    },
    "lambda_source_function_arn": "arn:aws:lambda:us-east-1:123456789012:function:process-data",
    "request_tags": {
        "job-id": "job-2024-001",
        "priority": "high",
        "data-classification": "sensitive"
    }
  }
}
```

## Reivindicações padrão
<a name="standard-claims"></a>

As reivindicações padrão do OIDC presentes nos tokens facilitam a interoperabilidade com uma ampla gama de serviços externos. Essas reivindicações podem ser validadas usando a maioria das bibliotecas JWT.


| Reivindicar | Name (Nome) | Descrição | Valor de exemplo | 
| --- | --- | --- | --- | 
| iss | Emissor | URL do emissor específico da sua conta. Os serviços externos validam essa reivindicação para garantir que ela corresponda ao emissor confiável. | https://abc123-def456-ghi789-jkl012.tokens.sts.global.api.aws | 
| aud | Público | O destinatário pretendido para o token especificado na solicitação [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html). | https://api.example.com | 
| sub | Assunto | O ARN da entidade principal do IAM que solicitou o token. | arn:aws:iam::123456789012:role/DataProcessingRole | 
| iat | Emitido em | Valor NumericDate que identifica a hora em que o JWT foi emitido. | 1700000000 | 
| exp | Expiração | Valor NumericDate que identifica o prazo de expiração, após o qual o JWT NÃO DEVE ser aceito para processamento. | 1700000900 | 
| jti | ID do JWT | Identificador exclusivo dessa instância de token. | xyz123-def456-ghi789-jkl012 | 

## Reivindicações personalizadas
<a name="custom-claims"></a>

Além das reivindicações padrão do OIDC, o AWS STS adiciona reivindicações sobre a identidade e o contexto da sessão, quando aplicável. Você também pode adicionar suas próprias reivindicações ao token ao transmiti-las como tags de solicitação. As reivindicações personalizadas estão aninhadas no namespace https://sts.amazonaws.com/.

### Reivindicações de identidade da AWS
<a name="aws-identity-claims"></a>

Essas reivindicações fornecem informações detalhadas sobre sua conta da AWS, estrutura organizacional e entidade principal do IAM.


| Reivindicar | Descrição | Mapas para a chave de condição | Valor de exemplo | 
| --- | --- | --- | --- | 
| aws\$1account | O ID da sua conta da AWS | [aws:PrincipalAccount](reference_policies_condition-keys.md#condition-keys-principalaccount) | 123456789012 | 
| source\$1region | A região da AWS em que o token foi solicitado | [aws:RequestedRegion](reference_policies_condition-keys.md#condition-keys-requestedregion) | us-east-1 | 
| org\$1id | Seu ID do AWS Organizations (se a sua conta fizer parte de uma organização) | [aws:PrincipalOrgID](reference_policies_condition-keys.md#condition-keys-principalorgid) | o-abc1234567 | 
| ou\$1path | O caminho da sua unidade organizacional (se aplicável) | [aws:PrincipalOrgPaths](reference_policies_condition-keys.md#condition-keys-principalorgpaths) | o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/ | 
| principal\$1tags | Tags anexadas à entidade principal do IAM ou à sessão de perfil assumido. Quando um token é solicitado em que a entidade principal do IAM solicitante tem tags da entidade principal e de sessão, as tags de sessão estarão presentes no JWT. | [aws:PrincipalTag/<tag-key>](reference_policies_condition-keys.md#condition-keys-principaltag) | \$1"environment": "production", "team": "data-engineering", "cost-center":"engineering"\$1 | 

### Reivindicações de contexto de sessão
<a name="session-context-claims"></a>

Estas reivindicações fornecem informações sobre o ambiente computacional e a sessão em que a solicitação de token foi originada. O AWS STS inclui automaticamente essas reivindicações, quando aplicável, com base no contexto da sessão da entidade principal solicitante.


| Reivindicar | Descrição | Mapas para a chave de condição | Valor de exemplo | 
| --- | --- | --- | --- | 
| original\$1session\$1exp | Quando as credenciais da sessão de perfil original expirarão (para perfis assumidos) | N/D | 2024-01-15T10:00:00Z | 
| federated\$1provider | O nome do provedor de identidade para sessões federadas | [aws:FederatedProvider](reference_policies_condition-keys.md#condition-keys-federatedprovider) | arn:aws:iam::111122223333:oidc-provider/your\$1oidc\$1provider | 
| identity\$1store\$1user\$1id | ID do usuário do Centro de Identidade do IAM | [identitystore:UserId](reference_policies_condition-keys.md#condition-keys-identity-store-user-id) | user-abc123def456 | 
| identity\$1store\$1arn | ARN do armazenamento de identidades do Centro de Identidade do IAM | [identitystore:IdentityStoreArn](https://docs.aws.amazon.com/singlesignon/latest/userguide/condition-context-keys-sts-idc.html#condition-keys-identity-store-arn) | arn:aws:identitystore::123456789012:identitystore/d-abc1234567 | 
| ec2\$1source\$1instance\$1arn | ARN da instância solicitante do EC2 | [ec2:SourceInstanceArn](reference_policies_condition-keys.md#condition-keys-ec2-source-instance-arn) | arn:aws:ec2:us-east-1:123456789012:instance/i-abc123def456 | 
| ec2\$1instance\$1source\$1vpc | ID da VPC em que as credenciais de perfil do EC2 foram entregues | [aws:Ec2InstanceSourceVpc](reference_policies_condition-keys.md#condition-keys-ec2instancesourcevpc) | vpc-abc123def456 | 
| ec2\$1instance\$1source\$1private\$1ipv4 | Endereço IPv4 privado da instância do EC2 | [aws:Ec2InstanceSourcePrivateIPv4](reference_policies_condition-keys.md#condition-keys-ec2instancesourceprivateip4) | 10.0.1.25 | 
| ec2\$1role\$1delivery | Versão do serviço de metadados da instância | [ec2:RoleDelivery](reference_policies_condition-keys.md#condition-keys-ec2-role-delivery) | 2 | 
| source\$1identity | Identidade de origem definida pela entidade principal | [aws:SourceIdentity](reference_policies_condition-keys.md#condition-keys-sourceidentity) | admin-user | 
| lambda\$1source\$1function\$1arn | O ARN da função do Lambda chamadora | [lambda:SourceFunctionArn](reference_policies_condition-keys.md#condition-keys-lambda-source-function-arn) | arn:aws:lambda:us-east-1:123456789012:function:my-function | 
| glue\$1credential\$1issuing\$1service | Identificador do serviço do AWS Glue para trabalhos do Glue | [glue:CredentialIssuingService](reference_policies_condition-keys.md#condition-keys-glue-credential-issuing) | glue.amazonaws.com | 

### Tags da solicitação
<a name="request-tags"></a>

Você pode adicionar reivindicações personalizadas aos tokens especificando tags na solicitação da API [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html). Essas reivindicações aparecem no campo request\$1tags no token e permitem que você transmita informações específicas que os serviços externos podem usar para decisões de autorização refinadas. Você pode especificar até 50 tags por solicitação.

Exemplo de solicitação:

```
response = sts_client.get_web_identity_token(
    Audience=['https://api.example.com'],
    SigningAlgorithm='ES384',
    Tags=[
        {'Key': 'team', 'Value': 'data-engineering'},
        {'Key': 'cost-center', 'Value': 'analytics'},
        {'Key': 'environment', 'Value': 'production'}
    ]
)
```

Reivindicações resultantes no token:

```
{
  "request_tags": {
    "team": "data-engineering",
    "cost-center": "analytics",
    "environment": "production"
  }
}
```