Esta página aborda algumas práticas recomendadas gerais para a integração com o OAuth 2.0. Considere essas 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. Só guarde essas credenciais em um armazenamento seguro. Por exemplo, usando um Secret Manager como o Google Cloud Secret Manager. Não fixe as credenciais no código, confirme-as em um repositório de código nem as publique publicamente.
Processar tokens de usuário com segurança
Os tokens de usuário incluem tokens de atualização e tokens 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 os tokens assim que eles não forem mais necessários e exclua-os permanentemente dos sistemas.
Além disso, considere estas práticas recomendadas para sua plataforma:
- Para aplicativos do lado do servidor que armazenam tokens para muitos usuários, criptografe-os em repouso e garanta que seu repositório de dados não esteja 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 solicitou um token de atualização para acesso off-line, você também precisa 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 o aplicativo deve responder, inclusive solicitando ao usuário no próximo login ou limpe os dados dele. 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 autorização incremental
Use a autorização incremental para solicitar os escopos apropriados do OAuth 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 seu 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 permitir que o usuário explore e use recursos que não exigem outros dados ou acesso.
- 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 o contexto e a justificativa relevantes antes de solicitar escopos do OAuth.
É preciso minimizar o número de escopos solicitados pelo app de uma vez. Em vez disso, use a autorização incremental para solicitar escopos no contexto de recursos e funcionalidade.
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 conforme apropriado para sua plataforma. Não redirecione a solicitação por ambientes de navegação incorporados, incluindo WebViews 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 nem modificados programaticamente. É 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.