Esta página aborda algumas práticas recomendadas gerais para a 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 preparar seu app para produção e as políticas do OAuth 2.0 do Google.
Processar credenciais de clientes 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 secrets, como o Google Cloud Secret Manager. Não fixe as credenciais no código, confirme em um repositório de código nem as publique publicamente.
Processar tokens do usuário com segurança
Os tokens de usuário incluem tokens de atualização e de acesso usados pelo seu aplicativo. Armazene tokens com segurança em repouso e nunca os transmita em texto simples. Use um sistema de armazenamento seguro adequado para sua plataforma, como o Keystore no Android, o Keychain Services no iOS e o macOS ou o Credential Locker no Windows.
Revogue os tokens quando eles não forem mais necessários e os exclua permanentemente dos sistemas.
Além disso, considere também estas práticas recomendadas para sua plataforma:
- Em aplicativos no lado do servidor que armazenam tokens para muitos usuários, criptografe-os em repouso e garanta que o repositório de dados não esteja acessível publicamente na Internet.
- Em 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, será necessário processar a invalidação ou a 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 deve responder, incluindo solicitações ao usuário no próximo login ou a limpeza dos dados. Para receber notificações sobre a revogação do token, faça a integração com o serviço Proteção entre contas.
Usar a autorização incremental
Use a autorização incremental para solicitar escopos OAuth apropriados quando a funcionalidade for necessária pelo aplicativo.
Não solicite acesso aos dados quando o usuário fizer a autenticação pela primeira vez, a menos que isso seja essencial para o recurso principal do app. Em vez disso, solicite apenas os escopos específicos necessários para uma tarefa, seguindo o princípio de selecionar os menores e mais limitados escopos 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 adicional é 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 outros dados.
- Seu aplicativo faz uma solicitação de autorização para esse escopo do OAuth específico, que é necessário para o recurso. Se esse recurso exigir vários escopos, siga as práticas recomendadas abaixo.
- Se o usuário negar a solicitação, o app vai desativar o recurso e fornecer ao usuário mais contexto para solicitar acesso novamente.
Processar o consentimento para vários escopos
Ao solicitar vários escopos de uma só vez, talvez os usuários não concedam todos os escopos do OAuth solicitados. Seu app precisa lidar com a negação de escopos desativando a funcionalidade relevante.
Se a funcionalidade básica do seu app exigir vários escopos, explique isso ao usuário antes de solicitar o consentimento.
Só é possível fazer uma nova solicitação quando ele indicar claramente a intenção de usar o recurso específico que exige o escopo. Seu app precisa fornecer ao usuário contexto e uma justificativa relevantes antes de solicitar escopos OAuth.
Reduza o número de escopos que seu app solicita de uma só vez. Em vez disso, utilize 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ó devem ser feitas a partir de 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 para dispositivos móveis, como WebView no Android ou WKWebView no iOS. Em vez disso, use bibliotecas OAuth nativas ou o Login do Google na sua plataforma.
Criação e configuração manuais de clientes OAuth
Para evitar abusos, não é possível criar ou modificar clientes OAuth de maneira programática. Você precisa usar o Google Developers Console para confirmar explicitamente os Termos de Serviço, configurar o cliente OAuth e se preparar para a verificação do OAuth.
Para fluxos de trabalho automatizados, use as contas de serviço.