Noticias

Autenticación de Entra ID a gran escala usando Landscape en Ubuntu

En septiembre, presentamos Authd, un nuevo demonio de autenticación para Ubuntu que permite la integración directa con proveedores de identidades basados ​​en la nube de servidores y escritorios de Ubuntu. Authd admite Microsoft Entra ID (anteriormente Azure Active Directory) en el lanzamiento, lo que lo convierte en una herramienta útil para la autenticación centralizada de la capa de infraestructura y aplicaciones.

En las grandes empresas, los administradores de sistemas a menudo necesitan implementar y administrar aplicaciones y sus configuraciones a escala. En este blog, exploraremos cómo usar Cloud-init y Landscape para automatizar los pasos de instalación y configuración en nubes públicas y privadas.

El contenido de este blog también se analiza en el siguiente vídeo, donde puede encontrar la ejecución detallada del caso de uso anterior:

Automatice la configuración de Authd a escala utilizando Landscape y Cloud-init

El proceso avanzado de instalación y configuración de Authd se describe a continuación:

  1. [prerequisite] Registrar aplicación en EntraID – Puede completar los primeros pasos requeridos siguiendo las instrucciones que se describen a continuación Documentos de Microsofty otorgar permisos de acceso a usuarios relevantes
  2. Agregue authd PPA e instale authd deb – Authd se proporciona a través de un PPA compatible, que debe agregarse antes de instalar el paquete.
  3. Instalar el complemento authd-msentraid – Authd deb expone la API a través de dbus, que luego es utilizada por los agentes de autenticación relevantes y entregada a través del paquete snap. Al momento de escribir este artículo, solo está disponible el complemento Entra ID; sin embargo, habrá más proveedores de identidad disponibles en los próximos meses; Se pueden usar varias instantáneas de proxy juntas, lo que permite que Ubuntu admita múltiples proveedores de identidad simultáneamente.
  4. Establezca el ID del editor y del cliente en el archivo de configuración de la instantánea del proxy – Este es el conjunto de configuración mínimo requerido para que la solución funcione correctamente. Sin embargo, el proxy permite otras opciones, como configurar sufijos de correo electrónico permitidos, estructura del directorio de inicio o tiempos de espera.
  5. Configure sshd para usar PAM y KbdInteractiveAuthentication – Este paso garantizará que el módulo PAM correspondiente se pueda utilizar al iniciar sesión
  6. Reiniciar servicio – Reinicie el servicio o el sistema operativo para que los cambios surtan efecto

Después de completar todos los pasos Certificación de equipos Aparecerán opciones al intentar iniciar sesión en su computadora a través de SSH. Después de ingresar una dirección de correo electrónico válida, verá un enlace microsoft.com/devicelogin página y código que autentica la identidad del dispositivo que realiza la solicitud.

Entra ID SSO en el servidor Ubuntu

El esquema de autenticación le permite heredar todas las opciones de autenticación, el estado del dispositivo y las políticas de cumplimiento definidas para los inquilinos de Entra ID. No se requiere configuración adicional en la nube, lo que significa que incluso los métodos de autenticación como Passkeys y Authenticator están disponibles de fábrica.

Después de visitar la página de inicio de sesión del dispositivo, obtendrá el proceso de autenticación configurado en el inquilino de Entra ID.

Pantalla de autenticación de transmisión del dispositivo

Cloud-init es un método multidistribuido estándar de la industria para la inicialización de instancias de nube multiplataforma. Es como un asistente de configuración para su instancia en la nube, que configura automáticamente aspectos como redes, almacenamiento, acceso SSH y cuentas de usuario en el primer inicio. Cloud-init se usa ampliamente en la nube pública, Canonical y otros productos de administración de sistemas de terceros.

A continuación encontrará algunos fragmentos de código que se pueden agregar a su script de inicio de nube existente para instalar y configurar Authd en un servidor Ubuntu.

  1. Actualice el paquete y configure las variables de ID de inquilino y de aplicación – Estos se utilizarán más adelante en el perfil.
# SET OUR VARIABLES
# =================

# Application ID
{% set CLIENT_ID = '3zs4x7w4m7xuk8xkgkycu934y9dvmqu785ca' %}

