Compartir a través de


Tutorial para configurar Azure Active Directory B2C con Strata

Importante

A partir del 1 de mayo de 2025, Azure AD B2C ya no estará disponible para ser adquirido por nuevos clientes. Obtenga más información en nuestras preguntas más frecuentes.

En este tutorial, aprenderá a integrar Azure Active Directory B2C (Azure AD B2C) con Strata Maverics Identity Orchestrator, que ayuda a proteger las aplicaciones locales. Se conecta a sistemas de identidad, migra usuarios y credenciales, sincroniza políticas y configuraciones, y abstrae la autenticación y la gestión de sesiones. Use Strata para realizar la transición de la versión heredada a Azure AD B2C, sin tener que volver a escribir las aplicaciones.

La solución tiene las siguientes ventajas:

  • Inicio de sesión único (SSO) del cliente en aplicaciones híbridas locales: Azure AD B2C admite el inicio de sesión único del cliente con Maverics Identity Orchestrator
    • Los usuarios inician sesión con cuentas hospedadas en Azure AD B2C o en un proveedor de identidades (IdP)
    • Maverics proporciona SSO a las aplicaciones históricamente aseguradas por antiguos sistemas de identidad como Symantec SiteMinder
  • Extienda el SSO estándar a las aplicaciones - Use Azure AD B2C para administrar el acceso de los usuarios y habilitar el SSO con los conectores de Maverics Identity Orchestrator, Security Assertion Markup Language (SAML) o OpenID Connect (OIDC).
  • Configuración sencilla : conecte conectores SAML u OIDC de Maverics Identity Orchestrator a Azure AD B2C

Prerrequisitos

Para empezar, necesitará lo siguiente:

  • Un inquilino de Azure AD B2C vinculado a su suscripción de Azure
  • Una instancia de Azure Key Vault para almacenar secretos usados por Maverics Identity Orchestrator. Conéctese a Azure AD B2C u otros proveedores de atributos, como un directorio o una base de datos del Protocolo ligero de acceso a directorios (LDAP).
  • Una instancia de Maverics Identity Orchestrator que se ejecuta en una máquina virtual (VM) de Azure o en un servidor local. Para obtener software y documentación, vaya a strata.io Póngase en contacto con Strata Identity.
  • Una aplicación local para realizar la transición a Azure AD B2C

Descripción del escenario

La integración de Maverics Identity Orchestrator incluye los siguientes componentes:

  • Azure AD B2C : el servidor de autorización que comprueba las credenciales de usuario
    • Los usuarios autenticados acceden a las aplicaciones locales mediante una cuenta local en el directorio de Azure AD B2C
  • Proveedor de identidades (IdP) empresarial o social externo: un proveedor de OIDC, Facebook, Google o GitHub
  • Strata Maverics Identity Orchestrator: el servicio de inicio de sesión de usuario que pasa la identidad a las aplicaciones a través de encabezados HTTP

En el diagrama de arquitectura siguiente se muestra la implementación.

Diagrama de la arquitectura de integración de Azure AD B2C, con Maverics Identity Orchestrator, para el acceso a aplicaciones híbridas.

  1. El usuario solicita acceso a la aplicación hospedada local. Maverics Identity Orchestrator redirige la solicitud a la aplicación.
  2. Orchestrator comprueba el estado de autenticación del usuario. Si no hay ningún token de sesión o el token no es válido, el usuario va a Azure AD B2C para la autenticación
  3. Azure AD B2C envía la solicitud de autenticación al IdP social configurado.
  4. El IdP desafía al usuario por la credencial. Es posible que se requiera la autenticación multifactor (MFA).
  5. El IdP envía la respuesta de autenticación a Azure AD B2C. El usuario puede crear una cuenta local en el directorio de Azure AD B2C.
  6. Azure AD B2C envía la solicitud de usuario al punto de conexión especificado durante el registro de la aplicación de Orchestrator en el inquilino de Azure AD B2C.
  7. Orchestrator evalúa las políticas de acceso y los valores de atributo de los encabezados HTTP reenviados a la aplicación. Orchestrator puede llamar a otros proveedores de atributos para recuperar información y establecer los valores de encabezado. Orchestrator envía la solicitud a la aplicación.
  8. El usuario está autenticado y tiene acceso a la aplicación.

