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

# Authentification cloud avec OIDC

> Accordez à Devin un accès sans clé et de courte durée à vos services cloud via OpenID Connect

Devin peut s'authentifier auprès de services cloud à l'aide de la fédération d'identité de charge de travail OpenID Connect (OIDC), plutôt qu'avec des identifiants à longue durée de vie. Chaque session Devin reçoit un jeton d'identité de courte durée émis par Devin, que votre fournisseur de services cloud vérifie et échange contre des identifiants temporaires. Aucune clé d'API statique ni aucun secret n'a besoin d'être stocké dans Devin.

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

1. Chaque session Devin reçoit automatiquement un **jeton d’identité** de courte durée, signé par Devin et renouvelé pendant toute la durée de la session.
2. Votre fournisseur de services cloud vérifie le jeton auprès de l’émetteur OIDC public de Devin et accorde un accès temporaire et limité à un périmètre précis.

Les jetons identifient la session au moyen d’attributs tels que `org_id`, `devin_id` et `requesting_user_email`, ce qui vous permet de définir des politiques de confiance accordant l’accès à votre organisation, ou à des sessions ou utilisateurs spécifiques. Les jetons expirent automatiquement : il n’y a rien à renouveler ni à révoquer.

<div id="setup-actions">
  ## Actions de configuration
</div>

Ajoutez l’action appropriée à la section `initialize` de votre [blueprint d’environnement](/fr/onboard-devin/environment/blueprints) :

| Action                                                                                  | Objectif                                                                                                |
| --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| [`setup-aws-oidc`](https://github.com/CognitionAI/actions/tree/main/setup-aws-oidc)     | Authentification de l’AWS CLI et des SDK AWS via IAM `AssumeRoleWithWebIdentity`                        |
| [`setup-gcp-oidc`](https://github.com/CognitionAI/actions/tree/main/setup-gcp-oidc)     | Authentification de gcloud et du SDK Google Cloud via Workload Identity Federation                      |
| [`setup-vault-oidc`](https://github.com/CognitionAI/actions/tree/main/setup-vault-oidc) | Authentification de la CLI HashiCorp Vault via la méthode d’authentification JWT/OIDC                   |
| [`setup-jfrog-oidc`](https://github.com/CognitionAI/actions/tree/main/setup-jfrog-oidc) | Authentification de la CLI JFrog via l’échange de jetons OIDC de JFrog                                  |
| [`setup-devin-oidc`](https://github.com/CognitionAI/actions/tree/main/setup-devin-oidc) | CLI `devin-oidc` de base, destinée aux services qui font confiance à Devin comme fournisseur d’identité |

<div id="example-aws">
  ### Exemple : 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"
```

Devin peut alors exécuter des commandes AWS sans qu’aucun identifiant ne soit stocké :

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

Consultez la [documentation de `setup-aws-oidc`](https://github.com/CognitionAI/actions/tree/main/setup-aws-oidc) pour connaître l’ensemble des prérequis et des options de configuration côté AWS.

<div id="example-custom-services">
  ### Exemple : services personnalisés
</div>

Pour vos propres API et services internes, utilisez l’interface CLI de base afin de demander un jeton pour tout public accepté par votre service :

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

Configurez votre service pour qu’il approuve l’émetteur OIDC de Devin et vérifie les jetons à l’aide de son JWKS publié à l’adresse `/.well-known/jwks.json`. L’émetteur correspond à l’origine de votre application web Devin : `https://app.devin.ai` ou, pour les déploiements Enterprise, à votre propre domaine (p. ex. `https://yourdomain.devinenterprise.com`).

<div id="token-claims">
  ## Revendications de jeton
</div>

Les jetons contiennent les revendications d'identité suivantes, que vous pouvez référencer dans les politiques de confiance et utiliser pour composer le sujet du jeton via `subject-keys`. Le sujet est construit à partir de paires `clé:valeur` des revendications sélectionnées — par exemple, `--subject-keys "org_id"` (valeur par défaut) génère un sujet tel que `org_id:a67b8de8-9483-4a9c-9662-51c3d2a45e88`.

| Revendication                                  | Description                                                                     |
| ---------------------------------------------- | ------------------------------------------------------------------------------- |
| `org_id`                                       | Organisation dans laquelle la session a été lancée                              |
| `account_id`                                   | Identifiant du compte (Enterprise ou client disposant d'une seule organisation) |
| `devin_id`                                     | ID de la session Devin                                                          |
| `devin_trigger`                                | Méthode de démarrage de la session (p. ex. `webapp`, `slack`, `api`)            |
| `requesting_user_id` / `requesting_user_email` | Utilisateur ayant démarré la session                                            |
| `service_user_id`                              | Utilisateur de service, pour les sessions initiées via l'API                    |

<div id="security-properties">
  ## Propriétés de sécurité
</div>

* **Aucun identifiant à longue durée de vie** : les jetons ont une courte durée de vie et sont actualisés automatiquement ; il n'est pas nécessaire de les renouveler ou de les révoquer à la fin d'une session.
* **Accès limité au périmètre** : les jetons limités à une audience ne sont valides que pour le service spécifique pour lequel ils ont été demandés, et vos politiques de confiance déterminent précisément les identités auxquelles l'accès peut être accordé.
* **Identité auditable** : les jetons contiennent les informations de session, d'organisation et de l'utilisateur à l'origine de la demande, afin que les logs d'audit côté cloud attribuent chaque action à une session Devin spécifique.

<Note>
  Les déploiements Enterprise utilisant des domaines personnalisés disposent d'une clé de signature dédiée par compte, et l'émetteur des jetons est votre URL Devin personnalisée. Contactez votre administrateur Devin ou le support Cognition pour obtenir l'URL de votre émetteur et l'ID de votre organisation.
</Note>
