> ## 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 jetons X ou OAuth 2.0

> Générez des User Store ID sur votre service à l'aide d'OAuth 2.0 ou de jetons X XBOX (XSTS), sans échanger de jetons par l'intermédiaire du client de jeu pour l'authentification.

Cet article explique comment votre service peut générer directement des User Store ID, sans échanger de jetons d'accès et de clés par l'intermédiaire du client de jeu. Cette approche est utile pour :

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

Pour obtenir des informations générales sur les User Store ID, consultez [Demande d'un User Store ID pour l'authentification de service à service](/fr-CA/publishing/xstore-commerce/xstore-requesting-userstoreid).

## Exigence relative au jeton X

Ce processus nécessite l'utilisation d'un jeton X d'authentification déléguée pour identifier l'utilisateur que représente le User Store ID.

Pour plus d'informations sur les jetons X d'authentification déléguée et sur la façon de les créer, consultez la documentation « Appels de service de titre aux services XBOX ».

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

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 avoir une identité XBOX liée à son compte Microsoft, car les informations d'identification OAuth doivent être échangées contre un jeton X.
* L'étendue OAuth que vous demandez doit inclure à la fois `xboxlive.signin` et `xboxlive.offline_access` afin d'assurer le consentement approprié de l'utilisateur pour ce flux et la capacité de récupérer le jeton X 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 jeton X associé à votre partie de confiance. Ensuite, poursuivez avec le même flux décrit dans [Étapes lors de l'utilisation de jetons X](#steps-when-using-x-tokens).

Aperçu du flux pour échanger des informations d'identification OAuth contre un jeton X :

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 d'utilisateur XBOX
4. Échanger le jeton d'utilisateur XBOX contre un jeton X associé à votre propre partie de confiance
5. Utiliser le jeton X dans [Étapes lors de l'utilisation de jetons X](#steps-when-using-x-tokens).

Pour obtenir tous les détails de mise en œuvre, consultez la documentation « Connexion aux services XBOX pour les sites Web de titres ».

## Étapes lors de l'utilisation de jetons X

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

Aperçu du flux pour créer un jeton X d'authentification déléguée :

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

Pour obtenir tous les détails de mise en œuvre sur la création de jetons X d'authentification déléguée, consultez la documentation « Appels de service de titre aux services XBOX ».

À l'étape 3, la partie de confiance que vous utilisez 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 jeton X 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 avez le jeton X 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. Jeton X 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` | La longueur du corps de la requête. |
| `Content-Type` | `string` | Spécifie le type de requête et de 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-CA/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-CA/publishing/xstore-commerce/xstore-authenticating-service)

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

Appels de service de titre aux services XBOX

Connexion aux services XBOX pour les sites Web de titres

[Renouvellement d'une clé User Store ID](/fr-CA/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

- [Solicitud de un User Store ID con tokens X u OAuth 2.0](/es/publishing/xstore-commerce/xstore-requesting-userstoreid-oauth.md)
- [使用 X-token 或 OAuth 2.0 请求 User Store ID](/zh-CN/publishing/xstore-commerce/xstore-requesting-userstoreid-oauth.md)
- [XR-013 Liaison des comptes Microsoft avec les comptes d'éditeur](/fr/publishing/certification/xr/xr-013.md)
- [X-token 또는 OAuth 2.0으로 User Store ID 요청](/ko/publishing/xstore-commerce/xstore-requesting-userstoreid-oauth.md)
- [Ajouter des services backend avec PlayFab](/fr/home/build-first-title/add-backend-services.md)
