> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Autenticação em nuvem com OIDC

> Conceda ao Devin acesso de curta duração e sem chaves aos seus serviços de nuvem via OpenID Connect

O Devin pode se autenticar em serviços de nuvem usando a federação de identidade de carga de trabalho do OpenID Connect (OIDC), em vez de credenciais de longa duração. Cada sessão do Devin recebe um token de identidade de curta duração emitido pelo Devin, que o provedor de nuvem verifica e troca por credenciais temporárias. Não é necessário armazenar Chaves de API estáticas nem segredos no Devin.

<div id="how-it-works">
  ## Como funciona
</div>

1. Cada sessão do Devin recebe automaticamente um **token de identidade** de curta duração, assinado pelo Devin e renovado durante toda a sessão.
2. Seu provedor de nuvem verifica o token usando o emissor OIDC público do Devin e concede acesso temporário com escopo definido.

Os tokens identificam a sessão por meio de claims como `org_id`, `devin_id` e `requesting_user_email`, permitindo criar políticas de confiança que concedem acesso à sua organização ou a sessões ou usuários específicos. Os tokens expiram automaticamente — não há nada a rotacionar ou revogar.

<div id="setup-actions">
  ## GitHub Actions de configuração
</div>

Adicione a GitHub Action relevante à seção `initialize` do seu [blueprint de ambiente](/pt-BR/onboard-devin/environment/blueprints):

| GitHub Action                                                                           | Finalidade                                                                             |
| --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| [`setup-aws-oidc`](https://github.com/CognitionAI/actions/tree/main/setup-aws-oidc)     | Autenticação da AWS CLI e do SDK por meio do IAM `AssumeRoleWithWebIdentity`           |
| [`setup-gcp-oidc`](https://github.com/CognitionAI/actions/tree/main/setup-gcp-oidc)     | Autenticação do gcloud e do Google Cloud SDK por meio da Workload Identity Federation  |
| [`setup-vault-oidc`](https://github.com/CognitionAI/actions/tree/main/setup-vault-oidc) | Autenticação da CLI do HashiCorp Vault por meio do método de autenticação JWT/OIDC     |
| [`setup-jfrog-oidc`](https://github.com/CognitionAI/actions/tree/main/setup-jfrog-oidc) | Autenticação da CLI do JFrog por meio da troca de token OIDC do JFrog                  |
| [`setup-devin-oidc`](https://github.com/CognitionAI/actions/tree/main/setup-devin-oidc) | CLI `devin-oidc` básica para serviços que confiam no Devin como provedor de identidade |

<div id="example-aws">
  ### Exemplo: AWS
</div>

```yaml theme={null}
initialize:
  - uses: github.com/CognitionAI/actions/setup-aws-oidc@main
    with:
      role-arn: "arn:aws:iam::123456789012:role/devin-sessions"
      region: "us-east-1"
```

O Devin pode então executar comandos da AWS sem armazenar credenciais:

```bash theme={null}
aws sts get-caller-identity
```

Consulte a [documentação do `setup-aws-oidc`](https://github.com/CognitionAI/actions/tree/main/setup-aws-oidc) para conhecer todos os pré-requisitos e as opções de configuração do lado da AWS.

<div id="example-custom-services">
  ### Exemplo: serviços personalizados
</div>

Para suas próprias APIs e serviços internos, use a CLI base para solicitar um token para qualquer público aceito pelo serviço:

```bash theme={null}
devin-oidc token --audience my-api --subject-keys "org_id"
```

Configure seu serviço para confiar no emissor OIDC do Devin e verificar os tokens usando o JWKS publicado em `/.well-known/jwks.json`. O emissor é a origem do seu webapp do Devin: `https://app.devin.ai` ou, em implantações Enterprise, seu próprio domínio (por exemplo, `https://yourdomain.devinenterprise.com`).

<div id="token-claims">
  ## Claims do token
</div>

Os tokens incluem os seguintes claims de identidade, que podem ser referenciados em políticas de confiança e usados para compor o assunto do token com `subject-keys`. O assunto é formado por pares `key:value` dos claims selecionados — por exemplo, `--subject-keys "org_id"` (o padrão) gera um assunto como `org_id:a67b8de8-9483-4a9c-9662-51c3d2a45e88`.

| Claim                                          | Descrição                                                               |
| ---------------------------------------------- | ----------------------------------------------------------------------- |
| `org_id`                                       | Organização na qual a sessão foi iniciada                               |
| `account_id`                                   | Identificador da conta (Enterprise ou cliente de uma única organização) |
| `devin_id`                                     | ID da sessão do Devin                                                   |
| `devin_trigger`                                | Como a sessão foi iniciada (por exemplo, `webapp`, `slack`, `api`)      |
| `requesting_user_id` / `requesting_user_email` | Usuário que iniciou a sessão                                            |
| `service_user_id`                              | Usuário de serviço, para sessões iniciadas por API                      |

<div id="security-properties">
  ## Propriedades de segurança
</div>

* **Sem credenciais de longa duração**: os tokens têm curta duração e são renovados automaticamente; não é necessário rotacionar nem revogar nada quando uma sessão termina.
* **Acesso com escopo definido**: os tokens restritos ao público são válidos apenas para o serviço específico para o qual foram solicitados, e suas políticas de confiança controlam exatamente quais identidades podem receber acesso.
* **Identidade auditável**: os tokens incluem a sessão, a organização e o usuário solicitante, de modo que os logs de auditoria na nuvem atribuem cada ação a uma sessão específica do Devin.

<Note>
  Implantações Enterprise com domínios personalizados têm uma chave de assinatura dedicada por conta, e o emissor do token é a URL personalizada do Devin. Entre em contato com o administrador do Devin ou o suporte da Cognition para obter a URL do emissor e o ID da organização.
</Note>
