Información general sobre la autenticación
El proceso de habilitar la autenticación del usuario y obtener autorización para acceder a los datos de XBOX services consta de tres pasos. El primer paso es un paso de aprovisionamiento que se realiza una sola vez: Registro del sitio web- El sitio web o la aplicación web obtiene una identidad aprovisionada para su uso con una cuenta Microsoft.
- Este registro se realiza en el Microsoft Entra ID del publicador.
- El usuario accede al sitio web o inicia la aplicación.
- Se redirige al usuario para que inicie sesión en su cuenta Microsoft a través del punto de conexión de OAuth2.0.
- El usuario introduce sus credenciales correctamente y da su consentimiento para que el sitio web o la aplicación acceda a la información de XBOX services en su nombre.
- El sitio web o la aplicación recibe un código de autorización.
- El sitio web o la aplicación solicita un token de acceso, aprovechando el código de autorización y solicitando el ámbito correcto.
- El sitio web o la aplicación recibe un token de acceso (y un token de actualización si se solicitó).
- Con el token de acceso, el sitio web o la aplicación realiza una solicitud de un token de usuario de XBOX services (token U).
- A continuación, el token de usuario se usa para obtener tokens X (tokens de acceso) del servicio de tokens seguros de XBOX (XSTS) para acceder a XBOX services o a los servicios del título.
Registro del sitio web
Para poder autenticar a un usuario en un sitio web mediante una cuenta Microsoft, primero es necesario registrar el sitio web o la aplicación mediante la interfaz de registro de aplicaciones de Microsoft Entra ID.- Inicie sesión en Azure Portal con una cuenta que tenga permiso para registrar aplicaciones en Microsoft Entra ID
- Seleccione “App Registration”
- Seleccione ”+ New Registration”
- Introduzca un nombre para esta aplicación
- En “Supported account types”, seleccione “Personal Microsoft accounts only”
- Introduzca una dirección URL de redireccionamiento a la que quiera que el flujo de autenticación redirija al usuario después de una autenticación correcta. Anótela, ya que la necesitará más adelante. También puede agregar URI adicionales más adelante
- Complete el registro de la aplicación
- Anote el Id. de aplicación (cliente) y el Id. de directorio (inquilino)
- Seleccione Certificados y secretos
- Seleccione ”+ New Client Secret”
- Introduzca una descripción
- Seleccione un intervalo de expiración
- Haga clic en Agregar
- Anote el valor del secreto de cliente creado, ya que lo necesitará más adelante. Este valor solo debe usarse y almacenarse de forma segura en su servicio.
Integración
Para implementar el flujo mencionado anteriormente, y usando los identificadores creados durante el proceso de registro, implemente lo siguiente:-
Comience el flujo de OAuth2.0 solicitando un código de autorización:
- Dirija al usuario a
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_accessEn este ejemplo se solicita un token de inicio de sesión y acceso a un token sin conexión que se puede usar para actualizar el token de acceso después de que expire. Esto también mostrará al usuario los avisos correctos de privacidad y actividad de la cuenta. - Una vez que el usuario complete el inicio de sesión en su cuenta Microsoft, se le redirigirá al URI de redireccionamiento proporcionado con el código de autorización anexado con
"code="seguido del código de autorización. - El uso del ámbito
xboxlive.offline_accesses opcional y solo es necesario para escenarios que requieren llamadas después de que el token de inicio de sesión original haya expirado. No se pueden usar otros ámbitos adicionales para esta solicitud.
- Dirija al usuario a
-
Canjee un token de acceso de cuenta Microsoft mediante el código de autorización y el secreto de cliente generado durante el proceso de registro de la aplicación:
- Cree una solicitud web POST con las propiedades siguientes:
URL:
https://login.microsoftonline.com/consumers/oauth2/v2.0/tokenHeader:Content-Type: application/x-www-form-urlencodedBody:
- Cree una solicitud web POST con las propiedades siguientes:
URL:
- La respuesta del servicio contendrá una respuesta JSON con la información siguiente:
Token Type:
BearerScope:XboxLive.signin XboxLive.offline_accessExpires_in:ValueAccess_token:[token value]Este es su token de acceso, que usará para intercambiarlo con XBOX services por un token de usuario de XBOX.
- Puede solicitar un token de usuario de XBOX llamando a los puntos de conexión de autenticación de XBOX e intercambiar su token de acceso de cuenta Microsoft por un token de usuario de XBOX completando la solicitud siguiente:
- Cree una solicitud web POST con las propiedades siguientes:
URL:
https://user.auth.xboxlive.com/user/authenticateHeader:x-xbl-contract-version: 1Header:content-type: application/jsonBody: una carga json con el formato correcto que incluya los datos siguientes:
- Cree una solicitud web POST con las propiedades siguientes:
URL:
- La respuesta del servicio contendrá una carga json con la información siguiente, incluido el token de usuario de XBOX. Necesitará el token de usuario de XBOX en el paso siguiente:
- A continuación, puede intercambiar su token de usuario por un token X. Si quiere realizar llamadas de servicio a servicio en nombre del usuario y necesita la notificación DelegationToken o el XUID del usuario, puede solicitar un token X para su propio usuario de confianza y, después, tratar ese token como lo haría normalmente para extraer las notificaciones necesarias.
