Cómo Auth0 utiliza los estándares del sector de identidad
Y por qué debes utilizar siempre los estándares del sector en tus aplicaciones
¿Qué son los estándares del sector de identidad?
Cuando los equipos eran, en su mayoría, sistemas autónomos, los códigos de autenticación (comprobar que las personas son quienes dicen ser) y autorización (permitirles el acceso a información específica), junto con las bases de datos que contenían información sobre los usuarios, eran autónomos en el dispositivo. Incluso en los primeros días de la web, los sitios gestionaban la seguridad de forma independiente, utilizando código personalizado y propietario.
En la actualidad, puedes utilizar la misma información de inicio de sesión en varias aplicaciones y sitios, ya sean inicios de sesión con credenciales de redes sociales o tu información de inicio de sesión empresarial personalizada para el trabajo. Esto se debe a que los estándares de la industria de la identidad se emplean ampliamente en toda la web.
Las normas del sector de la identidad son especificaciones y protocolos abiertos que ofrecen orientaciones explícitas sobre cómo diseñar sistemas de autenticación y autorización para gestionar la identidad, trasladar datos personales de forma segura y decidir quién puede acceder a aplicaciones y datos, de modo que múltiples partes puedan lograr fácilmente la interoperabilidad.
Las ventajas de los estándares
- Confianza y seguridad
- El uso de estándares de autenticación aumenta la seguridad y reduce el riesgo, ya que el usuario final solo tiene que ser identificado y autenticado una vez por un proveedor de identidad, y luego esa información de identidad puede utilizarse en múltiples sistemas. Los estándares de autorización pueden aumentar el cumplimiento de la privacidad, ya que la cantidad de información compartida puede controlarse fácilmente.
- Rendimiento y costos
- Estándares significa que tus aplicaciones no dependen de un código de autenticación backend personalizado o de una base de datos de usuarios alojada internamente. Una aplicación puede desarrollarse internamente y desplegarse externamente sin preocuparse de su conexión con el código backend y el servidor originales. El uso de estándares de identidad puede reducir costos al eliminar la necesidad de escalar soluciones puntuales o propietarias, y los métodos de autenticación y autorización más potentes pueden actualizarse automáticamente sin tener que actualizar cantidades significativas de código.
- Satisfacción del cliente
- La experiencia del usuario final mejora drásticamente, ya que no tiene que registrar nuevas cuentas para cada nueva aplicación y sabe que sus datos están almacenados de forma segura con el proveedor de identidad original. También pueden utilizar menos contraseñas y datos de acceso más seguros en todas sus cuentas.
Los estándares del sector de identidad detrás de Auth0
Los siguientes son los estándares del sector de identidad utilizados por Auth0.
- OAuth 1: en el estándar original, se utilizaban secretos compartidos entre un servidor y el usuario final para calcular firmas que luego se utilizaban para verificar la autenticidad de las solicitudes de API. Sin embargo, implementar firmas era difícil y la actualización a OAuth 2 elimina la necesidad del uso de firmas y, en su lugar, se basa en SSL.
- OAuth 2: un estándar de autorización que proporciona acceso seguro a los recursos del usuario final. Especifica un proceso que permite el acceso de terceros a los recursos, pero sin que el usuario final tenga que compartir sus credenciales. Se utiliza habitualmente para iniciar sesión en aplicaciones mediante cuentas de Google, Twitter y Facebook.
- Normas de autenticación orientadas al consumidor
- Open ID Connect: una capa de identidad que se asienta sobre OAuth 2 y permite verificar fácilmente la identidad del usuario, así como obtener información básica del perfil del proveedor de identidad.
Para asegurarnos de que la implementación de Auth0 sea conforme, hemos obtenido la certificación OpenID. - Tokens web JSON: un estándar abierto que define una forma compacta y autocontenida de transmitir información de forma segura entre las partes como un objeto JSON. Esta información puede verificarse y ser fiable porque está firmada digitalmente. Pueden utilizarse para transmitir la identidad de usuarios autenticados entre el proveedor de identidades y el servicio que solicita la autenticación. Pueden autenticarse y cifrarse.
- Open ID Connect: una capa de identidad que se asienta sobre OAuth 2 y permite verificar fácilmente la identidad del usuario, así como obtener información básica del perfil del proveedor de identidad.
- Estándares de autenticación de la empresa
- Lenguaje de marcado de aserción de seguridad (SAML): un formato de datos estándar abierto basado en XML que permite a las empresas comunicar información sobre autenticación y autorización de usuarios a empresas asociadas y aplicaciones empresariales que puedan utilizar sus empleados. SAML permite la neutralidad de la plataforma, la reducción de costos y la transferencia de riesgos de la gestión de identidades.
- WS-Federation: desarrollado por Microsoft y utilizado ampliamente en sus aplicaciones, este estándar define la forma en que los tokens de seguridad pueden ser transportados entre diferentes entidades para intercambiar información de identidad y autorización.
Todos estos estándares están disponibles en Auth0, y su implementación requiere poca o ninguna recodificación cuando se cambia entre diferentes protocolos o proveedores de identidad.
Estandarización en toda tu organización
La forma más sencilla de empezar con los estándares es implementar el protocolo de inicio de sesión Open ID Connect/OAuth 2, utilizando JWT como token de acceso. Esto permitirá a tus usuarios o empleados iniciar sesión fácilmente con cualquier proveedor de identidad social.
Hay 6 pasos para implementar esto con Auth0:
- Configurar la URL de devolución de llamada en Auth0. Para ello, añade la información en la página “Configuración de la aplicación” del panel de control:
http://www.yoursite.com/callback
- Integrar 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>
- Después de que el usuario se autentique, tu aplicación será llamada a este punto de conexión con un
GET
GET http://www.yoursite.com/callback?code=AUTHORIZATION_CODE&state=VALUE_THAT_SURVIVES_REDIRECTS
- Tu aplicación tendrá que enviar el
código
al servidor Auth0 a través de un POSTPOST https://username.auth0.com/oauth/token Tipo de contenido: 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
- La respuesta del servidor tendrá el siguiente aspecto:
{ 'access_token':'2YotnF..........1zCsicMWpAA', 'id_token': '......Json Web Token......', 'token_type': 'bearer' }
- Por último, puedes obtener el perfil del usuario llamando a
GET https://username.auth0.com/userinfo/?access_token=2YotnF..........1zCsicMWpAA
Esto autenticará a tus usuarios con su proveedor de identidad de Open ID Connect, y devolverá su perfil de usuario normalizado para tu aplicación.
Implementa SAML para SSO para llevar tu SaaS al mercado superior
Implementar el SSO empresarial es una de las formas más sencillas de llevar tu SaaS al mercado superior y aumentar tus ingresos. Permitir que los clientes empresariales permitan a tus empleados iniciar sesión en tu aplicación con los datos de su empresa es probablemente una necesidad para que un cliente empresarial potencial elija tu SaaS.
Implementar la autenticación de SAML en Auth0 es tan fácil como añadir unas pocas líneas de código y añadir la información de tu proveedor de identidad de SAML en el panel de control. La información que necesitarás es la siguiente:
- URL de inicio de sesión de SSO
- URL de cierre de sesión de SSO
- Certificado de firma X509
Esta información puede añadirse en la página de configuración de “SAML” en “Conexiones de empresas”:
Para utilizarlo con Lock, puedes añadir unas líneas de código para redirigir las funciones de inicio y cierre de sesión a tu proveedor de identidad de SAML al utilizar una implementación Express e incluir passport.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;
Puedes obtener más información sobre esta implementación viendo nuestro video sobre el cambio a SAML.
Regístrese gratis
Empiece a construir hoy mismo y proteja sus aplicaciones con la plataforma de identidad Auth0.