Maverics Identity Orchestrator, un organizador de identidades

Para obtener software y documentación, vaya a strata.io Póngase en contacto con Strata Identity. Determine los requisitos previos de Orchestrator. Instalar y configurar.

Configuración del inquilino de Azure AD B2C

Durante las instrucciones siguientes, documente:

  • Nombre e identificador del inquilino
  • Id. de cliente
  • Secreto del cliente
  • Declaraciones configuradas
  • URI de redirección
  1. Registro de una aplicación en Azure Active Directory B2C para inquilino de Azure AD B2C.
  2. Conceda permisos de API de Microsoft MS Graph a sus aplicaciones. Permisos de uso: offline_access, openid.
  3. Agregue un URI de redireccionamiento que coincida con el oauthRedirectURL parámetro de la configuración del conector de Azure AD B2C de Orchestrator, por ejemplo, https://example.com/oidc-endpoint.
  4. Cree flujos de usuario y directivas personalizadas en Azure Active Directory B2C.
  5. Agregue un proveedor de identidades al inquilino de Azure Active Directory B2C. Inicie sesión en su cuenta con una cuenta local, una red social o una cuenta empresarial.
  6. Defina los atributos que se recopilarán durante el registro.
  7. Especifique los atributos que se devolverán a la aplicación con la instancia de Orchestrator.

Nota:

Orchestrator consume atributos de notificaciones devueltas por Azure AD B2C y puede recuperar atributos de sistemas de identidad conectados, como directorios y bases de datos LDAP. Esos atributos se encuentran en los encabezados HTTP y se envían a la aplicación local ascendente.

Configuración de Maverics Identity Orchestrator

Utilice las instrucciones de las siguientes secciones para configurar una instancia de Orchestrator.

Requisitos del servidor de Maverics Identity Orchestrator

Puede ejecutar su instancia de Orchestrator en cualquier servidor, ya sea local o en una infraestructura de nube pública por proveedor, como Azure, AWS o GCP.

  • Sistema operativo: RHEL 7.7 o superior
  • Disco: 10 GB (pequeño)
  • Memoria: 16 GB
  • Puertos: 22 (SSH/SCP), 443, 80
  • Acceso raíz: para tareas de instalación/administrativas
  • Maverics Identity Orchestrator: se ejecuta como usuario maverics en systemd
  • Salida de red: Desde el servidor que hospeda Maverics Identity Orchestrator que puede llegar al inquilino de Microsoft Entra

Instalación de Maverics Identity Orchestrator

  1. Obtenga el paquete RPM de Maverics más reciente.

  2. Coloque el paquete en el sistema en el que desea instalar Maverics. Si va a copiar en un host remoto, use SSH scp.

  3. Ejecute el siguiente comando. Utilice su nombre de archivo para reemplazar maverics.rpm.

    sudo rpm -Uvf maverics.rpm

    De forma predeterminada, Maverics está en el /usr/local/bin directorio.

  4. Maverics se ejecuta como un servicio bajo systemd.

  5. Para verificar que el servicio Maverics se está ejecutando, ejecute el siguiente comando:

    sudo service maverics status

  6. Aparece el siguiente mensaje (o similar).

Redirecting to /bin/systemctl status maverics.service
  maverics.service - Maverics
  Loaded: loaded (/etc/systemd/system/maverics.service; enabled; vendor preset: disabled)
  Active: active (running) since Thu 2020-08-13 16:48:01 UTC; 24h ago
  Main PID: 330772 (maverics)
  Tasks: 5 (limit: 11389)
  Memory: 14.0M
  CGroup: /system.slice/maverics.service
          └─330772 /usr/local/bin/maverics --config /etc/maverics/maverics.yaml

Nota:

Si Maverics no se inicia, ejecute el siguiente comando:

journalctl --unit=maverics.service --reverse

La entrada de registro más reciente aparece en la salida.

  1. El archivo predeterminado maverics.yaml se crea en el /etc/maverics directorio.
  2. Configura el Orchestrator para proteger la aplicación.
  3. Integre con Azure AD B2C y almacene.
  4. Recupere los secretos de Azure Key Vault.
  5. Defina la ubicación desde la que Orchestrator lee su configuración.

Configuración de suministro mediante variables de entorno

Configure las instancias de Orchestrator con variables de entorno.

