Skip to main content
Reserve 10 minutos para responder à nossa Pesquisa da comunidade. Aberta agora até 19 de julho. Clique aqui para participar.

Explorar segurança e autenticação

Objetivos de aprendizagem

Após concluir esta unidade, você estará apto a:

  • Identificar os métodos de segurança e autenticação usados nos aplicativos do Salesforce.
  • Descrever o uso de aplicativos de cliente externos para integrar aplicativos móveis ao servidor do Salesforce.
  • Explicar a terminologia básica de OAuth.
  • Descrever o fluxo de eventos na autenticação OAuth e na segurança por PIN.
Nota

Nota

Deseja aprender em português (Brasil)? Comece o desafio em um Trailhead Playground de português (Brasil) e use as traduções fornecidas entre parênteses para navegar. Copie e cole somente os valores em inglês porque as validações dos desafios dependem de dados em inglês. Se você não passar no desafio em sua organização de português (Brasil), recomendamos que (1) mude o local para os Estados Unidos, (2) mude o idioma para inglês, seguindo as instruções aqui, e (3) clique novamente no botão “Validar o desafio”.

Consulte o emblema Trailhead no seu idioma para saber mais sobre como aproveitar a experiência de Trailhead em outros idiomas.

Proteger e autenticar seu aplicativo móvel com o OAuth 2.0

A autenticação segura é essencial para aplicativos empresariais executados em dispositivos móveis. O OAuth 2.0, protocolo padrão da indústria, permite uma autorização segura para acesso a dados do cliente, sem ter que divulgar nome de usuário e a senha. Muitas vezes, ele é descrito como a chave de serviço de acesso ao software. Uma chave de serviço restringe o acesso a determinados recursos do seu carro. Por exemplo, um funcionário do estacionamento não pode abrir o porta-malas ou o porta-luvas usando uma chave de serviço.

Os desenvolvedores de aplicativos móveis podem integrar, de forma rápida e fácil, uma implantação Salesforce do OAuth 2.0. A implantação usa um modo de exibição HTML para coletar o nome de usuário e a senha, que são enviados ao servidor. O servidor retorna um token de sessão e um token de atualização persistente que são armazenados no dispositivo para interações futuras.

Um aplicativo de cliente externo da Salesforce é o principal meio de conexão de um aplicativo móvel ao Salesforce. Um aplicativo de cliente externo dá ao desenvolvedor e ao administrador controle sobre como o aplicativo se conecta e quem tem acesso. Por exemplo, um aplicativo de cliente externo pode restringir o acesso a um conjunto de clientes, definir ou liberar um intervalo de endereços IP e muito mais.

Conhecer a terminologia do OAuth

Se você se sentir perdido, essa lista poderá ajudá-lo a encontrar seu caminho. Esses rótulos, considerados em conjunto, levam diretamente ao sucesso do OAuth.

Note

Nota
O termo “cliente” nessa lista sempre se refere a um aplicativo do Mobile SDK.

Chave de cliente

Um valor usado pelo cliente, neste caso, o aplicativo do Mobile SDK, para se identificar perante o Salesforce. Chamado de client_id.

Token de acesso

Valor usado pelo cliente para obter acesso a recursos protegidos em nome do usuário, em vez de usar as credenciais do usuário do Salesforce. O token de acesso é uma ID de sessão e pode ser usado diretamente.

Token de atualização

Um token usado pelo consumidor para obter um novo token de acesso, sem ter que fazer o usuário final aprovar o acesso novamente.

Código de autorização

Um token de vida curta que representa o acesso concedido pelo usuário final. O código de autorização é usado para obter um token de acesso e um token de atualização.

Aplicativo de cliente externo

Um aplicativo externo ao Salesforce que usa o protocolo OAuth para verificar o usuário do Salesforce e o aplicativo externo.

Fluxo de autenticação do OAuth2

O fluxo de eventos durante a autorização do OAuth depende do status da autenticação no dispositivo.

