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

# Autenticação de usuários e propriedade

> Migre as verificações de autenticação de usuários e de propriedade do Steam para o XBOX GDK, abordando a entrada do usuário, os direitos e as diferenças de licenciamento entre as plataformas.

O Steamworks e o XBOX Game Development Kit (GDK) fornecem APIs para autenticar usuários e verificar se eles possuem o título que está sendo jogado e/ou o conteúdo adicional que estão tentando acessar. Há diferenças no que essas APIs tentam realizar.

A API do Steam verifica a identidade de um usuário para sessões multijogador e usa a verificação de propriedade para confirmar que o usuário está jogando uma cópia legítima do jogo da loja Steam. O XBOX Game Development Kit (GDK), no entanto, precisa conectar o usuário, o que verifica implicitamente sua identidade com o XBOX services, e verifica de forma independente se a conta atual da Microsoft Store tem direito ao jogo.

No XBOX Game Development Kit (GDK), as duas APIs usadas para autenticação e propriedade têm como alvo plataformas diferentes e, em alguns casos, contas totalmente diferentes. Por isso, usaremos o termo *com direito* para nos referirmos a um usuário que possui uma licença válida da Microsoft Store para jogar o jogo atual. Para obter mais informações sobre isso e suas implicações, confira a seção Diferenças de licenciamento entre as duas plataformas mais adiante neste tópico.

## Autenticação de usuários

No Steam, os usuários estão sempre "conectados" quando o cliente inicia o jogo. O jogo sempre pode acessar a Steam ID do usuário sem fazer nada além de inicializar a API. A autenticação no Steam refere-se ao processo de verificar se a identidade predefinida de um usuário é realmente a do usuário conectado ao cliente que iniciou o jogo, usando a API `ISteamUser` com tíquetes de sessão (com ponto a ponto ou um servidor dedicado), tíquetes de aplicativo criptografados (com um servidor seguro) ou a Steam Web API. Após a autenticação, as APIs Steam Web ou `ISteamUser` podem usar tíquetes para verificar a propriedade do jogo atual ou de seu conteúdo baixável (DLC).

Essa etapa de verificação é desnecessária no XBOX Game Development Kit (GDK), pois você já fez a verificação ao conectar o usuário com as etapas em [Inicializando o XBOX Game Development Kit (GDK)](/pt-BR/build/steam-porting-guide/initializing-the-gdk). Assim, o XBOX Game Development Kit (GDK) não tem um equivalente aos tíquetes de sessão ou aos tíquetes de aplicativo criptografados do Steam para verificar a identidade de um usuário em sessões multijogador.

## Propriedade e gerenciamento de direitos digitais (DRM)

Para verificar se o usuário tem direito ao jogo que está jogando no momento, você precisa usar a função [`XStoreQueryGameLicenseAsync`](/pt-BR/reference/system/xstore/xstore_members) na API `XStore` para verificar se o usuário tem uma licença para jogar esse jogo. No retorno de chamada assíncrono, verifique se:

1. A consulta foi bem-sucedida (ou seja, o usuário tem uma licença).
2. A licença fornecida por [`XStoreQueryGameLicenseResult`](/pt-BR/reference/system/xstore/xstore_members) ainda está ativa.

Se ambas as verificações forem bem-sucedidas, você pode considerar que o usuário tem direito de jogar seu jogo. No XBOX Game Development Kit (GDK), esse é o equivalente mais próximo de usar `ISteamUser/CheckAppOwnership` na Steam Web API ou de chamar `SteamEncryptedAppTicket::BIsTicketForApp` com um tíquete de aplicativo.

Para obter mais informações e um exemplo de código sobre como realizar essa verificação, confira [XStore: DRM básico e verificações de licença](/pt-BR/publishing/xstore-commerce/xstore-basic-drm). Esse tópico também contém informações sobre opções mais robustas de verificação de licença, que existem para evitar adulterações que contornem essa verificação no lado do cliente.

O Steam também fornece um wrapper de DRM para o qual o XBOX Game Development Kit (GDK) não tem equivalente. A Microsoft Store faz uma verificação antipirataria ao iniciar aplicativos instalados a partir dela. Para obter proteção de DRM completa, recomendamos usar uma solução de terceiros, além de executar a verificação de licença no exemplo de código vinculado.

## Verificando a propriedade de DLC

Se o seu jogo tiver DLC associado, você poderá verificar se a conta da Microsoft Store de um usuário tem acesso a um item com a API `XStore`. Para verificar essas licenças, primeiro você precisa consultar todos os produtos associados ao seu jogo usando a função [`XStoreQueryAssociatedProductsAsync`](/pt-BR/reference/system/xstore/xstore_members) e, em seguida, usar a função [`XStoreAcquireLicenseForPackageAsync`](/pt-BR/reference/system/xstore/xstore_members), que é semelhante às funções `ISteamUser/CheckAppOwnership` ou `ISteamUser::UserHasLicenseForApp`, para obter a licença de um item de DLC específico na lista retornada pela consulta.

Assim como na verificação de direitos para jogos, você precisa ver se a licença foi adquirida com êxito e se está ativa. Se ambas as verificações forem aprovadas, você pode considerar que o usuário está licenciado para acessar esse item de DLC. Para obter um exemplo de código desse processo, confira [Gerenciar e licenciar pacotes opcionais (DLC)](/pt-BR/publishing/xstore-commerce/xstore-dlc).

## Diferenças de licenciamento entre as duas plataformas

É importante observar a diferença de filosofia entre o Steam e a Microsoft Store. No Steam, as verificações de licença confirmam que o usuário cuja identidade foi autenticada tem uma licença para jogar o jogo atual, por tê-lo comprado ou por meio do Steam Family Sharing.

O XBOX Game Development Kit (GDK), no entanto, verifica se a conta da Microsoft Store autenticada no momento tem direito de acessar o conteúdo e obtém a identidade com uma conta XBOX. Isso tem uma ressalva importante: a conta Microsoft usada nessas duas contas *pode não ser a mesma*, mesmo que pertençam à mesma pessoa. Portanto, é importante conhecer os diferentes modelos de licenciamento que a Microsoft Store oferece caso você queira restringir quantos dispositivos diferentes podem jogar com uma licença de um jogo ou de outro conteúdo da Microsoft Store. Para obter mais informações, confira [Modelo de compartilhamento de produtos para jogos](/pt-BR/publishing/xstore-commerce/xstore-product-sharing).


## Related topics

- [Visão geral do guia de portabilidade do Steam](/pt-BR/build/steam-porting-guide/overview.md)
- [Solicitar uma ID da Store do Usuário para autenticação de serviço para serviço](/pt-BR/publishing/xstore-commerce/xstore-requesting-userstoreid.md)
- [Autenticação](/pt-BR/services/xbox-services/fundamentals/identity/auth/index.md)
- [studio_user_removed](/pt-BR/services/playfab/api-references/events/DeveloperIdentity/studio-user-removed.md)
- [studio_user_added](/pt-BR/services/playfab/api-references/events/DeveloperIdentity/studio-user-added.md)