MAVERICS_CONFIG

Esta variable de entorno informa a la instancia de Orchestrator de los archivos de configuración de YAML que se deben utilizar y de dónde encontrarlos durante el inicio o el reinicio. Establezca la variable de entorno en /etc/maverics/maverics.env.

Creación de la configuración TLS de Orchestrator

El campo tls del archivo maverics.yaml declara las configuraciones de seguridad de la capa de transporte que utiliza su instancia de Orchestrator. Los conectores utilizan objetos TLS y el servidor de Orchestrator.

La maverics clave está reservada para el servidor de Orchestrator. Utilice otras teclas para inyectar un objeto TLS en un conector.

tls:
  maverics:
    certFile: /etc/maverics/maverics.cert
    keyFile: /etc/maverics/maverics.key

Configuración del conector de Azure AD B2C

Los orquestadores usan conectores para integrarse con proveedores de autenticación y atributos. La puerta de enlace de aplicaciones de Orchestrators usa el conector de Azure AD B2C como proveedor de atributos y autenticación. Azure AD B2C usa el IdP social para la autenticación y luego proporciona atributos al Orchestrator, pasándolos en un conjunto de declaraciones establecidas en los encabezados HTTP.

La configuración del conector corresponde a la aplicación registrada en el inquilino de Azure AD B2C.

  1. Desde la configuración de la aplicación, copie el id. de cliente, el secreto y el URI de redirección a su inquilino.
  2. Introduzca un nombre de conector (por ejemplo, azureADB2C).
  3. Establezca el conector type en azure.
  4. Anote el nombre del conector. Usará este valor en otros parámetros de configuración.
  5. Establecer authType en oidc.
  6. Para el oauthClientID parámetro, establezca el ID de cliente que copió.
  7. Para el oauthClientSecret parámetro, establezca el secreto de cliente que copió.
  8. Para el oauthRedirectURL parámetro, establezca el URI de redireccionamiento que copió.
  9. El conector OIDC de Azure AD B2C usa el punto de conexión OIDC para detectar metadatos, incluidas las direcciones URL y las claves de firma. Para el punto de conexión del inquilino, use oidcWellKnownURL.
connectors:
  name: azureADB2C
  type: azure
  oidcWellKnownURL: https://<tenant name>.b2clogin.com/<tenant name>.onmicrosoft.com/B2C_1_login/v2.0/.well-known/openid-configuration
  oauthRedirectURL: https://example.com/oidc-endpoint
  oauthClientID: <azureADB2CClientID>
  oauthClientSecret: <azureADB2CClientSecret>
  authType: oidc

Defina Azure AD B2C como proveedor de autenticación

Un proveedor de autenticación determina la autenticación para los usuarios que no presentan una sesión válida durante una solicitud de recursos de la aplicación. La configuración de tenant de Azure AD B2C determina cómo se solicita a los usuarios que proporcionen sus credenciales, mientras aplica otras políticas de autenticación. Un ejemplo es requerir un segundo factor para completar la autenticación y decidir qué se devuelve a la puerta de enlace de aplicaciones de Orchestrator, después de la autenticación.

El valor de authProvider debe coincidir con el valor de su Conector name.

authProvider: azureADB2C

Proteja las aplicaciones locales con una puerta de enlace de aplicaciones de Orchestrator

La configuración de Orchestrator App Gateway declara cómo Azure AD B2C protege la aplicación y cómo los usuarios acceden a la aplicación.

  1. Escriba un nombre de puerta de enlace de aplicación.
  2. Establezca location. En el ejemplo se usa la raíz / de la aplicación.
  3. Defina la aplicación protegida en upstream. Utilice la convención host:port: https://example.com:8080.
  4. Establezca los valores para las páginas de error y no autorizadas.
  5. Defina los nombres de encabezado HTTP y los valores de atributo para que la aplicación establezca la autenticación y el control. Los nombres de los encabezados suelen corresponder a la configuración de la aplicación. El conector convierte los valores de atributo en espacios de nombres. En el ejemplo, los valores devueltos por Azure AD B2C tienen el prefijo del nombre del conector azureADB2C. El sufijo es el nombre del atributo con el valor requerido, por ejemplo given_name.
  6. Establezca las políticas. Se definen tres acciones: allowUnauthenticated, allowAnyAuthenticated, y allowIfAny. Cada acción está asociada a un resource. La directiva se evalúa para ese resource.

