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

# Demander un User Store ID avec des X-tokens ou OAuth 2.0

> Générez des User Store IDs sur votre service à l'aide d'OAuth 2.0 ou des X-tokens XBOX (XSTS), sans échanger de jetons via le client de jeu pour l'authentification.

Cet article décrit comment votre service peut générer des User Store IDs directement, sans échanger de jetons d'accès et de clés via le client de jeu. Cette approche est utile pour :

* Les expériences dans lesquelles aucun client de jeu n'intervient dans le flux
* La liaison du compte XBOX de l'utilisateur au compte de votre propre service pour cet utilisateur
* Les jeux et services qui utilisent déjà l'authentification par jetons de sécurité XBOX (XSTS ou X-tokens) pour les appels client-service et service-service

Pour plus d'informations sur les User Store IDs en général, consultez [Demander un User Store ID pour l'authentification de service à service](/fr/publishing/xstore-commerce/xstore-requesting-userstoreid).

## Exigence relative au X-token

Ce processus nécessite l'utilisation d'un X-Token d'authentification déléguée (Delegated Auth X-Token) pour identifier l'utilisateur que représente le User Store ID.

Pour plus d'informations sur les X-Tokens d'authentification déléguée et sur leur création, consultez la documentation « Appels de service de titre vers les services XBOX ».

## Exigences OAuth 2.0 pour générer les User Store IDs

Si votre service utilise OAuth pour que l'utilisateur se connecte avec son compte Microsoft (MSA), les éléments suivants sont requis :

* L'utilisateur doit disposer d'une identité XBOX liée à son compte Microsoft, car les informations d'identification OAuth doivent être échangées contre un X-token.
* L'étendue OAuth que vous demandez doit inclure à la fois `xboxlive.signin` et `xboxlive.offline_access` afin de garantir le consentement approprié de l'utilisateur pour ce flux et la possibilité de récupérer le X-token requis.

Pour plus d'informations sur l'utilisation de la connexion aux services XBOX avec OAuth sur votre service, consultez la documentation « Connexion aux services XBOX pour les sites web de titres ».

## Étapes lors de l'utilisation d'informations d'identification OAuth 2.0

