> ## 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.

# Autenticar seu serviço com as APIs da Microsoft Store

> Descreve como obter e usar X-tokens de autenticação delegada ou User Store IDs para autenticar com os Microsoft Store Services.

Este artigo descreve como autenticar chamadas serviço a serviço para as APIs da Microsoft Store usando X-tokens delegados ou User Store IDs:

* [User Store IDs e Microsoft Entra ID](#authenticating-with-microsoft-entra-id-and-user-store-ids): vincula a autenticação e os resultados à conta de usuário conectada ao aplicativo Microsoft Store.
* [X-tokens de autenticação delegada](#authenticating-with-delegated-authentication-x-tokens): vincula a autenticação e os resultados à conta dos XBOX services do usuário que está jogando o jogo no momento.

Use a autenticação por User Store ID para novos títulos do XBOX e de PC. Os X-tokens têm como escopo a conta do jogador ativo e não são compatíveis com alguns serviços (incluindo Recurrence e Purchase). No PC, as contas de compra e de jogo podem ser diferentes. Para obter detalhes, confira [Lidar com cenários de contas da Store incompatíveis no PC](/pt-BR/publishing/xstore-commerce/xstore-mismatched-accounts).

Para fluxos de serviço multiplataforma e de longa duração, use User Store IDs, pois eles podem ser renovados sem uma interação ativa do cliente. Em comparação, os fluxos de X-token exigem uma conexão de cliente atualizada após o tempo de vida máximo.

As seções a seguir resumem a configuração e os recursos necessários para cada tipo de autenticação.

## Autenticar com o Microsoft Entra ID e User Store IDs

Todas as APIs de serviço da Microsoft Store dão suporte à autenticação por meio do Microsoft Entra ID e de User Store IDs. Para usar essa autenticação, você (ou sua organização) deve ter um locatário do Microsoft Entra ID e registrar uma ID de aplicativo nele. Para registrar um aplicativo, sua conta precisa da função de Administrador global no seu locatário. Se você já usa o Microsoft Office 365 ou outros serviços empresariais da Microsoft, já tem um locatário do Microsoft Entra ID que pode gerenciar no portal do Azure.

Para obter orientações sobre como obter os User Store IDs necessários para esse tipo de autenticação, confira [Solicitar um User Store ID para autenticação serviço a serviço](/pt-BR/publishing/xstore-commerce/xstore-requesting-userstoreid).

<Note>
  No PC, os direitos são associados ao usuário que entrou no aplicativo Microsoft Store, em vez do usuário que está jogando um título no momento. Como as contas podem ser diferentes, recomenda-se que os títulos de PC revisem as informações em [Lidar com cenários de contas da Store incompatíveis no PC](/pt-BR/publishing/xstore-commerce/xstore-mismatched-accounts).
</Note>

Quando você chama as APIs da Microsoft Store com o fluxo de autenticação do Microsoft Entra, um token de acesso do Microsoft Entra é usado no cabeçalho `Authorization` da sua solicitação da seguinte maneira.

```bash theme={null}
Authorization: Bearer <Entra ID access token>  
```

Se você estiver trabalhando em uma área restrita, inclua a seguinte declaração no corpo da solicitação JSON. Sem ela, os resultados usam RETAIL por padrão.

Exemplo:

```json theme={null}
  "sbx": "XDKS.1"
```

<Info>
  **Limitação de consumíveis gerenciados pelo desenvolvedor:** embora a autenticação por User Store ID e Entra ID funcione para a maioria das chamadas de API da Microsoft Store em ambientes de área restrita, a [Consume API](/pt-BR/reference/microsoft-store-apis/xstore-v8-consume) não dá suporte a esse método de autenticação para consumíveis gerenciados pelo desenvolvedor em áreas restritas de desenvolvimento. Para consumir consumíveis gerenciados pelo desenvolvedor em áreas restritas, use [tokens XSTS de autenticação delegada](#authenticating-with-delegated-authentication-x-tokens).
</Info>

Você também deve incluir os valores de beneficiário mostrados na tabela a seguir, incluindo o User Store ID do cliente.

| Parâmetro | Tipo | Descrição | Obrigatório |
| - | - | - | - |
| `identityType` | `string` | Especifique o valor de cadeia de caracteres `b2b`. | Sim |
| `identityValue` | `string` | A [chave de User Store ID](/pt-BR/publishing/xstore-commerce/xstore-requesting-userstoreid#step-4-create-a-user-store-id-key) que representa a identidade do usuário para o qual você deseja relatar um produto consumível como atendido. | Sim |
| `localTicketReference` | `string` | O identificador solicitado para a resposta retornada. Use o mesmo valor da [declaração](/pt-BR/publishing/xstore-commerce/xstore-requesting-userstoreid#claims-in-a-user-store-id-key) *userId* na chave de User Store ID. | Sim |

Exemplo:

```json theme={null}
  "beneficiaries": [
    {
        "identitytype" : "b2b",
        "identityValue" : "eyJ0eXAiOiJ...",
        "localTicketReference" : "testReference"
    }
  ],
```

Para obter mais informações sobre como obter, gerenciar e usar a autenticação por User Store ID, confira os recursos a seguir.

* [Microsoft.StoreServices (GitHub)](https://github.com/microsoft/Microsoft-Store-Services): biblioteca e código-fonte para autenticar e chamar os serviços da Microsoft Store a partir do seu back-end.
* [Microsoft.StoreServices Sample (GitHub)](https://github.com/microsoft/Microsoft-Store-Services-Sample): exemplo de serviço que demonstra padrões de autenticação, integração de comércio e reconciliação de reembolsos.
* [Solicitar um User Store ID para autenticação serviço a serviço](/pt-BR/publishing/xstore-commerce/xstore-requesting-userstoreid)
* [Renovar uma chave de User Store ID](/pt-BR/publishing/xstore-commerce/xstore-renew-userstoreid)
* [Gerenciar direitos de produtos a partir de um serviço](https://learn.microsoft.com/windows/uwp/monetize/view-and-grant-products-from-a-service)

### Diagrama de chamada de uma API da Microsoft Store

O diagrama a seguir descreve o processo de chamada de uma API da Microsoft Store usando o User Store ID do seu serviço.

<img src="https://mintcdn.com/microsoft-4404708b/iADzli99B7EWodAv/images/xstore/b2b-2.png?fit=max&auto=format&n=iADzli99B7EWodAv&q=85&s=2d3f87bf7ab2c6e0b0c58085b1560506" alt="Diagrama mostrando o processo de chamada de uma API da Microsoft Store usando um User Store ID. Seu serviço de jogo troca tokens com o Microsoft Entra ID e chama a API de coleções ou produtos da Store." width="826" height="431" data-path="images/xstore/b2b-2.png" />

### Configuração extra necessária para exibir e gerenciar produtos com um User Store ID e autenticação do Microsoft Entra ID

Para usar o Microsoft Entra ID e User Store IDs, adicione a ID do cliente do seu aplicativo do Microsoft Entra às configurações de **Product collections and purchases** do seu jogo no Partner Center. Você pode configurar até duas IDs de cliente para acessar o produto e seus complementos por meio dos serviços Collections e Purchase. O sintoma mais comum quando seus produtos não estão vinculados corretamente à ID do cliente do seu aplicativo do Microsoft Entra é que as chamadas para Collections são bem-sucedidas, mas não há itens nos resultados.

#### Configurar seus produtos para ficarem visíveis para o seu serviço por meio do Microsoft Entra ID e de User Store IDs

1. Na página do Partner Center do seu jogo, selecione **Product collections and purchases** no painel esquerdo.
2. Insira a ID do cliente do aplicativo do Microsoft Entra que você está usando para autenticar seu serviço.
3. Selecione o botão **Save**.
4. Publique novamente o produto de jogo e todos os complementos do produto na Microsoft Store na sua área restrita ou ambiente de desenvolvedor.

Depois que o processo de publicação for concluído, você deverá ver os itens corretos sendo retornados pelas chamadas de serviço.

## Autenticar com X-tokens de autenticação delegada

Use um X-token de autenticação delegada para autenticar chamadas serviço a serviço adicionando o cabeçalho `Authorization` à solicitação no formato a seguir.

```JSON theme={null}
Authorization: XBL3.0 x=<user hash>;<X-token>
```

A terceira parte confiável de destino do X-token deve ser [https://licensing.xboxlive.com](https://licensing.xboxlive.com), a mesma do serviço XBOX Inventory herdado. Se você configurou seus serviços anteriores para chamar o XBOX Inventory, poderá reutilizar o mesmo token com esse ponto de extremidade. Você também precisa de um cabeçalho de assinatura que corresponda à política de assinatura do ponto de extremidade especificado.

Para obter mais informações sobre como obter, gerenciar e usar um X-token de autenticação delegada e uma assinatura, confira os recursos a seguir.

* [Game Service Sample](https://aka.ms/gdkdl): um exemplo abrangente de serviço Web que demonstra a validação e o tratamento de X-tokens do cliente, autenticação servidor a servidor, serviços de comércio e muito mais. Baixe a versão mais recente no [site de download do GDK](https://aka.ms/gdkdl). Baixe a versão mais recente de All Samples. O Game Service Samples está em samples\Live\GameService no arquivo .zip baixado.
* [Xfest 2019 - XSTS Auth and Server to Server made Easy](https://forums.xboxlive.com/articles/96129/xfest-online-2019-archive.html): visão geral e explicação dos X-tokens e de como o Game Service Sample pode ajudar a iniciar seu próprio trabalho de autenticação serviço a serviço. Para baixar as informações da apresentação, selecione **GDK Track Downloads** no site de arquivo.
* **Autenticação dos XBOX services e chamadas serviço a serviço**: documentação mais detalhada sobre autenticação, X-tokens e as etapas e chamadas necessárias para fazer chamadas serviço a serviço para os XBOX services.

### Configuração extra necessária para exibir e gerenciar produtos com X-tokens de autenticação delegada

Os X-tokens estão vinculados a uma Business Partner ID no Partner Center, portanto, você deve vincular os produtos a essa mesma Business Partner ID. Na prática, os produtos devem estar em um Product Group cuja Dev Studio ID corresponda à Business Partner ID usada pela sua terceira parte confiável.

O sintoma mais comum quando seus produtos não estão vinculados corretamente à Business Partner ID correta é que as chamadas para Collections são bem-sucedidas, mas não retornam itens nos resultados. Para obter mais informações, confira a postagem do fórum [B2B call to Collections LicensePreview service returns empty results (Partner Center configured game)](https://forums.xboxlive.com/questions/78683/b2b-call-to-collections-licensepreview-service-ret.html).

#### Para configurar seus produtos e serviços Web no Partner Center

1. Crie um Business Partner Certificate usando o link **Generate Certificate** do serviço Web. (Selecione **Developer Settings** > **XBOX Live** > **Web Services**.) Escolha o link na linha do serviço Web ao qual sua terceira parte confiável está vinculada.
2. Acesse a interface de gerenciamento de Business Partner (selecione **Developer Settings** > **XBOX Live** > **Business Partner**) e copie a Business Partner ID que corresponde à do serviço Web usado na etapa 1. (Exemplo de Business Partner ID: 12345678-9012-3456-7890-123456789012)
3. Na página **Partner Center Overview** dos seus produtos, selecione **Create a new** e depois selecione **Product group**.
4. Atribua esse grupo de produtos a um Dev Studio ou selecione **Create a new developer studio** se você ainda não tiver um.
5. Verifique se a ID do Dev Studio selecionado corresponde à Business Partner ID da etapa 2. Copie a Business Partner ID em **Dev Studio ID (optional)** se estiver em branco. Se esse campo já tiver um valor em uso, crie um novo Dev Studio em vez de substituí-lo, para evitar interromper os mapeamentos de produtos serviço a serviço existentes.
6. Depois que o Dev Studio estiver configurado com a ID correspondente do Business Partner, retorne ao Product Group que você criou. Adicione seu jogo e todos os produtos à lista **Included in this product group**.
7. Selecione **Save** para concluir a criação do grupo de produtos.
8. Acesse a interface XBOX Settings do seu jogo e verifique se o Business Partner vinculado é o mesmo usado na etapa 2.
9. Publique novamente todos os itens do grupo de produtos na Microsoft Store na sua área restrita ou ambiente de desenvolvedor.

Depois que o processo de publicação for concluído, você verá os itens corretos sendo retornados pelas chamadas de serviço.

## Confira também

[APIs de serviço da Microsoft Store](/pt-BR/reference/microsoft-store-apis/index)

[Solicitar um User Store ID para autenticação serviço a serviço](/pt-BR/publishing/xstore-commerce/xstore-requesting-userstoreid)

[Renovar uma chave de User Store ID](/pt-BR/publishing/xstore-commerce/xstore-renew-userstoreid)


## Related topics

- [Programa de Serviços Pagos da Certificação](/pt-BR/publishing/game-publishing/concepts/certification/certification-paid-services.md)
- [Adicione serviços de backend com o PlayFab](/pt-BR/home/build-first-title/add-backend-services.md)
- [XR-013 Vinculação de contas Microsoft a contas do publisher](/pt-BR/publishing/certification/xr/xr-013.md)
- [Integração de Parceiro XBOX para acesso e publicação](/pt-BR/home/onboarding.md)
- [Publicando seu port](/pt-BR/paths/porting/publishing.md)
