Esta página aborda algumas práticas recomendadas gerais para integração com o OAuth 2.0. Considere estas práticas recomendadas, além de qualquer orientação específica para seu tipo de aplicativo e plataforma de desenvolvimento. Consulte também as dicas para deixar seu app pronto para produção e as políticas do OAuth 2.0 do Google.
Processar credenciais de cliente com segurança
As credenciais do cliente OAuth identificam a identidade do seu app e precisam ser tratadas com cuidado. Armazene essas credenciais apenas em um armazenamento seguro, por exemplo, usando um gerenciador de segredos, como o Google Cloud Secret Manager. Não codifique as credenciais, confirme-as em um repositório de código ou publique-as publicamente.
Processar tokens de usuário com segurança
Os tokens do usuário incluem tokens de atualização e de acesso usados pelo seu aplicativo. Armazene tokens de forma segura em repouso e nunca os transmita em texto simples. Use um sistema de armazenamento seguro adequado para sua plataforma, como o Keystore no Android, os serviços de chaveiro no iOS e macOS ou o Credential Locker no Windows.
Revogue tokens assim que eles não forem mais necessários e exclua-os permanentemente dos seus sistemas.
Além disso, considere estas práticas recomendadas para sua plataforma:
- Para aplicativos no servidor que armazenam tokens para muitos usuários, criptografe-os em repouso e garanta que o repositório de dados não seja acessível publicamente pela Internet.
- Para apps nativos para computador, é altamente recomendável usar o protocolo de chave de prova para troca de código (PKCE, na sigla em inglês) para receber códigos de autorização que podem ser trocados por tokens de acesso.
Processar a revogação e a expiração do token de atualização
Se o app tiver solicitado um token de atualização para acesso off-line, você também precisará processar a invalidação ou expiração dele. Os tokens podem ser invalidados por diferentes motivos, por exemplo, eles podem ter expirado ou o acesso dos seus apps pode ter sido revogado pelo usuário ou por um processo automatizado. Nesse caso, considere cuidadosamente como seu aplicativo precisa responder, incluindo solicitar que o usuário faça login novamente ou limpar os dados. Para receber notificações sobre a revogação de tokens, faça a integração com o serviço de proteção entre contas.
Usar a autorização incremental
Use a autorização incremental para solicitar escopos OAuth adequados quando a funcionalidade for necessária para o aplicativo.
Não solicite acesso aos dados quando o usuário fizer a primeira autenticação, a menos que seja essencial para a funcionalidade principal do app. Em vez disso, solicite apenas os escopos específicos necessários para uma tarefa, seguindo o princípio de selecionar os escopos menores e mais limitados possíveis.
Sempre solicite escopos no contexto para ajudar os usuários a entender por que o app está solicitando acesso e como os dados serão usados.
Por exemplo, seu aplicativo pode seguir este modelo:
- O usuário faz a autenticação com seu app
- Nenhum escopo extra é solicitado. O app oferece funcionalidades básicas para que o usuário explore e use recursos que não exigem dados ou acessos adicionais.
- O usuário seleciona um recurso que exige acesso a dados adicionais
- O app faz uma solicitação de autorização para esse escopo específico do OAuth, que é necessário para esse recurso. Se esse recurso exigir vários escopos, siga as práticas recomendadas abaixo.
- Se o usuário negar a solicitação, o app desativa o recurso e oferece ao usuário mais contexto para solicitar o acesso novamente.
Processar o consentimento para vários escopos
Ao solicitar vários escopos de uma só vez, os usuários podem não conceder todos os escopos do OAuth que você pediu. O app precisa processar a negação de escopos desativando a funcionalidade relevante.
Se a funcionalidade básica do app exigir vários escopos, explique isso ao usuário antes de solicitar o consentimento.
Só é possível solicitar novamente ao usuário depois que ele indicar claramente a intenção de usar o recurso específico que exige o escopo. Seu app precisa fornecer ao usuário um contexto relevante e uma justificativa antes de solicitar escopos OAuth.
Minimize o número de escopos solicitados pelo app de uma só vez. Em vez disso, use a autorização incremental para solicitar escopos no contexto de recursos e funcionalidades.
Usar navegadores seguros
Na Web, as solicitações de autorização do OAuth 2.0 só podem ser feitas em navegadores da Web com todos os recursos. Em outras plataformas, selecione o tipo de cliente OAuth correto e integre o OAuth de acordo com a plataforma. Não redirecione a solicitação por ambientes de navegação incorporados, incluindo visualizações da Web em plataformas móveis, como WebView no Android ou WKWebView no iOS. Em vez disso, use bibliotecas OAuth nativas ou o Login do Google para sua plataforma.
Criação e configuração manuais de clientes OAuth
Para evitar abusos, os clientes OAuth não podem ser criados ou modificados de maneira programática. É necessário usar o Google Developers Console para reconhecer explicitamente os Termos de Serviço, configurar seu cliente OAuth e se preparar para a verificação do OAuth.
Para fluxos de trabalho automatizados, considere usar contas de serviço.
Remover clientes OAuth não usados
Audite regularmente seus clientes OAuth 2.0 e exclua proativamente aqueles que não são mais necessários para seu aplicativo ou que se tornaram obsoletos. Deixar clientes não usados configurados representa um possível risco de segurança, já que o cliente pode ser usado indevidamente se as credenciais do cliente forem comprometidas.
Para reduzir ainda mais os riscos de clientes não utilizados, os clientes OAuth 2.0 que estão inativos há seis meses são excluídos automaticamente.
A prática recomendada é não esperar pela exclusão automática, mas remover proativamente os clientes não utilizados. Essa prática minimiza a superfície de ataque do aplicativo e garante uma boa higiene de segurança.