Avec OAuth, vous obtenez le consentement de l'utilisateur et échangez les informations d'identification OAuth contre un X-token auprès de votre partie de confiance. Ensuite, poursuivez avec le même flux décrit dans [Étapes lors de l'utilisation de X-Tokens](#steps-when-using-x-tokens).

Aperçu du flux d'échange des informations d'identification OAuth contre un X-token :

1. Obtenir le code d'autorisation OAuth 2.0
2. Échanger le code d'autorisation contre un jeton RPS (également appelé jeton d'accès de compte Microsoft)
3. Échanger le jeton RPS contre un jeton utilisateur XBOX (XBOX User Token)
4. Échanger le jeton utilisateur XBOX contre un X-Token auprès de votre propre partie de confiance
5. Utiliser le X-token dans [Étapes lors de l'utilisation de X-Tokens](#steps-when-using-x-tokens).

Pour obtenir tous les détails d'implémentation, consultez la documentation « Connexion aux services XBOX pour les sites web de titres ».

## Étapes lors de l'utilisation de X-Tokens

Une fois que vous disposez d'un X-token qui identifie l'utilisateur pour votre partie de confiance, utilisez sa revendication `DelegationToken` pour créer un X-token d'authentification déléguée. Le X-token initial peut provenir du client de jeu ou du flux OAuth 2.0.

Aperçu du flux de création d'un X-token d'authentification déléguée :

1. Extraire la revendication DelegationToken (`dlt`) du X-token de l'utilisateur.
2. Obtenir un jeton de service (Service Token) auprès du service XSAS à l'aide de votre certificat Business Partner.
3. Échanger le DelegationToken, le jeton de service et la partie de confiance cible (voir le tableau) contre un X-token d'authentification déléguée.

Pour obtenir tous les détails d'implémentation sur la création de X-tokens d'authentification déléguée, consultez la documentation « Appels de service de titre vers les services XBOX ».

À l'étape 3, la partie de confiance à utiliser varie selon que vous générez un User Collections ID ou un User Purchase ID pour l'utilisateur :

| Type de User Store ID | Partie de confiance du X-token d'authentification déléguée | URI pour créer le User Store ID |
| - | - | - |
| User Collections ID (`UserCollectionsId`) | `http://licensing.xboxlive.com` | `https://collections.mp.microsoft.com/v7.0/beneficiaries/me/keys` |
| User Purchase ID (`UserPurchaseId`) | `http://mp.microsoft.com/` | `https://purchase.mp.microsoft.com/v7.0/users/me/keys` |

## Requête

Une fois que vous disposez du X-token d'authentification déléguée, demandez le User Store ID à l'aide de l'URI correspondant au service que vous appelez.

### Syntaxe de la requête

| Méthode | URI de la requête |
| - | - |
| `POST` | `collections.mp.microsoft.com/v7.0/beneficiaries/me/keys` |
| `POST` | `purchase.mp.microsoft.com/v7.0/users/me/keys` |

### En-tête de la requête

| En-tête | Type | Description |
| - | - | - |
| `Authorization` | `string` | Obligatoire. X-token d'authentification déléguée au format `XBL3.0 x=[User Hash];[Token]` |
| `Host` | `string` | Doit correspondre à l'hôte de l'URI appelé |
| `Content-Length` | `number` | Longueur du corps de la requête. |
| `Content-Type` | `string` | Spécifie le type de la requête et de la réponse. Actuellement, la seule valeur prise en charge est `application/json`. |

### Corps de la requête

| Paramètre | Type | Description | Obligatoire |
| - | - | - | - |
| `serviceTicket` | `string` | Le jeton d'accès Collections ou le jeton d'accès Purchase de votre service, selon l'URI que vous appelez. Pour plus d'informations sur la création de ces jetons d'accès, consultez [Comprendre les différents jetons et URI d'audience](/fr/publishing/xstore-commerce/xstore-requesting-userstoreid#understanding-the-different-access-tokens-and-audience-uris). | Oui |
| `publisherUserId` | `string` | Valeur facultative inscrite dans le User Store ID pour votre propre suivi. | Non |

### Exemple de requête

```html theme={null}
POST https://collections.mp.microsoft.com/v7.0/beneficiaries/me/keys HTTP/1.1
Authorization: XBL3.0 x=13178812777611882182;eyJ...
Content-Length: 1352
Content-Type: application/json;
Host: collections.mp.microsoft.com
 
{
    "serviceTicket": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIn...",
    "publisherUserId": "CustomPublisherUserId"
}
```

## Réponse

### Corps de la réponse

| Paramètre | Type | Description | Obligatoire |
| - | - | - | - |
| `key` | `string` | User Store ID pouvant être utilisé pour l'authentification de service à service auprès des services du Microsoft Store. | Oui |

### Exemple de réponse

```html theme={null}
HTTP/1.1 200 OK
Date: Wed, 23 Mar 2022 23:06:25 GMT
Content-Type: application/json; 
Content-Length: 1716
MS-CorrelationId: dd5be303-f9a0-408a-bd01-e8c63afa721a
MS-RequestId: 0b9c8e5e-dfdd-4cf8-bfbe-93a5be3a7f48
MS-CV: rqFUH3gA+UOmTyXe.0

{"key":"eyJhbGciOiJSUzI1NiIsImtpZCI6IjY..."}
```

## Voir aussi

[Gérer les produits à partir de vos services](/fr/publishing/xstore-commerce/xstore-authenticating-service)

[Authentifier votre service auprès des API du Microsoft Store](/fr/publishing/xstore-commerce/xstore-authenticating-service)

Appels de service de titre vers les services XBOX

Connexion aux services XBOX pour les sites web de titres

[Renouveler une clé User Store ID](/fr/publishing/xstore-commerce/xstore-renew-userstoreid)

[Bibliothèque Microsoft.StoreServices](https://github.com/microsoft/Microsoft-Store-Services)

[Exemple Microsoft.StoreServices](https://github.com/microsoft/Microsoft-Store-Services-Sample)


## Related topics

- [使用 X-token 或 OAuth 2.0 请求 User Store ID](/zh-CN/publishing/xstore-commerce/xstore-requesting-userstoreid-oauth.md)
- [X-token 또는 OAuth 2.0으로 User Store ID 요청](/ko/publishing/xstore-commerce/xstore-requesting-userstoreid-oauth.md)
- [X-Token または OAuth 2.0 を使用したユーザー Store ID の要求](/ja-jp/publishing/xstore-commerce/xstore-requesting-userstoreid-oauth.md)
- [Solicitud de un User Store ID con tokens X u OAuth 2.0](/es/publishing/xstore-commerce/xstore-requesting-userstoreid-oauth.md)
- [Request a User Store ID with X-tokens or OAuth 2.0](/publishing/xstore-commerce/xstore-requesting-userstoreid-oauth.md)
