Login

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

how-auth0-uses-identity-industry-standards

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.
  • 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.

Padrões da indústria de identidade e a Auth0

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.

Autenticação com a Auth0

Existem seis etapas para implementar a autenticação com a Auth0:

  1. 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
  2. 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>
  3. 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
  4. Sua aplicação terá que enviar o code para o servidor Auth0 por meio de POST
    POST 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
  5. A resposta do servidor ficará assim:
    { 'access_token':'2YotnF..........1zCsicMWpAA', 'id_token': '......Json Web Token......', 'token_type': 'bearer' }
  6. 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”):

Configuração do SAML

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.

3D login box