Visão geral da autenticação
O processo de habilitar a autenticação do usuário e obter autorização para acessar os dados dos serviços do XBOX consiste em três etapas. A primeira é uma etapa de provisionamento única: Registro do site- O site ou aplicativo web recebe uma identidade provisionada para uso com uma conta Microsoft.
- Esse registro ocorre no Microsoft Entra ID do publicador.
- O usuário acessa o site ou inicia o aplicativo.
- O usuário é redirecionado para entrar na conta Microsoft por meio do ponto de extremidade OAuth2.0.
- O usuário insere as credenciais com sucesso e consente que o site ou aplicativo acesse as informações dos serviços do XBOX em seu nome.
- O site ou aplicativo recebe um código de autorização.
- O site ou aplicativo solicita um token de acesso, usando o código de autorização e solicitando o escopo correto.
- O site ou aplicativo recebe um token de acesso (e um token de atualização, se solicitado).
- Usando o token de acesso, o site ou aplicativo faz uma requisição de um token de usuário dos serviços do XBOX (U Token).
- Em seguida, o token de usuário é usado para obter X tokens (tokens de acesso) do XBOX Security Token Service (XSTS) para acessar os serviços do XBOX ou os serviços do título.
Registro do site
Para poder autenticar um usuário em um site usando uma conta Microsoft, o site ou aplicativo primeiro precisa ser registrado por meio da interface de registro de aplicativos do Microsoft Entra ID.- Entre no Portal do Azure com uma conta que tenha permissão para registrar aplicativos no Microsoft Entra ID
- Selecione “Registros de aplicativo”
- Selecione ”+ Novo registro”
- Insira um nome para este aplicativo
- Em “Tipos de conta com suporte”, selecione “Somente contas Microsoft pessoais”
- Insira uma URL de redirecionamento para a qual o fluxo de autenticação deve redirecionar o usuário após a autenticação bem-sucedida. Anote-a, pois você precisará dela mais tarde. Você também pode adicionar outros URIs mais tarde
- Conclua o registro do aplicativo
- Anote o ID do aplicativo (cliente) e o ID do diretório (locatário)
- Selecione Certificados e segredos
- Selecione ”+ Novo segredo do cliente”
- Insira uma descrição
- Selecione um intervalo de expiração
- Clique em Adicionar
- Anote o valor do segredo do cliente criado, pois você precisará dele mais tarde. Esse valor só deve ser usado e armazenado com segurança no seu serviço.
Integração
Implementando o fluxo mencionado acima e usando os identificadores criados durante o processo de registro, implemente o seguinte:-
Inicie o fluxo OAuth2.0 solicitando um código de autorização:
- Direcione o usuário para
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_accessNeste exemplo, estamos solicitando um token de entrada e acesso a um token offline, que pode ser usado para atualizar o token de acesso depois que ele expirar. Isso também mostrará ao usuário os avisos corretos de privacidade e atividade da conta. - Depois que o usuário concluir a entrada na conta Microsoft, ele será redirecionado para o URI de redirecionamento fornecido, com o código de autorização acrescentado como
"code="seguido do código de autorização. - O uso do escopo
xboxlive.offline_accessé opcional e só é necessário em cenários que exigem chamadas depois que o token de entrada original expirar. Outros escopos adicionais não podem ser usados nesta requisição.
- Direcione o usuário para
-
Resgate um token de acesso da conta Microsoft usando o código de autorização e o segredo do cliente gerado durante o processo de registro do aplicativo:
- Crie uma requisição web POST com as seguintes propriedades:
URL:
https://login.microsoftonline.com/consumers/oauth2/v2.0/tokenCabeçalho:Content-Type: application/x-www-form-urlencodedCorpo:
- Crie uma requisição web POST com as seguintes propriedades:
URL:
- A resposta do serviço conterá uma resposta JSON com as seguintes informações:
Token Type:
BearerScope:XboxLive.signin XboxLive.offline_accessExpires_in:ValueAccess_token:[token value]Esse é o seu token de acesso, que você trocará com os serviços do XBOX por um token de usuário do XBOX.
- Você pode solicitar um token de usuário do XBOX chamando os pontos de extremidade de autenticação do XBOX e trocar o token de acesso da conta Microsoft por um token de usuário do XBOX concluindo a seguinte requisição:
- Crie uma requisição web POST com as seguintes propriedades:
URL:
https://user.auth.xboxlive.com/user/authenticateCabeçalho:x-xbl-contract-version: 1Cabeçalho:content-type: application/jsonCorpo: um conteúdo JSON bem formado que inclui os seguintes dados:
- Crie uma requisição web POST com as seguintes propriedades:
URL:
- A resposta do serviço conterá um conteúdo JSON com as seguintes informações, incluindo o token de usuário do XBOX. Você precisará do token de usuário do XBOX na próxima etapa:
- Em seguida, você pode trocar seu token de usuário por um X-token. Se quiser fazer chamadas de serviço para serviço em nome do usuário e precisar da declaração DelegationToken ou do XUID do usuário, você pode solicitar um X-token para sua própria terceira parte confiável e tratar esse token como faria normalmente para extrair as declarações necessárias.
