Ligar Microsoft Entra ID com SAML 2.0

Ligue o FoxIDs como identity provider externo para Microsoft Entra ID com SAML 2.0.

Se o FoxIDs substituir o AD FS para a federação de domínio do Microsoft Entra ID, Ligar Microsoft Entra ID com WS-Federation é o método preferido e recomendado. O Microsoft Entra ID trata o FoxIDs como um STS WS-Federation ao estilo do AD FS, dando aos fluxos de início de sessão da Microsoft e do Windows a compatibilidade que esperam do AD FS.

Configurar o FoxIDs

Este guia descreve como configurar o FoxIDs como identity provider externo para Microsoft Entra ID. Os utilizadores são ligados a utilizadores do Microsoft Entra ID através do respetivo Immutable ID.

1 - Comece por configurar um certificado no FoxIDs Control Client

É necessário carregar no Microsoft Entra ID o certificado de assinatura SAML 2.0 usado no FoxIDs. Por isso, é necessário usar no FoxIDs um certificado de longa duração, por exemplo válido durante 3 anos.

  1. Selecione o separador Certificates
  2. Clique em Change Container type Change certificate container type in FoxIDs
  3. Encontre Self-signed or your certificate e clique em Change to this container type
  4. O certificado self-signed é válido durante 3 anos e, opcionalmente, pode carregar o seu próprio certificado Change certificate in FoxIDs

2 - Depois crie uma aplicação SAML 2.0 no FoxIDs Control Client

  1. Selecione o separador Applications
  2. Clique em New application
  3. Clique em Web application (SAML 2.0)
  4. Adicione o Name, por exemplo Microsoft Entra ID
  5. Defina Application issuer como urn:federation:MicrosoftOnline
  6. Defina Assertion consumer service (ACS) URL como https://login.microsoftonline.com/login.srf Add issuer and ACS in FoxIDs
  7. Clique em Create
  8. Clique em Change application para abrir a aplicação em modo de edição
  9. Clique em Show advanced
  10. Defina Authn request binding como Post
  11. Defina NameID format como urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
  12. Defina Optional logged out URL e Optional single logout URL como https://login.microsoftonline.com/login.srf Set binding, NameID format, and logout URLs in FoxIDs
  13. Defina Authn response sign type como Sign assertion Sign the assertion
  14. Vá ao topo da aplicação, encontre a secção Application information e clique em Show more
    • Copie o IdP Issuer
    • Copie o Single Sign-On URL
    • Copie o Single Logout URL
    • Copie o IdP Signing Certificate em formato Base64
  15. Selecione o separador Claims Transform
  16. Clique em Add claim transform e clique em Map para adicionar um claim NameID com o Immutable ID do utilizador correspondente ao Immutable ID do utilizador Microsoft Entra ID.
  17. Defina New claim como http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier - que é o URI do claim NameID
  18. Defina Select claim como http://schemas.foxids.com/ws/identity/claims/immutableid
  19. Clique em Update

Tem de definir o Immutable ID do utilizador como claim no FoxIDs.
Para definir o Immutable ID num utilizador interno, selecione o separador Users e depois o separador Internal Users, encontre o utilizador e adicione um claim com o tipo immutable_id e o valor do Immutable ID no Microsoft Entra ID - deve estar codificado em base64.
O tipo de claim immutable_id é mapeado para o URI de claim SAML 2.0 http://schemas.foxids.com/ws/identity/claims/immutableid no FoxIDs.

Configurar Microsoft Entra ID

3 - Depois configure a federation do domínio no Microsoft Entra ID com PowerShell

