Pocket ID: Accede a tus servicios mediante OIDC con Passkey
Después de tanto tiempo, vuelvo para descubriros un servicio que me ha facilitado muchísimo el acceso a mis servicios. Ha supuesto un antes y un después sin duda alguna.
Olvídate de usuarios y contraseñas, de 2FA... ¿qué hay más seguro y rápido que poder acceder mediante Passkey?
Pocket ID es un sencillo proveedor de OIDC que permite a los usuarios autenticarse con su Passkey a sus servicios. Además también es compatible con LDAP.
Gracias a Pocket ID puedo acceder de forma automática y segura a muchos de mis servicios. Todo en un Flow automatizado. En cuestión de segundos y sin perder tiempo en introducir usuario/contraseña.
Además, si no quieres empezar usando Passkeys, también puedes iniciar sesión mediante la utilización de un código de un solo uso. Todo configurable desde el panel de administración de Pocket ID.
Si eres ya usuario de sericios como Authelia, Authentik o TinyAuth, puedes también integrar Pocket ID para iniciar sesión mediante Passkeys.
Instalar Pocket-ID
services:
pocket-id:
image: ghcr.io/pocket-id/pocket-id
restart: unless-stopped
ports:
- 1411:1411
volumes:
- "./pocketid/data:/app/data"
environment:
- APP_URL=https://id.midominio.com
- TRUST_PROXY=true
- MAXMIND_LICENSE_KEY=xxxxxxxxxxxxxx
- PUID=1000
- PGID=100
# Optional healthcheck
healthcheck:
test: "curl -f http://localhost:1411/healthz"
interval: 1m30s
timeout: 5s
retries: 2
start_period: 10s
Este Docker-Compose no podía ser más sencillo. Lo único que deberemos de modificar son las variables según las necesidades. En APP_URL
especificaremos la URL mediante la cual accederemos a Pocket ID, para ello necesitaremos la creación de un Proxy Inverso.
MAXMIND_LICENSE_KEY
es totalmente opcional.Configuración inicial
Antes de nada, para acceder a configurar la cuenta de Administrador, lo deberemos de hacer entrando en la siguiente URL: https://id.midominio.com/login/setup
. Una vez ya tenemos la cuenta c reada podremos iniciar sesión y continuar con el proceso.
Lo primero que tendremos que hacer es crear un usuario el cual nos va a permitir establecer la conexión mediante OIDC y nuestro servicio. Para ello nos vamos a Settings - Users.
Después tenemos que asignar este usuario a un Grupo de usuarios, para ello creamos uno y metemos nuestro usuario dentro. Esto lo haremos en Settings - User Groups.
Añadiendo nuestro Passkey
El siguiente paso es imprescindible y es el tener que añadir nuestro Passkey a Pocket ID. Puede ser un existente o uno nuevo. Para ellos nos vamos a Settings - My Account - Passkeys. Una vez añadido, ya tendremos todo listo para empezar a integrarlo con nuestro servicios.
Añadiendo nuestro primer servicio
Para añadir un servicio es tan sencillo como dirigirnos a Settings - OIDC Clients y asignarle un nombre y la URL Callback, que ya depende de cada servicio que queramos implementar.
Seguidamente, al añadirlo, ya nos devolverá el ID de Cliente, el Secret y el resto de URL's para especificar en nuestro servicio. En la web de Pocket ID tenemos numerosos ejemplos de integración.
Una vez lo pruebes, no hay marcha atrás. Ya me lo dirás en los comentarios. Ahora ya puedes incluso deshabilitar el login clásico en los servicios que lo permitan, y así tener el flow completamente automatizado y acceder directamente al servicio.
¡A disfrutarlo y feliz #DomingoDeSelfHosted!