# Tenant ID
{% set ISSUER_ID = 'f4e2tqd8jg6h92qmxse1nmg535qjm84fbadr' %}

# =========================

# apt update and upgrade. 
package_update: true
package_upgrade: true
  1. Agregue Authd PPA e instale los complementos de proxy deb y Entra ID
# Add authd PPA
apt:
  sources:
      source1:
          source: 'ppa:ubuntu-enterprise-desktop/authd'

# deb and snap install
packages:
  - authd

snap:
 commands:
   - ['install', 'authd-msentraid']
  1. Servicio de configuración y reinicio de aplicaciones. – En el paso final, agregamos las configuraciones necesarias al archivo de configuración para dirigir al agente a nuestro inquilino de ID de Entraa. Es necesario reiniciar el servicio o el host para que los cambios surtan efecto.
write_files:
  - path: /etc/ssh/sshd_config.d/authd.conf
    content: |
      UsePAM yes
      KbdInteractiveAuthentication yes

runcmd:
  - sed -i 's||{{ CLIENT_ID }}|g; s||{{ ISSUER_ID }}|g' /var/snap/authd-msentraid/current/broker.conf
  - echo 'ssh_allowed_suffixes = @test.onmicrosoft.com' >> /var/snap/authd-msentraid/current/broker.conf
  - sed -i 's/^\(LOGIN_TIMEOUT\t\t\)[0-9]\+/\1360/' /etc/login.defs
  - mkdir -p /etc/authd/brokers.d/
  - cp /snap/authd-msentraid/current/conf/authd/msentraid.conf /etc/authd/brokers.d/
  - snap restart authd-msentraid
  - systemctl restart authd
  - systemctl restart ssh
  - reboot

Canonical Landscape es la herramienta de administración del sistema Canonical proporcionada como parte de Ubuntu Pro. Permite a los administradores administrar computadoras Ubuntu a escala empresarial a través de un portal web o API y proporciona los siguientes controles:

  • Actualizaciones y configuraciones de software;
  • auditoría y cumplimiento de seguridad y cumplimiento;
  • Lista de software, vulnerabilidades y máquinas.

La versión autohospedada de Landscape se puede ejecutar localmente o se puede acceder a ella mediante software como servicio a través de Canonical Cloud con cualquier licencia de Ubuntu Pro. Para las organizaciones que desean los beneficios de los servicios SaaS sin la necesidad de una implementación multiinquilino, Canonical ofrece un entorno alojado. Hospedar Landscapes requiere costos adicionales para tener en cuenta el tiempo dedicado a los ingenieros in situ de Canonical, los requisitos de resiliencia y alta disponibilidad y la implementación de Landscapes en la nube pública o local de su elección.

Landscape proporciona una forma de instalar y configurar Authd a escala a través de las capacidades de secuencias de comandos remotas de Landscape y garantiza que los paquetes apropiados permanezcan instalados a lo largo del tiempo a través de capacidades de administración de paquetes y repositorios.

Ejecución remota de scripts

La ejecución remota de scripts está disponible para la instalación y configuración inicial del paquete. Este script sigue en gran medida el ejemplo anterior de inicio de nube. Primero, configure las variables CLIENT_ID y ISSUER_ID, que se utilizarán más adelante en el script.

#!/bin/bash
CLIENT_ID='1b3d5f7h-i9k0-99xf-425v-56477x8q62xy'
ISSUER_ID='9k8e1c2x-u8g5-71oi-131j-66242u5h10fu'

A continuación, actualice la configuración del repositorio para recuperar el paquete Authd de ppa:ubuntu-enterprise-desktop/authd PPA. Actualice y actualice todos los paquetes del sistema y luego instale el paquete Authd.

add-apt-repository -y ppa:ubuntu-enterprise-desktop/authd
apt update && apt upgrade -y
apt-get install -y authd

Authd requiere el paquete snap authd-msentraid correspondiente:

snap install authd-msentraid

Si bien es posible actualizar los archivos de configuración de forma atómica e idempotente utilizando herramientas como augeas y crudini, estas dependencias adicionales no son necesarias. Para los propósitos de este blog, podemos usar sed para actualizar archivos y echo para modificar líneas en el archivo de configuración.

