Como a Auth0 usa os padrões da indústria de identidade
E por que você deve sempre usar os padrões da indústria nas aplicações
O que são os padrões da indústria de identidade?
Quando os computadores eram em sua maioria sistemas autônomos, os códigos de autenticação (verificando se as pessoas são quem dizem ser) e de autorização (permitindo acesso a informações específicas), juntamente com bancos de dados contendo informações do usuário, eram independentes no dispositivo. Mesmo nos primórdios da Web, os sites lidavam com a segurança de forma independente, usando código personalizado e proprietário.
Atualmente, você pode usar as mesmas informações de login em várias aplicações e sites, sejam logins sociais ou suas informações de login corporativas personalizadas para o trabalho. Isso se deve ao fato de os padrões da indústria de identidade serem amplamente empregados na Web.
Os padrões da indústria de identidade são especificações e protocolos abertos que fornecem orientações explícitas sobre como projetar sistemas de autenticação e autorização para gerenciar identidades, mover dados pessoais com segurança e decidir quem pode acessar aplicações e dados, para que várias partes possam obter interoperabilidade facilmente.
Os benefícios dos padrões
- Confiança e segurança
- O uso de padrões de autenticação aumenta a segurança e reduz o risco, pois o usuário final só precisa ser identificado e autenticado uma vez por um provedor de identidade e, em seguida, essas informações de identidade podem ser usadas em vários sistemas. Os padrões de autorização podem aumentar a conformidade com a privacidade, pois a quantidade de informações compartilhadas pode ser facilmente controlada.
- Desempenho e custos
- O uso de padrões significa que as aplicações não dependem de código de autenticação de back-end personalizado ou de um banco de dados de usuários hospedado internamente. Uma aplicação pode ser desenvolvida internamente e implantada externamente, sem se preocupar com a conexão ao servidor e ao código de back-end originais. O uso de padrões de identidade pode reduzir custos eliminando a necessidade de escalonar soluções únicas ou proprietárias, e métodos de autenticação e autorização mais fortes podem ser atualizados automaticamente sem a necessidade de atualizar quantidades significativas de código.
- Satisfação do cliente
- A experiência dos usuários finais é drasticamente aprimorada, pois novas contas não precisam ser registradas para cada nova aplicação, e os usuários sabem que os dados são armazenados com segurança com o provedor de identidade original. Eles também podem usar menos senhas e informações de login mais fortes em suas contas.
Os padrões da indústria de identidade por trás da Auth0
A seguir estão os padrões da indústria de identidade usados pela Auth0.
- OAuth 1 — No padrão original, os segredos compartilhados entre um servidor e o usuário final eram usados para calcular assinaturas destinadas a verificar a autenticidade das solicitações de API. No entanto, a implementação de assinaturas foi difícil, e a atualização para OAuth 2 remove a necessidade de assinaturas e, em vez disso, depende de SSL.
- OAuth 2—Um padrão de autorização que fornece acesso seguro aos recursos do usuário final. Ele especifica um processo que permite o acesso de terceiros aos recursos, mas sem que o usuário final precise compartilhar as credenciais. Isso é comumente usado para fazer login em aplicações usando contas do Google, Twitter e Facebook.
- Padrões de autenticação orientados ao consumidor
- Open ID Connect — uma camada de identidade que fica no topo do OAuth 2 e permite a fácil verificação da identidade do usuário, bem como a capacidade de obter informações básicas de perfil do provedor de identidade.
Para garantir que a implementação da Auth0 esteja em conformidade, obtivemos a certificação OpenID. - JSON Web Token — é um padrão aberto que define uma forma compacta e independente para transmitir informações com segurança entre as partes, como um objeto JSON. Essas informações podem ser verificadas e confiáveis porque são assinadas digitalmente. Eles podem ser usados para passar a identidade de usuários autenticados entre o provedor de identidade e o serviço que solicita a autenticação. Eles podem ser autenticados e criptografados.
- Open ID Connect — uma camada de identidade que fica no topo do OAuth 2 e permite a fácil verificação da identidade do usuário, bem como a capacidade de obter informações básicas de perfil do provedor de identidade.
- Padrões de autenticação corporativa
- Security Assertion Markup Language (SAML) — um formato de dados baseado em XML de padrão aberto que permite que as empresas comuniquem informações de autenticação e autorização do usuário para empresas parceiras e aplicações empresariais que seus funcionários possam usar. O SAML permite neutralidade de plataforma, custos reduzidos e transferência de risco da gestão de identidades.
- WS-Federation — Desenvolvido pela Microsoft e amplamente utilizado em suas aplicações, esse padrão define a maneira como os tokens de segurança podem ser transportados entre diferentes entidades para trocar informações de identidade e autorização.
Todos esses padrões estão disponíveis na Auth0, e a implementação requer pouca ou nenhuma recodificação quando você passa por diferentes protocolos ou provedores de identidade.
Padronize em toda a sua organização
A maneira mais fácil de começar com os padrões é implementar o protocolo de login Open ID Connect/OAuth 2, usando JWT como token de acesso. Isso permitirá que seus usuários ou funcionários façam login facilmente com qualquer provedor de identidade social.
Existem seis etapas para implementar a autenticação com a Auth0:
- Configuração da URL de retorno de chamada na Auth0. Para fazer isso, adicione as informações na página "Configurações da aplicação" (“Application Settings”) no painel:
http://www.yoursite.com/callback
- Integração do Auth0Lock
<script src='https://cdn2.auth0.com/js/lock-8.2.min.js'></script> <script type='text/javascript'> var lock = new Auth0Lock('4CvZhjoDtdwciSPYLaby6EdJA6eBBRsi', 'username.auth0.com'); function signin() { lock.show({ callbackURL: 'http://www.yoursite.com/callback', responseType: 'code', authParams: { scope: 'openid profile' } }); } </script> <button onclick='window.signin();'>Login</button>
- Após a autenticação do usuário, a aplicação será chamada para esse endpoint com um
GET
GET http://www.yoursite.com/callback?code=AUTHORIZATION_CODE&state=VALUE_THAT_SURVIVES_REDIRECTS
- Sua aplicação terá que enviar o
code
para o servidor Auth0 por meio de POSTPOST https://username.auth0.com/oauth/token Content-type: application/x-www-form-urlencoded client_id=4CvZhjoDtdwciSPYLaby6EdJA6eBBRsi &redirect_uri=http://www.yoursite.com/callback &client_secret=4DxvHUwrabq6EQNe061PoFDeC5Ic5DamI2Eropuz-MLvi730WJijwZT6Zd6EM_nK &code=AUTHORIZATION_CODE &grant_type=authorization_code
- A resposta do servidor ficará assim:
{ 'access_token':'2YotnF..........1zCsicMWpAA', 'id_token': '......Json Web Token......', 'token_type': 'bearer' }
- Por fim, você pode obter o perfil do usuário chamando
GET https://username.auth0.com/userinfo/?access_token=2YotnF..........1zCsicMWpAA
Isso autenticará seus usuários com o provedor de identidade Open ID Connect e transmitirá de volta o perfil de usuário normalizado para sua aplicação.
Implementação de SAML para SSO para aumentar seu mercado de SaaS
A implementação do SSO corporativo é uma das maneiras mais fáceis de levar seu SaaS para o upmarket e aumentar sua receita. Permitir que os funcionários façam login na aplicação com os detalhes da empresa provavelmente é uma necessidade para um cliente empresarial em potencial escolher o SaaS.
Implementar a autenticação SAML na Auth0 é tão fácil quanto adicionar algumas linhas de código e as informações do provedor de identidade SAML ao painel. As informações de que você precisa são:
- URL de login SSO
- URL de logout SSO
- Certificado de assinatura X509
Essas informações podem ser adicionadas na página de configuração “SAML” em “Conexões empresariais” (“Enterprise Connections”):
Para uso com o Lock, você pode adicionar algumas linhas de código para redirecionar as funções de Login e Logout para seu provedor de identidade SAML usando uma implementação Express e incluindopassport.js:
var express = require('express');
var router = express.Router();
var passport = require('passport');
/* GET users listing. */
router.get('/', function(req, res, next) {
res.send(req.user);
});
router.get('/authenticate',
passport.authenticate('auth0', {
failureRedirect: '/error'
}),
function(req, res) {
if (!req.user) {
throw new Error('user null');
}
res.redirect('/');
});
router.get('/logout', function(req, res) {
req.logout();
res.redirect('/');
})
module.exports = router;
Você pode aprender mais sobre essa implementação assistindo ao nosso vídeo sobre como mudar para o SAML.
Inscreva-se gratuitamente
Comece a construir e proteja suas aplicações com a plataforma de identidade Auth0 hoje mesmo.