Não é possível configurar um identity provider SAML 2.0 externo no portal Microsoft Entra ID. Tem de usar PowerShell.

  1. Abra o PowerShell como administrador
  2. Instale o módulo PowerShell Microsoft Graph se ainda não estiver instalado: Install-Module -Name Microsoft.Graph e selecione A
    • Opcionalmente, instale para o utilizador atual: Install-Module Microsoft.Graph -Scope CurrentUser -Force
    • Ou atualize o módulo: Update-Module -Name Microsoft.Graph e selecione A
  3. Ligue-se ao Microsoft Graph:
    Connect-MgGraph -Scopes "Domain.ReadWrite.All,Directory.AccessAsUser.All"
    
  4. Defina as variáveis de configuração:
    $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. Configure a federation do domínio:
    New-MgDomainFederationConfiguration -DomainId $domainName `
      -IssuerUri $idpIssuer `
      -PassiveSignInUri $ssoUrl `
      -SignOutUri $sloUrl `
      -SigningCertificate $signingCertBase64 `
      -PreferredAuthenticationProtocol "saml" `
      -FederatedIdpMfaBehavior "acceptIfMfaDoneByFederatedIdp"
    
    FederatedIdpMfaBehavior pode ser definido como:
    • acceptIfMfaDoneByFederatedIdp - o Entra aceita MFA do FoxIDs; se o FoxIDs não tiver feito MFA, o Entra fá-lo-á.
    • enforceMfaByFederatedIdp - se uma policy exigir MFA, o Entra reenviará o utilizador para o FoxIDs para concluir MFA.
    • rejectMfaByFederatedIdp - o Entra faz sempre MFA por si; a MFA no FoxIDs é ignorada.
  6. Valide a configuração:
    Get-MgDomainFederationConfiguration -DomainId $domainName
    # or
    Get-MgDomain -DomainId $domainName | fl Id, AuthenticationType
    

4a - Depois configure o Immutable ID do utilizador no Microsoft Entra ID com PowerShell

  1. Abra o PowerShell como administrador
  2. Instale o módulo PowerShell Microsoft Graph se ainda não estiver instalado: Install-Module -Name Microsoft.Graph e selecione A
    • Opcionalmente, instale para o utilizador atual: Install-Module Microsoft.Graph -Scope CurrentUser -Force
    • Ou atualize o módulo: Update-Module -Name Microsoft.Graph e selecione A
  3. Ligue-se ao Microsoft Graph: Connect-MgGraph -Scopes "Domain.ReadWrite.All"
  4. Defina as variáveis de configuração:
    $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. Configure o Immutable ID do utilizador:
    Set-MgUser -UserId $userId -OnPremisesImmutableId $immutableId
    
  6. Valide a configuração:
    Get-MgUser -UserId $userId | fl Id, OnPremisesImmutableId
    

Se o utilizador já tiver um Immutable ID definido, precisa de mover o utilizador para fora do domínio federado, definir o Immutable ID e depois mover o utilizador de volta para o domínio federado.

  1. Mova o utilizador para um domínio não federado:
    $userId = "user-id@my-domain.com"
    $userIdTemp = "user-id@yourtenant.onmicrosoft.com"
    Update-MgUser -UserId $userId -UserPrincipalName $userIdTemp
    
  2. Defina o novo Immutable ID do utilizador:
    $immutableId = "immutable-id" # The user's Immutable ID - base64 encoded.
    Set-MgUser -UserId $userIdTemp -OnPremisesImmutableId $immutableId
    
  3. Mova o utilizador de volta para o domínio federado:
    Update-MgUser -UserId $userIdTemp -UserPrincipalName $userId
    

4b - Ou, em alternativa, configure o Immutable ID do utilizador no Microsoft Entra ID com Graph API

  1. Obtenha um access token para a Microsoft Graph API com os scopes necessários.
  2. Faça um pedido PATCH ao endpoint /users/{id | userPrincipalName} com o seguinte body JSON:
    {
      "onPremisesImmutableId": "immutable-id"
    }
    
    Substitua immutable-id pelo valor pretendido de Immutable ID que corresponde ao claim NameID enviado pelo FoxIDs.
  3. Valide a configuração fazendo um pedido GET ao endpoint /users/{id | userPrincipalName} e verificando a propriedade onPremisesImmutableId na resposta.

Se o utilizador já tiver um Immutable ID definido, precisa de mover o utilizador para fora do domínio federado, definir o Immutable ID e depois mover o utilizador de volta para o domínio federado.

  1. Faça um pedido PATCH ao endpoint /users/{id | userPrincipalName} para alterar o userPrincipalName para um domínio não federado.
  2. Faça um pedido PATCH para definir o novo Immutable ID.
  3. Faça um pedido PATCH para alterar o userPrincipalName de volta para o domínio federado.
  4. Valide a configuração fazendo um pedido GET ao endpoint /users/{id | userPrincipalName} e verificando a propriedade onPremisesImmutableId na resposta.
A sua privacidade

A sua privacidade

Usamos cookies para melhorar a sua experiência nos nossos sites. Clique no botão 'Aceitar todos os cookies' para concordar com a utilização de cookies. Para recusar cookies não essenciais, clique em 'Apenas cookies necessários'.

Visite a nossa página de Política de Privacidade para saber mais