Conectar Microsoft Entra ID con SAML 2.0

Conecta FoxIDs como proveedor de identidad externo para Microsoft Entra ID con SAML 2.0.

Al configurar un método de autenticación OpenID Connect y Microsoft Entra ID como una aplicación SAML 2.0, FoxIDs se convierte en un puente entre OpenID Connect y SAML 2.0 y convierte automáticamente las reclamaciones JWT (OAuth 2.0) en reclamaciones SAML 2.0.

Configurar Microsoft Entra ID

Esta guía describe cómo configurar FoxIDs como proveedor de identidad externo para Microsoft Entra ID. Los usuarios se conectan a usuarios de Microsoft Entra ID con su Immutable ID.

1 - Comienza configurando un certificado en FoxIDs Control Client

Debes subir el certificado de firma SAML 2.0 usado en FoxIDs a Microsoft Entra ID. Por lo tanto, es necesario usar un certificado de larga duración en FoxIDs, por ejemplo válido durante 3 años.

  1. Selecciona la pestaña Certificates
  2. Haz clic en Change Container type Change certificate container type in FoxIDs
  3. Busca Self-signed or your certificate y haz clic en Change to this container type
  4. El certificado autofirmado es válido por 3 años, y opcionalmente puedes subir tu propio certificado Change certificate in FoxIDs

2 - Luego crea una aplicación SAML 2.0 en FoxIDs Control Client

  1. Selecciona la pestaña Applications
  2. Haz clic en New application
  3. Haz clic en Web application (SAML 2.0)
  4. Añade el Name, por ejemplo Microsoft Entra ID
  5. Establece el Application issuer en urn:federation:MicrosoftOnline
  6. Establece la Assertion consumer service (ACS) URL en https://login.microsoftonline.com/login.srf Add issuer and ACS in FoxIDs
  7. Haz clic en Create
  8. Haz clic en Change application para abrir la aplicación en modo edición
  9. Haz clic en Show advanced
  10. Establece Authn request binding en Post
  11. Establece el NameID format en urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
  12. Establece Optional logged out URL y Optional single logout URL en https://login.microsoftonline.com/login.srf Set binding, NameID format, and logout URLs in FoxIDs
  13. Establece Authn response sign type en Sign assertion Sign the assertion
  14. Ve a la parte superior de la aplicación, encuentra la sección Application information y haz clic en Show more
    • Copia el IdP Issuer
    • Copia la Single Sign-On URL
    • Copia la Single Logout URL
    • Copia el IdP Signing Certificate en formato Base64
  15. Selecciona la pestaña Claims Transform
  16. Haz clic en Add claim transform y en Map para añadir una reclamación NameID con el Immutable ID del usuario que coincida con el Immutable ID del usuario de Microsoft Entra ID.
  17. Establece New claim en http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier - que es el URI de la reclamación NameID
  18. Establece Select claim en http://schemas.foxids.com/ws/identity/claims/immutableid
  19. Haz clic en Update

Necesitas establecer el Immutable ID del usuario como una reclamación en FoxIDs.
Para establecer el Immutable ID en un usuario interno, selecciona la pestaña Users y luego la pestaña Internal Users, busca al usuario y añade una reclamación con el tipo immutable_id y el valor del Immutable ID en Microsoft Entra ID - debe estar codificado en base64.
El tipo de reclamación immutable_id se asigna al URI de reclamación SAML 2.0 http://schemas.foxids.com/ws/identity/claims/immutableid en FoxIDs.

3 - Luego configura la federación de dominio en Microsoft Entra ID con PowerShell