Fluxo de autorização na primeira vez

  1. O cliente abre um aplicativo do Mobile SDK.
  2. Um prompt de autenticação é exibido.
  3. O cliente insere um nome de usuário e senha.
  4. O aplicativo envia as credenciais do cliente para o Salesforce e recebe uma ID de sessão como confirmação de autenticação bem-sucedida.
  5. O cliente aprova o pedido do aplicativo para conceder acesso ao aplicativo.
  6. O aplicativo é iniciado.

Autorização em andamento

  1. O cliente abre um aplicativo móvel.
  2. Se a ID da sessão estiver ativa, o aplicativo será iniciado imediatamente. Se a ID da sessão tiver expirado, o aplicativo usará o token de atualização da autorização inicial para obter uma ID de sessão atualizada.
  3. O aplicativo é iniciado.

Segurança por bloqueio de aplicativos

Como recurso opcional de segurança, é possível configurar os aplicativos de cliente externos para que sejam bloqueados após permanecerem em segundo plano por um período de tempo especificado. Para desbloquear o aplicativo, o usuário é solicitado a responder a um desafio biométrico ou criptográfico do sistema operacional, como um PIN ou senha.

Para usar a proteção por bloqueio de aplicativos, o desenvolvedor deve selecionar a caixa de seleção Screen Lock (Bloqueio de tela) quando cria o aplicativo de cliente externo. Desse modo, os administradores de aplicativos móveis têm a opção de personalizar a duração do tempo limite.

Fluxo do servidor Web do OAuth2

Para maior segurança, a Salesforce recomenda o uso do fluxo do servidor Web porque inclui Proof Key Code Exchange (PKCE). Para saber mais, consulte Fluxo do servidor Web do OAuth 2.0 para integração de aplicativos Web.

Fluxo de agente do usuário do OAuth2

No fluxo de agente do usuário, o aplicativo de cliente externo, que integra o aplicativo cliente à API do Salesforce, recebe o token de acesso como um redirecionamento HTTP. O aplicativo de cliente externo solicita ao servidor de autorização o redirecionamento do agente do usuário para um servidor Web ou para um recurso local acessível.

