XUser. No PC, a identidade está vinculada à conta conectada ao aplicativo Microsoft Store e usada para compras.
No PC, a identidade da conta do aplicativo Microsoft Store pode ser diferente da conta conectada ao XBOX Live que está jogando o jogo.
- ID de Coleções do Usuário para autenticar com o serviço de Coleções da Microsoft Store
- ID de Compra do Usuário para autenticar com o serviço de Compra da Microsoft Store
- Configure um aplicativo do Microsoft Entra ID.
- Associe a ID do seu aplicativo do Microsoft Entra ao seu aplicativo cliente no Partner Center.
- No seu serviço, crie tokens de acesso do Microsoft Entra ID que representem sua identidade de editor.
- No seu jogo, crie uma chave de ID da Store do Usuário que represente a identidade do usuário e passe essa chave de volta para o seu serviço.
- Autentique solicitações para as APIs da Microsoft Store.
- Renove uma chave de ID da Store do Usuário quando ela expirar.
- Seu serviço: back-end seguro que cria tokens de acesso do Microsoft Entra e chama as APIs da Store.
- Seu jogo: cliente que cria chaves de ID da Store do Usuário para o usuário conectado e as passa para o seu serviço.
A biblioteca .NET Microsoft.StoreServices e o exemplo
Para simplificar a integração, use o Microsoft.StoreServices no GitHub. A biblioteca lida com os fluxos de autenticação e de chaves e fornece wrappers para chamadas de serviço da Store. O exemplo inclui padrões de ponta a ponta para consumíveis, reconciliação de reembolsos e renovação de chaves.Etapa 1: Configurar um aplicativo do Microsoft Entra ID
Antes de usar as APIs da Microsoft Store, crie um aplicativo Web do Microsoft Entra que identifique seu serviço ao chamar as APIs. No aplicativo Web registrado, obtenha a ID do locatário, a ID do aplicativo e a chave secreta para gerar os tokens de acesso necessários nas próximas etapas.Você pode reutilizar a ID do locatário, a ID do aplicativo e a chave secreta do aplicativo Web em vários jogos e produtos do seu editor. Não é necessário criar um novo para cada jogo.
- Se ainda não tiver feito isso, siga as instruções em Início Rápido: Registrar um aplicativo na plataforma de identidade da Microsoft para registrar um aplicativo Web app / API no Microsoft Entra ID.
[!NOTE] Ao registrar seu aplicativo, escolha Web app / API como o tipo de aplicativo. Esse tipo permite recuperar uma chave (também chamada de segredo do cliente) para o seu aplicativo. Para chamar as APIs da Microsoft Store, você deve fornecer um segredo do cliente ao solicitar um token de acesso do Microsoft Entra ID em uma etapa posterior.
- No Portal de Gerenciamento do Azure, acesse Microsoft Entra ID. Selecione seu diretório, App registrations no painel esquerdo e, em seguida, seu aplicativo.
- Copie os valores de Application (client) ID e Directory (tenant) ID para usar mais tarde.
- Crie e copie um novo segredo do cliente em Certificates & Secrets no painel esquerdo.
Etapa 2: Associar a ID do seu aplicativo do Microsoft Entra ao seu aplicativo cliente no Partner Center
- Entre no Partner Center e selecione seu jogo.
- Selecione Services > Product collections and purchases. Insira a ID do seu aplicativo do Microsoft Entra em um dos campos Client ID disponíveis.
- Selecione Save.
- Publique novamente o jogo e seus complementos na loja.
Os produtos de complemento herdam as IDs de cliente salvas na página Product collections and purchases do jogo pai. Os produtos de Pacote de Jogo têm sua própria página Product collections and purchases, na qual você precisa adicionar as IDs de cliente.
Etapa 3: Criar tokens de acesso do Microsoft Entra ID
Todas as solicitações de API precisam de um token de portador, conhecido como token de acesso de serviço, no cabeçalho Authorization. O outro token de acesso necessário depende de quais serviços ou API você está chamando.Crie tokens de acesso do Microsoft Entra ID somente no contexto do seu serviço, não no seu aplicativo. Se você enviar o segredo do cliente para o seu aplicativo, ele poderá ser comprometido.
Entendendo os diferentes tokens de acesso e URIs de público
Cada token de acesso está associado a um URI de público diferente usado para criá-lo.Nunca envie ao cliente tokens de acesso de serviço que usem o público
https://onestore.microsoft.com/.default. Armazene-os com segurança no seu serviço.Criando tokens de acesso
Para criar os tokens de acesso, use a API OAuth 2.0 no seu serviço. Siga as instruções em Plataforma de identidade da Microsoft e o fluxo de credenciais do cliente OAuth 2.0 para enviar um HTTP POST para o ponto de extremidadehttps://login.microsoftonline.com/<tenant_id>/oauth2/v2.0/token. O exemplo a seguir mostra uma solicitação de exemplo.
- Defina
client_ideclient_secretcom os valores do registro do seu aplicativo no Portal de Gerenciamento do Azure. - Defina
resourcecom o URI de público do tipo de token de que você precisa. Consulte Entendendo os diferentes tokens de acesso e URIs de público.
Etapa 4: Criar uma chave de ID da Store do Usuário
Para identificar o usuário na solicitação, seu serviço obtém uma chave de ID da Store do Usuário. ID da Store do Usuário é usado como um termo geral para uma ID de Coleções do Usuário ou uma ID de Compra do Usuário. A única diferença entre essas chaves é com qual serviço correspondente elas podem autenticar. Você pode gerar chaves de ID da Store do Usuário no cliente usando as APIs do GDK ou no seu serviço. Esta seção se concentra na criação de chaves de ID da Store do Usuário no cliente por meio das APIs do GDK. Para obter mais informações sobre como gerar chaves de ID da Store do Usuário no seu serviço, consulte Solicitando uma ID da Store do Usuário a partir do seu serviço com X-tokens ou OAuth 2.0. As chaves de ID da Store do Usuário são JSON Web Tokens (JWT) que representam o usuário conectado ao aplicativo Microsoft Store. Para obter mais informações sobre as declarações nessa chave, consulte Declarações em uma chave de ID da Store do Usuário.Cada chave de ID da Store do Usuário é válida por 30 dias. Seu serviço pode renovar a chave antes que ela expire. Se o seu serviço precisar de acesso contínuo para consultar os direitos do usuário, renove suas chaves de ID da Microsoft Store em vez de criar novas. Para obter mais informações, consulte Renovando uma chave de ID da Store do Usuário.
Para criar uma chave de ID de Coleções do Usuário para o serviço de Coleções da Microsoft Store
A chave de ID de Coleções do Usuário permite consultar produtos pertencentes a um usuário e gerenciar produtos consumíveis usando as APIs de Coleções. Para obter mais informações sobre o gerenciamento de consumíveis, consulte Gerenciando produtos consumíveis a partir do seu serviço.- Passe para o jogo um token de acesso de Coleções que você criou na Etapa 3.
- No jogo, chame XStoreGetUserCollectionsIdAsync para recuperar a chave de ID de Coleções do Usuário. Passe o token de acesso de Coleções como o parâmetro
serviceTicket. Opcionalmente, passe seu identificador de usuário interno empublisherUserId. - Depois que seu aplicativo criar com êxito uma chave de ID de Coleções do Usuário, passe a chave de volta para o seu serviço.
Para criar uma chave de ID de Compra do Usuário para o serviço de Compra da Microsoft Store
A chave de ID de Compra do Usuário permite consultar produtos pertencentes a um usuário e gerenciar produtos consumíveis usando as APIs de Compra. Para obter mais informações sobre o gerenciamento de consumíveis, consulte Gerenciando produtos consumíveis a partir do seu serviço.- Passe para o jogo um token de acesso de Compra que você criou na Etapa 3.
- No jogo, chame XStoreGetUserPurchaseIdAsync para recuperar a chave de ID de Compra do Usuário. Passe o token de acesso de Compra como o parâmetro
serviceTicket. Opcionalmente, passe seu identificador de usuário interno empublisherUserId. - Depois que seu aplicativo criar com êxito uma chave de ID de Compra do Usuário, passe a chave de volta para o seu serviço.
Etapa 5: Autenticar chamadas para as APIs da Microsoft Store
Para obter instruções, consulte Autenticando com o Microsoft Entra ID e IDs da Store do Usuário.Etapa 6: Renovar uma chave de ID da Store do Usuário quando ela expirar
Para obter instruções, consulte Renovando uma chave de ID da Store do Usuário.Informações adicionais
Diagrama da criação de uma chave de ID da Store do Usuário
O diagrama a seguir ilustra o processo de criação de uma chave de ID da Store do Usuário.
Declarações em uma chave de ID da Store do Usuário
Uma chave de ID da Store do Usuário é um JWT que representa a identidade do usuário cujas informações de propriedade de produtos você deseja acessar. Quando decodificada usando Base64, uma chave de ID da Store do Usuário contém as declarações mostradas na tabela a seguir.
O exemplo a seguir mostra um cabeçalho de ID da Store do Usuário decodificado.
kid como valores opacos nos serviços do cliente e do título. As APIs da Store validam a assinatura.
Exemplo de um conjunto de declarações de ID da Store do Usuário decodificado.