No es posible configurar un proveedor de identidad SAML 2.0 externo en el portal de Microsoft Entra ID. Debes usar PowerShell.

  1. Abre PowerShell como administrador
  2. Instala el módulo de PowerShell Microsoft Graph si aún no está instalado: Install-Module -Name Microsoft.Graph y selecciona A
    • Opcionalmente, instala para el usuario actual: Install-Module Microsoft.Graph -Scope CurrentUser -Force
    • O actualiza el módulo: Update-Module -Name Microsoft.Graph y selecciona A
  3. Conéctate a Microsoft Graph:
    Connect-MgGraph -Scopes "Domain.ReadWrite.All,Directory.AccessAsUser.All"
    
  4. Configura las variables:
    $domainName = "your-domain.com" # The domain name to configure federation for
    $idpIssuer = "copied IdP Issuer from FoxIDs"
    $ssoUrl = "copied Single Sign-On URL from FoxIDs"
    $sloUrl = "copied Single Logout URL from FoxIDs"
    $signingCertBase64 = @"
    -----BEGIN CERTIFICATE-----
    copied IdP Signing Certificate from FoxIDs
    -----END CERTIFICATE-----
    "@
    
  5. Configura la federación del dominio:
    New-MgDomainFederationConfiguration -DomainId $domainName `
      -IssuerUri $idpIssuer `
      -PassiveSignInUri $ssoUrl `
      -SignOutUri $sloUrl `
      -SigningCertificate $signingCertBase64 `
      -PreferredAuthenticationProtocol "saml" `
      -FederatedIdpMfaBehavior "acceptIfMfaDoneByFederatedIdp"
    
    FederatedIdpMfaBehavior puede configurarse como:
    • acceptIfMfaDoneByFederatedIdp - Entra acepta MFA de FoxIDs; si FoxIDs no hizo MFA, Entra la realizará.
    • enforceMfaByFederatedIdp - Si una política requiere MFA, Entra enviará al usuario de vuelta a FoxIDs para completar MFA.
    • rejectMfaByFederatedIdp - Entra siempre realiza MFA por su cuenta; la MFA de FoxIDs se ignora.
  6. Valida la configuración:
    Get-MgDomainFederationConfiguration -DomainId $domainName
    # or
    Get-MgDomain -DomainId $domainName | fl Id, AuthenticationType
    

4a - Luego configura el Immutable ID del usuario en Microsoft Entra ID con PowerShell

  1. Abre PowerShell como administrador
  2. Instala el módulo de PowerShell Microsoft Graph si aún no está instalado: Install-Module -Name Microsoft.Graph y selecciona A
    • Opcionalmente, instala para el usuario actual: Install-Module Microsoft.Graph -Scope CurrentUser -Force
    • O actualiza el módulo: Update-Module -Name Microsoft.Graph y selecciona A
  3. Conéctate a Microsoft Graph: Connect-MgGraph -Scopes "Domain.ReadWrite.All"
  4. Configura las variables:
    $userId = "user-id@my-domain.com" # The user's User Principal Name (UPN) or the Object ID
    $immutableId = "immutable-id" # The user's Immutable ID - base64 encoded.
    
  5. Configura el Immutable ID del usuario:
    Set-MgUser -UserId $userId -OnPremisesImmutableId $immutableId
    
  6. Valida la configuración:
    Get-MgUser -UserId $userId | fl Id, OnPremisesImmutableId
    

Si el usuario ya tiene un Immutable ID establecido, debes mover al usuario fuera del dominio federado, establecer el Immutable ID y luego volver a moverlo al dominio federado.

  1. Mueve al usuario a un dominio no federado:
    $userId = "user-id@my-domain.com"
    $userIdTemp = "user-id@yourtenant.onmicrosoft.com"
    Update-MgUser -UserId $userId -UserPrincipalName $userIdTemp
    
  2. Establece el nuevo Immutable ID del usuario:
    $immutableId = "immutable-id" # The user's Immutable ID - base64 encoded.
    Set-MgUser -UserId $userIdTemp -OnPremisesImmutableId $immutableId
    
  3. Vuelve a mover al usuario al dominio federado:
    Update-MgUser -UserId $userIdTemp -UserPrincipalName $userId
    

4b - O alternativamente configura el Immutable ID del usuario en Microsoft Entra ID con Graph API

  1. Obtén un token de acceso para Microsoft Graph API con los scopes requeridos.
  2. Realiza una solicitud PATCH al endpoint /users/{id | userPrincipalName} con el siguiente cuerpo JSON:
    {
      "onPremisesImmutableId": "immutable-id"
    }
    
    Reemplaza immutable-id con el valor de Immutable ID deseado que coincida con la reclamación NameID enviada desde FoxIDs.
  3. Valida la configuración realizando una solicitud GET al endpoint /users/{id | userPrincipalName} y comprobando la propiedad onPremisesImmutableId en la respuesta.

Si el usuario ya tiene un Immutable ID establecido, debes mover al usuario fuera del dominio federado, establecer el Immutable ID y luego volver a moverlo al dominio federado.

  1. Realiza una solicitud PATCH al endpoint /users/{id | userPrincipalName} para cambiar el userPrincipalName a un dominio no federado.
  2. Realiza una solicitud PATCH para establecer el nuevo Immutable ID.
  3. Realiza una solicitud PATCH para cambiar el userPrincipalName de nuevo al dominio federado.
  4. Valida la configuración realizando una solicitud GET al endpoint /users/{id | userPrincipalName} y comprobando la propiedad onPremisesImmutableId en la respuesta.

Tu privacidad

Usamos cookies para mejorar tu experiencia en nuestros sitios web. Haz clic en «Aceptar todas las cookies» para aceptar su uso. Para rechazar cookies no esenciales, haz clic en «Solo cookies necesarias».

Visita nuestra política de privacidad para saber más