Aprender a linguagem de identidade
Objetivos de aprendizagem
- Identificar os padrões da indústria usados no gerenciamento do acesso e da identidade.
- Saber a relação entre SAML e XML.
- Saber a diferença entre um provedor de identidade e um provedor de serviço.
Padrões e protocolos da identidade
Veja três protocolos que o Salesforce e outros fornecedores de identidade seguem para implementar soluções de identidade.
- SAML
- OAuth 2.0
- OpenID Connect
Protocolo SAML
Veja alguns exemplos de SAML em ação.
- Quando você está conectado ao Salesforce e clica no Iniciador de aplicativos para acessar diretamente sua caixa de entrada do Gmail, isso é SAML em ação.
- Quando os usuários que já estão conectados a outro aplicativo conseguem acessar a sua organização do Salesforce sem fazer login novamente, isso também é o SAML em ação.
Declaração SAML
É assim que o SAML funciona. Um usuário tenta acessar um serviço. O provedor de serviço envia uma solicitação para o provedor de identidade basicamente perguntando: “Ei, esse usuário pode acessar meu serviço?” O provedor de identidade garante que os usuários são quem eles afirmam ser verificando o banco de dados e, em seguida, retornando uma resposta, uma declaração, dizendo: “Sim, este usuário está autorizado. Veja algumas informações sobre ele”.
Um momento. Qual é a diferença entre um provedor de identidade e um provedor de serviço? Basicamente, o provedor de identidade é aquele que autentica o usuário. O provedor de serviços solicita a identidade autenticada. Falaremos mais sobre os provedores de identidade e de serviço posteriormente nessa unidade.
A declaração é a informação que está sendo enviada. Uma declaração pode carregar informações detalhadas sobre um usuário. Ela também pode conter atributos sobre o usuário, como nome e sobrenome, informações de contato e, talvez, até o cargo.
O SAML ocorre nos bastidores. Os usuários não veem nada. Eles apenas clicam em um ícone ou link e abrem outro aplicativo sem precisar fornecer informações adicionais ou fazer login novamente. Algumas vezes, o destino já sabe algumas coisas sobre eles (os atributos destes usuários) quando eles chegam lá.
SAML e XML
SAML é um protocolo baseado em XML e isso significa que os pacotes de informações que estão sendo trocados foram gravados em XML. O XML deveria ser (quase) humanamente legível para que você possa ter alguma ideia daquilo que está acontecendo. Isso é uma boa notícia se você estiver tentando descobrir se as coisas estão funcionando corretamente.
O diagrama a seguir ilustra uma parte de uma declaração SAML. Parece algo sem sentido? Olhe novamente e veja que não parece tão ruim assim. Ele contém informações sobre o nome de usuário, o número de telefone e o primeiro nome de um usuário.
Neste exemplo, a organização do Salesforce passa as informações do usuário para outro aplicativo. O aplicativo pode usar essas informações para dar autorização ao usuário e personalizar a experiência do usuário. Mas, o mais importante, o usuário não precisa efetuar login novamente para acessar o aplicativo.
Protocolo OAuth 2.0
Veja alguns exemplos.
- Um aplicativo móvel que retira contatos de uma organização do Salesforce usa OAuth.
- Uma organização do Salesforce que obtém contatos de outro serviço também usa OAuth.
O que se segue é um exemplo de um aplicativo que solicita ao usuário permissão para acessar informações usando OAuth 2.0.
Protocolo OpenID Connect
O desenvolvedor de aplicativos usou o protocolo OpenID Connect para ativar o login com redes sociais.
Por exemplo, quando o Google verifica a identidade de um usuário em nome de outro serviço, ele está autenticando o usuário. Dessa forma, o Google é um provedor de identidade.
O Salesforce cria suporte para vários provedores de identidade social importantes, incluindo o Google, o Facebook e o LinkedIn. Se um provedor não tiver suporte pronto para usar, ainda será possível usá-lo se ele implementar o protocolo OpenID Connect, como a Amazon e o PayPal fazem, por exemplo.
A vantagem do protocolo OpenID Connect para os usuários é que eles conseguem reduzir o número de contas, nomes de usuário e senhas separados. Por outro lado, os desenvolvedores podem autenticar seus usuários em sites e aplicativos sem ter de possuir e gerenciar arquivos de senhas. Este processo faz com que seja muito mais difícil para os hackers comprometerem contas de usuários.
Provedores de serviço e provedores de identidade
Os usuários efetuam login através de um provedor de identidade e, em seguida, são redirecionados para o Salesforce (o provedor de serviço). Em outro módulo, você configurará o SSO com o Salesforce como um provedor de serviço e um aplicativo de terceiros como o provedor de identidade externo.
O Salesforce como provedor de identidadeFluxo do SAML para SSO
- Um usuário tenta acessar o Salesforce.
- O Salesforce reconhece a solicitação SSO e gera uma solicitação SAML.
- O Salesforce redireciona a solicitação SAML para o navegador.
- O navegador redireciona a solicitação SAML para o provedor de identidade externo.
- O provedor de identidade verifica a identidade do usuário e empacota a declaração SAML que contém a autenticação do usuário.
- O provedor de identidade envia a declaração SAML para o navegador.
- O navegador redireciona a declaração para o Salesforce.
- O Salesforce verifica a declaração.
- O usuário já está conectado e pode acessar o Salesforce.
Cheat sheet da terminologia da identidade
Um termo | que é facilmente confundido com esse termo |
---|---|
Autenticação significa quem uma pessoa é. Atualmente, a palavra “autenticação” é frequentemente usada como abreviatura para “autorização e autenticação”. | Autorização significa o que uma pessoa pode fazer. |
Protocolo especifica o conjunto de regras que habilita os sistemas a trocarem informações. Geralmente, os termos “protocolo” e “padrão” são usados de forma intercambiável. | Padrão é uma especificação, um conjunto de práticas da indústria para os quais os fornecedores concordam em oferecer suporte. Muitas vezes, um padrão contém um protocolo para especificar a forma como as empresas implementam o padrão. |
Nome de usuário e senha são aquilo que o usuário fornece para efetuar login em um sistema. | Credenciais são basicamente a mesma coisa. |
Login único (Single sign-on, SSO) permite que uma pessoa faça login uma vez e acesse outros aplicativos e serviços sem ter de fazer login novamente. | Login com redes sociais permite que uma pessoa faça login em um aplicativo usando as credenciais estabelecidas com uma conta social, como o Google. Esse aplicativo aceita as credenciais do Google e o usuário não precisa criar outra conta nem outra senha. |
Provedor de identidade é um serviço confiável que permite aos usuários acessar outros sites e serviços sem ter de fazer login novamente. | Provedor de serviço é um site ou serviço que hospeda aplicativos e aceita a identidade de um provedor de identidade. |