
# Lister les identités liées d'un utilisateur

`GET /v1/users/{user_id}/identities` · autorisation `users:read`

Liste les identités liées d'un utilisateur (mot de passe, réseaux sociaux, SAML, OIDC et héritées) dans une seule page, triées par date de création. Le nombre d'identités par utilisateur est borné, donc la liste n'a pas de `limit`, `after`, `before` ni `order`, et `list_metadata` vaut toujours `null`. Le sujet externe d'une identité (`sub` OIDC, NameID SAML), l'adresse e-mail transmise par le fournisseur d'identité et la référence d'identifiant ne sont jamais renvoyés. Les clés d'accès et les méthodes à code à usage unique sont des authentificateurs et sont listés par `GET /v1/users/{user_id}/authenticators`.

## Requête

| Paramètre | Dans | Obligatoire | Description |
|---|---|---|---|
| `user_id` | path | oui | Identifiant de l'utilisateur, préfixé `usr_`. |

## Réponse

`200 OK`. `data` contient les identités triées par date de création ; `list_metadata` vaut toujours `null` car la liste n'est pas paginée. `connection_id` vaut `null` pour `password` ; `provider` n'est renseigné que pour `social`.

Les identifiants d'identité portent le préfixe `idn_`.

```json
{
  "data": [
    {
      "id": "idn_0a1b2c3d4e5f6g7h8j9k0m1n2q",
      "type": "password",
      "connection_id": null,
      "provider": null,
      "linked_via": "primary",
      "created_at": "2026-01-15T09:30:00Z"
    },
    {
      "id": "idn_0a1b2c3d4e5f6g7h8j9k0m1n2r",
      "type": "social",
      "connection_id": "conn_0a1b2c3d4e5f6g7h8j9k0m1n2s",
      "provider": "google",
      "linked_via": "manual_link",
      "created_at": "2026-02-01T08:00:00Z"
    }
  ],
  "list_metadata": {
    "before": null,
    "after": null
  }
}
```

`type` : `password`, `social`, `saml`, `oidc`, `legacy` · `linked_via` : `primary`, `auto_verified_email`, `user_confirmed`, `admin_api`, `import`, `jit`, `auto_domain`, `invite_proof`, `manual_link`, `scim_match`

## Erreurs

Chaque erreur est un corps `application/problem+json` avec un `code` stable.

| HTTP | `code` | Quand |
|---|---|---|
| 404 | `not_found` | L'utilisateur n'existe pas dans cet environnement (ou l'identifiant est mal formé). |
| 401 | `unauthenticated` | La clé d'API est absente, invalide ou révoquée. |
| 403 | `insufficient_permissions` | La clé ne dispose pas de l'autorisation `users:read`. |
| 429 | `rate_limited` | La limite de débit a été dépassée ; respectez `Retry-After`. |
| 503 | `service_unavailable` | Une dépendance est temporairement indisponible ; réessayez plus tard. |

## Exemple

```bash
curl https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p/identities \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

## Données personnelles

Cet endpoint traite des données personnelles : les identités liées. [Données personnelles dans les API KeenAuth](/docs/policies/personal-data) décrit ce qui est stocké, la durée de conservation et la manière dont elles sont supprimées. N'envoyez aucune catégorie particulière de données personnelles (santé, données biométriques, religion, opinions politiques, orientation sexuelle) dans aucun champ.
