Práticas recomendadas

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:

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:

  1. O usuário faz a autenticação com seu app
    1. 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.
  2. O usuário seleciona um recurso que exige acesso a dados adicionais
    1. 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.
    2. 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.