O servidor Web pode extrair o token de acesso da resposta e transmiti-lo ao aplicativo de cliente externo. Para segurança, a resposta do token é fornecida como fragmento de hashtag (#) na URL. Esse formato evita que o token seja transmitido ao servidor ou a outros servidores em cabeçalhos de referência.

Atenção

Como o token de acesso está codificado na URL de redirecionamento, ele pode ficar exposto ao usuário e a outros aplicativos no dispositivo.

Note

Nota
Os aplicativos de cliente externos para esses tipos de clientes podem proteger segredos para cada usuário. No entanto, o segredo do cliente pode ser acessado e explorado porque os executáveis do cliente residem no dispositivo do usuário. Por isso, o fluxo de agente do usuário não usa o segredo do cliente. A autorização se baseia na política de origem comum do agente do usuário. Além disso, o fluxo de agente do usuário não é compatível com publicações fora de banda.

Valores de parâmetro do escopo

O OAuth exige a configuração do escopo no servidor e no cliente. O acordo entre os dois lados define o contrato do escopo.

  • Server side (Lado do servidor): Define as autorizações de escopo em um aplicativo de cliente externo no servidor Salesforce. Estas configurações determinam quais níveis de acesso os aplicativos clientes, como os aplicativos Mobile SDK, podem solicitar. Configure, no mínimo, as definições de OAuth do seu aplicativo de cliente externo para que correspondam ao que está especificado em seu código. Na maioria dos aplicativos, refresh_token, web e api são suficientes. Para obter uma lista completa dos escopos, consulte Tokens e escopos do OAuth.
  • Client side (Lado do cliente): Especifica as solicitações de escopo em seu aplicativo Mobile SDK. As solicitações de escopo do cliente devem ser um subconjunto das autorizações de escopo do aplicativo de cliente externo. No Mobile SDK 13.2 e em versões posteriores, não fornecer resultados de escopos faz com que todos os escopos configurados no servidor sejam concedidos.

Aplicativos de cliente externos

Os aplicativos de cliente externos são estruturas que podem ser empacotadas para permitir que um aplicativo de terceiros se integre ao Salesforce por meio de APIs e protocolos de segurança. Além disso, incluem melhorias estruturais para manter funções de usuário separadas e permitir pacotes gerenciados de segunda geração. A Salesforce recomenda que você use aplicativos de cliente externos e migre os aplicativos conectados locais existentes para aplicativos de cliente externos locais.

Note

Nota
Alguns recursos só estão disponíveis por meio de aplicativos conectados, e os aplicativos conectados ainda são necessários para aplicativos Mobile SDK que são executados em várias organizações. Consulte Comparação de aplicativos conectados e Recursos dos aplicativos de clientes externos.

Criar um aplicativo de cliente externo

Você pode criar facilmente um aplicativo de cliente externo, mas precisa ter direitos de administrador. Em sua própria organização Developer Edition ou Trailhead Playground, você recebe essas permissões automaticamente.

  1. Em sua organização Trailhead Playground ou Developer Edition, acesse Setup (Configuração).
  2. Em Setup (Configuração), insira Apps (Aplicativos) na caixa Quick Find (Busca rápida) e selecione External Client Apps Manager (Gerenciador de aplicativos de cliente externos).
  3. Selecione New External Client App (Novo aplicativo de cliente externo).
  4. Em Basic Information (Informações básicas), preencha o formulário da seguinte maneira.
    • External Client App Name (Nome do aplicativo do cliente externo): Trailhead Intro
    • API Name (Nome da API): aceite o valor sugerido.
    • Email de contato: Insira seu endereço de email.
    • Distribution State (Estado de distribuição): Para desenvolver um aplicativo de cliente externo para sua organização local, selecione Local. Para desenvolver um aplicativo de cliente externo para empacotamento e distribuição, defina Distribution State (Estado de distribuição) para Packaged (Empacotado).
  1. Em API (Habilitar configurações do OAuth), marque Enable OAuth (Habilitar OAuth).
  2. Defina Callback URL (URL de retorno de chamada) como qualquer sequência de caracteres de URL, real ou fictícia, por exemplo: mysampleapp://auth/success. Se o preenchimento automático oferecer uma sugestão, não a aceite. Em vez disso, cole a URL de retorno de chamada.
  3. Em Available OAuth Scopes (Escopos do OAuth disponíveis), selecione:
    • Gerenciar dados de usuários por meio de APIs (api)
    • Gerenciar dados de usuários por meio de navegadores da Web (web)
    • Realizar solicitações a qualquer hora (refresh_token, offline_access)
  4. Clique na seta Add (Adicionar) para mover cada seleção para Selected OAuth Scopes (Escopos OAuth selecionados). Esse conjunto mínimo de escopos funciona bem com a maioria dos aplicativos do Mobile SDK.
  5. Em Security (Segurança):
    • Desabilite Require Secret for Web Server Flow (Exigir segredo para o fluxo do servidor da Web).
    • Desabilite Require Secret for Refresh Token Flow (Exigir segredo para atualizar o fluxo de tokens).
    • (Recomendável) Habilite Issue JSON Web Token (JWT)-based access tokens for named users (Emitir tokens de acesso baseados em JSON Web Token (JWT) para usuários nomeados).
  6. Clique em Create (Criar).

Agora que você sabe um pouco sobre a arquitetura e a segurança do Mobile SDK, é hora de praticar com ele. Você pode começar concluindo o desafio a seguir, que exige apenas uma organização Developer Edition ou Trailhead Playground. Em seguida, recomendamos que você conclua o emblema Configurar suas ferramentas de desenvolvedor do Mobile SDK.

Recursos

Compartilhe seu feedback do Trailhead usando a Ajuda do Salesforce.

Queremos saber sobre sua experiência com o Trailhead. Agora você pode acessar o novo formulário de feedback, a qualquer momento, no site Ajuda do Salesforce.

Saiba mais Continue compartilhando feedback