Identidade entre clientes

Quando os desenvolvedores criam um software, ele costuma incluir módulos que são executados em um servidor da Web, outros módulos executados no navegador e outros que são executados como apps nativos para dispositivos móveis. Os desenvolvedores e as pessoas que usam o software geralmente pensam em todos esses módulos como parte de um único app.

A implementação do OAuth 2.0 do Google condiz com essa visão do mundo. Para usar qualquer um dos serviços baseados em OAuth2.0, você precisa configurar seu software no Google API Console. A unidade de organização no API Console é um "projeto", que pode corresponder a um app de vários componentes. Para cada projeto, você pode fornecer informações de marca e especificar quais APIs o app vai acessar. Cada componente de um app de vários componentes é identificado por um ID do cliente, uma string exclusiva gerada no API Console.

Metas de autorização de clientes cruzados

Quando um app usa o OAuth 2.0 para autorização, ele age em nome do usuário para solicitar um token de acesso do OAuth 2.0 para acessar um recurso, que o app identifica por uma ou mais strings de escopo. Normalmente, é solicitado que o usuário aprove o acesso.

Quando um usuário concede acesso ao seu app para um escopo específico, ele olha para a tela de consentimento do usuário, que inclui o branding do produto no nível do projeto que você configurou no Google API Console. Portanto, o Google considera que, quando um usuário concede acesso a um escopo específico para qualquer ID do cliente em um projeto, a concessão indica a confiança do usuário em todo o aplicativo desse escopo.

Assim, o usuário não precisará aprovar o acesso a nenhum recurso mais de uma vez para o mesmo aplicativo lógico, sempre que os componentes do aplicativo puderem ser autenticados de maneira confiável pela infraestrutura de autorização do Google, que hoje inclui apps da Web, Android, Chrome, iOS, nativos de computador e dispositivos de entrada limitada.

Tokens de acesso de clientes cruzados

O software pode obter tokens de acesso do OAuth 2.0 de várias maneiras, dependendo da plataforma em que o código está sendo executado. Para detalhes, consulte Como usar o OAuth 2.0 para acessar as APIs do Google. Normalmente, a aprovação do usuário é necessária ao conceder um token de acesso.

Felizmente, a infraestrutura de autorização do Google pode usar informações sobre aprovações de usuários para um ID do cliente em um determinado projeto ao avaliar se precisa autorizar outros no mesmo projeto.

Assim, se um app Android solicitar um token de acesso para um escopo específico e o usuário solicitante já tiver concedido aprovação a um aplicativo da Web no mesmo projeto para o mesmo escopo, não será solicitado que o usuário aprove novamente. Isso funciona das duas maneiras: se o acesso a um escopo tiver sido concedido no seu app Android, ele não será solicitado novamente de outro cliente no mesmo projeto, como um aplicativo da Web.