El primer perfil que debe actualizarse pertenece al paquete authd-msentraid. Utilice sed en su lugar para actualizar CLIENT_ID y ISSUER_ID en este archivo. Usando echo, los dominios donde se ejecuta el servicio de correo electrónico se agregan al final del perfil predeterminado como una lista separada por comas, sin espacios.

sed -i "s||$CLIENT_ID|g; s||$ISSUER_ID|g" /var/snap/authd-msentraid/current/broker.conf
echo 'ssh_allowed_suffixes = @uaadtest.onmicrosoft.com,@ubuntu.com' >> /var/snap/authd-msentraid/current/broker.conf

A continuación, debe aplicar la configuración SSH de Authd. El archivo de configuración aún no existe, por lo que lo crearemos usando el comando táctil y luego le agregaremos 2 líneas:

touch /etc/ssh/sshd_config.d/authd.conf
echo "UsePAM yes" >> /etc/ssh/sshd_config.d/authd.conf
echo "KbdInteractiveAuthentication yes" >> /etc/ssh/sshd_config.d/authd.conf

Es posible que sea necesario ampliar los tiempos de espera de inicio de sesión para satisfacer las necesidades de accesibilidad de todos los usuarios. El tiempo de espera predeterminado de 30 segundos puede ser demasiado corto; ampliarlo a 360 segundos puede resultar más cómodo. Esta actualización también se realiza usando sed:

sed -i 's/^\(LOGIN_TIMEOUT\t\t\)[0-9]\+/\1360/' /etc/login.defs

Finalmente, debe copiar el archivo de configuración msentraid.conf proporcionado por el paquete snap authd-msentraid a un directorio que aún no existe: /etc/authd/brokers.d/

mkdir -p /etc/authd/brokers.d/
cp /snap/authd-msentraid/current/conf/authd/msentraid.conf /etc/authd/brokers.d/

Es necesario reiniciar los servicios authd, authd-msentraid y ssh para aplicar estos cambios:

systemctl restart authd
snap restart authd-msentraid
systemctl restart ssh

Si alguna actualización del archivo deb requiere reiniciar la computadora, puede ser prudente reiniciarla. El guión completo es el siguiente:

#!/bin/bash
CLIENT_ID='1b3d5f7h-i9k0-99xf-425v-56477x8q62xy'
ISSUER_ID='9k8e1c2x-u8g5-71oi-131j-66242u5h10fu'
add-apt-repository -y ppa:ubuntu-enterprise-desktop/authd
apt update && apt upgrade -y
apt-get install -y authd
snap install authd-msentraid
sed -i "s||$CLIENT_ID|g; s||$ISSUER_ID|g" /var/snap/authd-msentraid/current/broker.conf
echo 'ssh_allowed_suffixes = @uaadtest.onmicrosoft.com,@ubuntu.com' >> /var/snap/authd-msentraid/current/broker.conf
touch /etc/ssh/sshd_config.d/authd.conf
echo "UsePAM yes" >> /etc/ssh/sshd_config.d/authd.conf
echo "KbdInteractiveAuthentication yes" >> /etc/ssh/sshd_config.d/authd.conf
sed -i 's/^\(LOGIN_TIMEOUT\t\t\)[0-9]\+/\1360/' /etc/login.defs
mkdir -p /etc/authd/brokers.d/
cp /snap/authd-msentraid/current/conf/authd/msentraid.conf /etc/authd/brokers.d/
# systemctl restart authd
# snap restart authd-msentraid
# systemctl restart ssh
reboot

Gestión de repositorios y paquetes.

Al momento de escribir este artículo, el perfil de duplicación del repositorio de aplicaciones está limitado a instalaciones de paisaje autohospedadas. Puede reflejar el PPA de Authd en Landscape o configurar máquinas administradas por Landscape para recuperar el paquete Authd directamente desde el PPA en lugar del mirror de Landscape.

Se puede considerar un perfil en Landscape como una colección de políticas, y estas políticas se aplican a la selección de máquinas en Landscape en función de una combinación de etiquetas y grupos de acceso.

La combinación de grupos de acceso y etiquetas para ejecutar scripts remotos en computadoras seleccionadas, además de la administración opcional de repositorios y paquetes, garantiza que su implementación de Authd sea exitosa a escala empresarial.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba