Vue d’ensemble de l’authentification
Le processus permettant d’activer l’authentification de l’utilisateur et d’obtenir l’autorisation d’accéder aux données des services XBOX comporte trois étapes. La première est une étape de provisionnement ponctuelle : Inscription du site web- Le site web ou l’application web se voit attribuer une identité destinée à être utilisée avec un compte Microsoft.
- Cette inscription s’effectue dans le Microsoft Entra ID de l’éditeur.
- L’utilisateur accède au site web ou démarre l’application.
- L’utilisateur est redirigé pour se connecter à son compte Microsoft au moyen du point de terminaison OAuth 2.0.
- L’utilisateur saisit correctement ses informations d’identification et consent à ce que le site web ou l’application accède aux informations des services XBOX en son nom.
- Le site web ou l’application reçoit un code d’autorisation.
- Le site web ou l’application demande un jeton d’accès à l’aide du code d’autorisation, en demandant l’étendue appropriée.
- Le site web ou l’application reçoit un jeton d’accès (et un jeton d’actualisation, si celui-ci a été demandé).
- À l’aide du jeton d’accès, le site web ou l’application demande un jeton utilisateur des services XBOX (jeton U).
- Le jeton utilisateur est ensuite utilisé pour obtenir des jetons X (jetons d’accès) auprès du XBOX Security Token Service (XSTS) afin d’accéder aux services XBOX ou aux services de titre.
Inscription du site web
Pour pouvoir authentifier un utilisateur auprès d’un site web à l’aide d’un compte Microsoft, le site web ou l’application doit d’abord être inscrit au moyen de l’interface d’inscription d’applications de Microsoft Entra ID.- Connectez-vous au portail Azure avec un compte autorisé à inscrire des applications dans Microsoft Entra ID
- Sélectionnez « Inscriptions d’applications »
- Sélectionnez « + Nouvelle inscription »
- Saisissez un nom pour cette application
- Pour « Types de comptes pris en charge », sélectionnez « Comptes Microsoft personnels uniquement »
- Saisissez l’URL de redirection vers laquelle le flux d’authentification doit rediriger l’utilisateur une fois l’authentification réussie. Notez-la, car vous en aurez besoin plus tard. Vous pourrez également ajouter d’autres URI ultérieurement
- Terminez l’inscription de l’application
- Notez l’ID d’application (client) et l’ID de l’annuaire (locataire)
- Sélectionnez Certificats et secrets
- Sélectionnez « + Nouveau secret client »
- Saisissez une description
- Sélectionnez une période d’expiration
- Cliquez sur Ajouter
- Notez la valeur du secret client créé, car vous en aurez besoin plus tard. Cette valeur ne doit être utilisée et stockée de manière sécurisée que sur votre service.
Intégration
En suivant le flux mentionné ci-dessus et en utilisant les identificateurs créés lors du processus d’inscription, implémentez les étapes suivantes :-
Lancez le flux OAuth 2.0 en demandant un code d’autorisation :
- Redirigez l’utilisateur vers
https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize?client_id=[Application (client) ID from Registration]&response_type=code&redirect_uri=[RedirectUI given during registration]&scope=xboxlive.signin&xboxlive.offline_accessDans cet exemple, nous demandons un jeton de connexion et l’accès à un jeton hors connexion qui peut être utilisé pour actualiser le jeton d’accès après son expiration. Les avis appropriés sur la confidentialité et l’activité du compte seront également présentés à l’utilisateur. - Une fois que l’utilisateur s’est connecté à son compte Microsoft, il est redirigé vers l’URI de redirection fourni, auquel est ajouté le code d’autorisation sous la forme
"code="suivi du code d’autorisation. - L’utilisation de l’étendue
xboxlive.offline_accessest facultative et n’est nécessaire que pour les scénarios qui exigent des appels après l’expiration du jeton de connexion initial. Aucune autre étendue supplémentaire ne peut être utilisée pour cette requête.
- Redirigez l’utilisateur vers
-
Échangez le code d’autorisation et le secret client généré lors du processus d’inscription de l’application contre un jeton d’accès de compte Microsoft :
- Créez une requête web POST avec les propriétés suivantes :
URL :
https://login.microsoftonline.com/consumers/oauth2/v2.0/tokenEn-tête :Content-Type: application/x-www-form-urlencodedCorps :
- Créez une requête web POST avec les propriétés suivantes :
URL :
- La réponse du service contient une réponse JSON avec les informations suivantes :
Token Type :
BearerScope :XboxLive.signin XboxLive.offline_accessExpires_in :ValueAccess_token :[token value]Il s’agit de votre jeton d’accès, que vous échangerez auprès des services XBOX contre un jeton utilisateur XBOX.
- Vous pouvez demander un jeton utilisateur XBOX en appelant les points de terminaison d’authentification XBOX et échanger votre jeton d’accès de compte Microsoft contre un jeton utilisateur XBOX en effectuant la requête suivante :
- Créez une requête web POST avec les propriétés suivantes :
URL :
https://user.auth.xboxlive.com/user/authenticateEn-tête :x-xbl-contract-version: 1En-tête :content-type: application/jsonCorps : une charge utile JSON bien formée qui comprend les données suivantes :
- Créez une requête web POST avec les propriétés suivantes :
URL :
- La réponse du service contient une charge utile JSON comprenant les informations suivantes, dont le jeton utilisateur XBOX. Vous aurez besoin du jeton utilisateur XBOX à l’étape suivante :
- Vous pouvez ensuite échanger votre jeton utilisateur contre un jeton X. Si vous souhaitez effectuer des appels de service à service pour le compte de l’utilisateur et avez besoin de la revendication DelegationToken ou du XUID de l’utilisateur, vous pouvez demander un jeton X pour votre propre partie de confiance, puis traiter ce jeton comme vous le feriez normalement pour en extraire les revendications nécessaires.