Nota:

headers y policies utilizan extensiones de servicio de JavaScript o Golang para implementar lógica personalizada.

appgateways:
  - name: Sonar
    location: /
    upstream: https://example.com:8080
    errorPage: https://example.com:8080/sonar/error
    unauthorizedPage: https://example.com:8080/sonar/accessdenied

    headers:
      SM_USER: azureADB2C.sub
      firstname: azureADB2C.given_name
      lastname: azureADB2C.family_name

    policies:
      - resource: ~ \.(jpg|png|ico|svg)
        allowUnauthenticated: true
      - resource: /
        allowAnyAuthenticated: true
      - resource: /sonar/daily_deals
        allowIfAny:
          azureADB2C.customAttribute: Rewards Member

Azure Key Vault como proveedor de secretos

Proteja los secretos que Orchestrator usa para conectarse a Azure AD B2C y otros sistemas de identidad. Maverics carga los secretos en texto sin formato fuera de maverics.yaml; sin embargo, en este tutorial, usa Azure Key Vault como proveedor de secretos.

Siga las instrucciones de Inicio rápido: Establecer y recuperar un secreto de Azure Key Vault mediante Azure Portal. Agregue los secretos al almacén y tome una nota del SECRET NAME para cada secreto. Por ejemplo: AzureADB2CClientSecret.

Para declarar un valor como secreto en un maverics.yaml archivo de configuración, envuelva el secreto con corchetes angulares:

connectors:
  - name: AzureADB2C
    type: azure
    oauthClientID: <AzureADB2CClientID>
    oauthClientSecret: <AzureADB2CClientSecret>

El valor de los corchetes angulares debe corresponder al valor de SECRET NAME asignado a un secreto en la instancia de Azure Key Vault.

Para cargar secretos de Azure Key Vault, establezca la variable MAVERICS_SECRET_PROVIDER de entorno en el archivo /etc/maverics/maverics.env, con las credenciales que se encuentran en el archivo azure-credentials.json. Utilice el siguiente patrón:

MAVERICS_SECRET_PROVIDER='azurekeyvault://<KEYVAULT NAME>.vault.azure.net?clientID=<APPID>&clientSecret=<PASSWORD>&tenantID=<TENANT>'

Completar la configuración

En la siguiente información se muestra cómo aparece la configuración de Orchestrator.

version: 0.4.2
listenAddress: ":443"
tls:
  maverics:
    certFile: certs/maverics.crt
    keyFile: certs/maverics.key

authProvider: azureADB2C

connectors:
  - name: azureADB2C
    type: azure
    oidcWellKnownURL: https://<tenant name>.b2clogin.com/<tenant name>.onmicrosoft.com/B2C_1_login/v2.0/.well-known/openid-configuration
    oauthRedirectURL: https://example.com/oidc-endpoint
    oauthClientID: <azureADB2CClientID>
    oauthClientSecret: <azureADB2CClientSecret>
    authType: oidc

appgateways:
  - name: Sonar
    location: /
    upstream: http://example.com:8080
    errorPage: http://example.com:8080/sonar/accessdenied
    unauthorizedPage: http://example.com:8080/sonar/accessdenied

    headers:
      SM_USER: azureADB2C.sub
      firstname: azureADB2C.given_name
      lastname: azureADB2C.family_name

    policies:
      - resource: ~ \.(jpg|png|ico|svg)
        allowUnauthenticated: true
      - resource: /
        allowAnyAuthenticated: true
      - resource: /sonar/daily_deals
        allowIfAny:
          azureADB2C.customAttribute: Rewards Member

Prueba del flujo

  1. Vaya a la dirección URL de la aplicación local, https://example.com/sonar/dashboard.
  2. Orchestrator redirige a la página de flujo del usuario.
  3. Seleccione el IdP en la lista.
  4. Introduzca las credenciales, incluido un token MFA, si el IdP lo requiere.
  5. Se le redirigirá a Azure AD B2C, que reenvía la solicitud de la aplicación al URI de redireccionamiento de Orchestrator.
  6. Orchestrator evalúa las políticas y calcula los encabezados.
  7. Aparece la aplicación solicitada.

Pasos siguientes