Compartilhar via


Integrar a identidade do AD FS ao datacenter do Azure Stack Hub

Você pode implantar o Azure Stack Hub usando o Microsoft Entra ID ou o AD FS (Serviços de Federação do Active Directory) como o provedor de identidade. A escolha deve ser feita antes de implantar o Azure Stack Hub. Em um cenário conectado, você pode escolher o Microsoft Entra ID ou o AD FS. Em um cenário desconectado, há suporte apenas para o AD FS. Este artigo mostra como integrar os AD FS do Azure Stack Hub aos AD FS do seu datacenter.

Importante

Não é possível trocar o provedor de identidade sem reimplantar toda a solução Azure Stack Hub.

Serviços de Federação do Active Directory e Graph

A implantação com o AD FS permite que as identidades em uma floresta existente do Active Directory se autentiquem com recursos no Azure Stack Hub. Essa floresta existente do Active Directory requer uma implantação de AD FS para permitir criar uma relação de confiança de federação com o AD FS.

A autenticação é uma parte da identidade. Para gerenciar o RBAC (controle de acesso baseado em função) no Azure Stack Hub, o componente Graph deve ser configurado. Quando o acesso a um recurso é delegado, o componente Graph pesquisa a conta do usuário na floresta existente do Active Directory usando o protocolo LDAP.

Arquitetura do Azure Stack Hub AD FS

Os AD FS existentes são o serviço de token de segurança (STS) da conta que envia declarações para os AD FS do Azure Stack Hub (o STS do recurso). No Azure Stack Hub, a automação cria a relação de confiança do provedor de declarações com o ponto de extremidade de metadados para os AD FS existente.

Nos AD FS existentes, deve ser configurado um objeto de confiança de terceira parte confiável. Essa etapa não é feita pela automação e deve ser configurada pelo operador. O ponto de extremidade VIP do Azure Stack Hub para os AD FS pode ser criado usando o padrão https://adfs.<Region>.<ExternalFQDN>/.

A configuração do objeto de confiança de terceira parte confiável também exige que você configure as regras de transformação de declaração fornecidas pela Microsoft.

Para a configuração do Graph, é necessário fornecer uma conta de serviço que tenha permissão de "leitura" no Active Directory existente. Essa conta é necessária como entrada para que a automação habilite cenários RBAC.

Na última etapa, um novo proprietário é configurado para a assinatura do provedor padrão. Essa conta tem acesso completo a todos os recursos quando conectada ao portal do administrador do Azure Stack Hub.

Requisitos:

Componente Requisito
Graph Microsoft Active Directory 2012/2012 R2/2016 2019
AD FS Windows Server 2012/2012 R2/2016 2019

Configuração da integração do Graph

O Graph dá suporte somente à integração com uma única floresta do Active Directory. Se existirem várias florestas, somente a floresta especificada na configuração será usada para buscar usuários e grupos.

As informações a seguir são necessárias como entradas para os parâmetros de automação:

Parâmetro Parâmetro da Planilha de Implantação Descrição Exemplo
CustomADGlobalCatalog FQDN da floresta de AD FS FQDN da floresta do Active Directory de destino com a qual você deseja integrar. Contoso.com
CustomADAdminCredentials Um usuário com permissão de leitura LDAP. graphservice

Configurar sites do Active Directory

Para implantações do Active Directory com vários sites, configure o site mais próximo do Active Directory para a implantação do Azure Stack Hub. A configuração evita que o serviço do Graph do Azure Stack Hub resolva consultas usando um Servidor de Catálogo Global de um site remoto.

Adicione a sub-rede da rede VIP pública do Azure Stack Hub ao Site do Active Directory mais próximo ao Azure Stack Hub. Por exemplo, seu Active Directory tem dois sites: Seattle e Redmond. Se o Azure Stack Hub for implantado no site de Seattle, você adicionará a sub-rede de rede VIP pública do Azure Stack Hub ao site do Active Directory para Seattle.

Para obter mais informações sobre sites do Active Directory, consulte Criando a topologia do site.

Observação

Se o Active Directory consistir em um único site, você poderá ignorar esta etapa. Se você tiver uma sub-rede catch-all configurada, valide se a sub-rede de rede VIP pública do Azure Stack Hub não faz parte dela.

Criar conta de usuário no Active Directory existente (opcional)

Opcionalmente, você pode criar uma conta para o Graph no Active Directory existente. Faça esta etapa se você ainda não tiver uma conta que queira usar.

  1. No Active Directory existente, crie a seguinte conta de usuário (recomendação):

    • Nome de usuário: graphservice
    • Senha: use uma senha forte e configure a senha para nunca expirar.

    Não são necessárias permissões especiais ou associação.

Disparar automação para configurar o grafo

Para este procedimento, use um computador na rede de datacenter que possa se comunicar com o ponto de extremidade privilegiado no Azure Stack Hub.

  1. Abra uma sessão com privilégios elevados do PowerShell no Windows (execute como administrador) e conecte-se ao endereço IP do ponto de extremidade privilegiado. Use as credenciais do CloudAdmin para a autenticação.

    $creds = Get-Credential
    $pep = New-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
    
  2. Agora que você tem uma sessão com o ponto de extremidade privilegiado, execute o seguinte comando:

     $i = @(
            [pscustomobject]@{ 
                      CustomADGlobalCatalog="fabrikam.com"
                      CustomADAdminCredential= Get-Credential -Message "Do not include the domain name of the graphservice account in the username."
                      SkipRootDomainValidation = $false 
                      ValidateParameters = $true
                    }) 
    
     Invoke-Command -Session $pep -ScriptBlock {Register-DirectoryService -customCatalog $using:i} 
    

    Quando solicitado, especifique a credencial da conta de usuário que você deseja usar no serviço Graph (como graphservice). A entrada para o Register-DirectoryService cmdlet deve ser o nome da floresta/domínio raiz na floresta, em vez de qualquer outro domínio na floresta.

    Importante

    Aguarde o pop-up de credenciais (Get-Credential não tem suporte no ponto de extremidade privilegiado) e insira as credenciais da conta do Serviço do Graph.

  3. O Register-DirectoryService cmdlet tem parâmetros opcionais que você pode usar em determinados cenários em que a validação existente do Active Directory falha. Ao ser executado, esse cmdlet valida que o domínio fornecido é o domínio raiz, um servidor de catálogo global pode ser alcançado, e que a conta fornecida recebeu acesso de leitura.

    Parâmetro Descrição
    SkipRootDomainValidation Especifica que um domínio filho deve ser usado em vez do domínio raiz recomendado.
    ValidateParameters Ignora todas as verificações de validação.

Protocolos e portas do Graph

O serviço Graph no Azure Stack Hub usa os seguintes protocolos e portas para se comunicar com um GC (Servidor de Catálogo Global) gravável e um KDC (Centro de Distribuição de Chaves) que podem processar solicitações de logon na floresta do Active Directory de destino.

O serviço Graph no Azure Stack Hub usa os seguintes protocolos e portas para se comunicar com o Active Directory de destino:

Tipo Porta Protocolo
LDAP 389 TCP &UDP
SSL do LDAP 636 TCP
LDAP GC 3.268 TCP
LDAP GC SSL 3269 TCP

Configurar a integração do AD FS baixando metadados de federação

As informações a seguir são necessárias como entrada para os parâmetros de automação:

Parâmetro Parâmetro de planilha de implantação Descrição Exemplo
CustomAdfsName Nome do provedor do AD FS Nome do provedor de declarações.
Ele aparece assim na página de inicial do AD FS.
Contoso
CustomAD
FSFederationMetadataEndpointUri
URI de metadados do AD FS Link de metadados da federação. https://ad01.contoso.com/federationmetadata/2007-06/federationmetadata.xml
SigningCertificateRevocationCheck NA Parâmetro opcional para ignorar a verificação de CRL. Nenhum

Acionar a automação para configurar a confiança do provedor de reivindicações no Azure Stack Hub (baixando metadados de federação)

Para esse procedimento, use um computador que possa se comunicar com o ponto de extremidade privilegiado no Azure Stack Hub. Espera-se que o certificado usado pela conta STS AD FS seja confiável para o Azure Stack Hub.

  1. Abra uma sessão elevada do Windows PowerShell e conecte-se ao ponto de extremidade privilegiado.

    $creds = Get-Credential
    Enter-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Agora que você está conectado ao ponto de extremidade privilegiado, execute o seguinte comando usando os parâmetros apropriados para seu ambiente:

    Register-CustomAdfs -CustomAdfsName Contoso -CustomADFSFederationMetadataEndpointUri "https://ad01.contoso.com/federationmetadata/2007-06/federationmetadata.xml"
    
  3. Execute o seguinte comando para atualizar o proprietário da assinatura do provedor padrão usando os parâmetros apropriados para seu ambiente:

    Set-ServiceAdminOwner -ServiceAdminOwnerUpn "administrator@contoso.com"
    

Configurar a integração do AD FS fornecendo o arquivo de metadados de federação

A partir da versão 1807, use esse método se uma das seguintes condições for verdadeira:

  • A cadeia de certificados é diferente para o AD FS em comparação com todos os outros pontos de extremidade no Azure Stack Hub.
  • Não há conectividade de rede com o servidor AD FS existente da instância do AD FS do Azure Stack Hub.

As informações a seguir são necessárias como entrada para os parâmetros de automação:

Parâmetro Descrição Exemplo
CustomAdfsName Nome do provedor de declarações. Ele aparece assim na página de inicial do AD FS. Contoso
CustomADFSFederationMetadataFileContent Conteúdo de metadados. $using:federationMetadataFileContent

Criar arquivo de metadados de federação

Para o procedimento a seguir, você deve usar um computador que tenha conectividade de rede com a implantação existente do AD FS, que se torna a conta STS. Os certificados necessários também devem ser instalados.

  1. Abra uma sessão do Windows PowerShell com privilégios elevados e execute o seguinte comando usando os parâmetros apropriados para o seu ambiente:

    $url = "https://win-SQOOJN70SGL.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml"
    $webclient = New-Object System.Net.WebClient
    $webclient.Encoding = [System.Text.Encoding]::UTF8
    $metadataAsString = $webclient.DownloadString($url)
    Set-Content -Path c:\metadata.xml -Encoding UTF8 -Value $metadataAsString
    
  2. Copie o arquivo de metadados para um computador que possa se comunicar com o ponto de extremidade privilegiado.

Disparar automação para configurar a confiança do provedor de declarações no Azure Stack Hub (usando arquivo de metadados de federação)

Para este procedimento, use um computador que possa se comunicar com o ponto de extremidade privilegiado no Azure Stack Hub e tenha acesso ao arquivo de metadados criado em uma etapa anterior.

  1. Abra uma sessão do Windows PowerShell com privilégios elevados e conecte-se ao ponto de extremidade privilegiado:

    $federationMetadataFileContent = get-content c:\metadata.xml
    $creds=Get-Credential
    Enter-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Agora que você está conectado ao ponto de extremidade privilegiado, execute o seguinte comando usando os parâmetros apropriados para seu ambiente:

    Register-CustomAdfs -CustomAdfsName Contoso -CustomADFSFederationMetadataFileContent $using:federationMetadataFileContent
    
  3. Execute o comando a seguir para atualizar o proprietário da assinatura do provedor padrão. Use os parâmetros apropriados para seu ambiente:

    Set-ServiceAdminOwner -ServiceAdminOwnerUpn "administrator@contoso.com"
    

    Observação

    Ao girar o certificado no AD FS existente (conta STS), você deve configurar a integração do AD FS novamente. Você deve configurar a integração mesmo que o endpoint de metadados esteja acessível ou tenha sido configurado fornecendo o arquivo de metadados.

Configurar a parte confiável na implantação existente do AD FS (conta STS)

A Microsoft fornece um script que configura a confiança da parte confiável, incluindo as regras de transformação de declaração. O uso do script é opcional, pois você pode executar os comandos manualmente.

Você pode baixar o script auxiliar das Ferramentas do Azure Stack Hub no GitHub.

Se você decidir executar manualmente os comandos, siga estas etapas:

  1. Copie o seguinte conteúdo em um arquivo .txt (por exemplo, salvo como c:\ClaimIssuanceRules.txt) na instância do AD FS ou no membro do farm do seu datacenter:

    @RuleTemplate = "LdapClaims"
    @RuleName = "Name claim"
    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
    => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"), query = ";userPrincipalName;{0}", param = c.Value);
    
    @RuleTemplate = "LdapClaims"
    @RuleName = "UPN claim"
    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
    => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"), query = ";userPrincipalName;{0}", param = c.Value);
    
    @RuleTemplate = "LdapClaims"
    @RuleName = "ObjectID claim"
    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid"]
    => issue(Type = "http://schemas.microsoft.com/identity/claims/objectidentifier", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType);
    
    @RuleName = "Family Name and Given claim"
    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
    => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname"), query = ";sn,givenName;{0}", param = c.Value);
    
    @RuleTemplate = "PassThroughClaims"
    @RuleName = "Pass through all Group SID claims"
    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"]
    => issue(claim = c);
    
    @RuleTemplate = "PassThroughClaims"
    @RuleName = "Pass through all windows account name claims"
    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]
    => issue(claim = c);
    
  2. Valide se a autenticação baseada em Windows Forms para extranet e intranet está habilitada. Você pode verificar se já está habilitado executando o seguinte cmdlet:

    Get-AdfsAuthenticationProvider | where-object { $_.name -eq "FormsAuthentication" } | select Name, AllowedForPrimaryExtranet, AllowedForPrimaryIntranet
    

    Observação

    As cadeias de caracteres de agente de usuário com suporte da WIA (Autenticação Integrada do Windows) podem estar desatualizadas para a implantação do AD FS e podem exigir uma atualização para dar suporte aos clientes mais recentes. Você pode ler mais sobre como atualizar as cadeias de caracteres de agente de usuário com suporte do WIA no artigo Configurando a autenticação baseada em formulários da intranet para dispositivos que não dão suporte ao WIA.

    Para obter as etapas para habilitar a política de autenticação baseada em formulário, consulte Configurar políticas de autenticação.

  3. Para adicionar a confiança da parte confiável, execute o seguinte comando do Windows PowerShell na sua instância do AD FS ou em um membro do farm. Certifique-se de atualizar o ponto de extremidade do AD FS e apontar para o arquivo criado na Etapa 1.

    Importante

    Para clientes que executam o Azure Stack Hub versões 2002 e posteriores, o TLS 1.2 é imposto no ponto de extremidade do ADFS do Azure Stack Hub. Dessa forma, o TLS 1.2 também deve ser habilitado nos servidores ADFS do cliente. Caso contrário, o seguinte erro ocorrerá ao executar Add-ADFSRelyingPartyTrust no host/farm do ADFS de propriedade do cliente:

    Add-ADFSRelyingPartyTrust : The underlying connection was closed: An unexpected error occurred on a send.

    Para o AD FS 2016/2019

    Add-ADFSRelyingPartyTrust -Name AzureStack -MetadataUrl "https://YourAzureStackADFSEndpoint/FederationMetadata/2007-06/FederationMetadata.xml" -IssuanceTransformRulesFile "C:\ClaimIssuanceRules.txt" -AutoUpdateEnabled:$true -MonitoringEnabled:$true -enabled:$true -AccessControlPolicyName "Permit everyone" -TokenLifeTime 1440
    

    Para o AD FS 2012/2012 R2

    Add-ADFSRelyingPartyTrust -Name AzureStack -MetadataUrl "https://YourAzureStackADFSEndpoint/FederationMetadata/2007-06/FederationMetadata.xml" -IssuanceTransformRulesFile "C:\ClaimIssuanceRules.txt" -AutoUpdateEnabled:$true -MonitoringEnabled:$true -enabled:$true -TokenLifeTime 1440
    

    Importante

    Você deve usar o snap-in MMC do AD FS para configurar as Regras de Autorização de Emissão ao usar o Windows Server 2012 ou 2012 R2 AD FS.

  4. Ao usar o navegador Microsoft Edge para acessar o Azure Stack Hub, você deve ignorar as associações de token. Caso contrário, as tentativas de entrada falharão. Na sua instância do AD FS ou em um membro do farm, execute o seguinte comando:

    Observação

    Esta etapa não é aplicável ao usar o Windows Server 2012 ou 2012 R2 AD FS. Nesse caso, é seguro ignorar esse comando e continuar com a integração.

    Set-AdfsProperties -IgnoreTokenBinding $true
    

Criação de SPN

Há muitos cenários que exigem o uso de um SPN (nome da entidade de serviço) para autenticação. Estes são alguns exemplos:

  • Uso da CLI do Azure com a implantação do AD FS do Azure Stack Hub.
  • Pacote de Gerenciamento do System Center para Azure Stack Hub quando implantado com o AD FS.
  • Provedores de recursos no Azure Stack Hub quando implantados com o AD FS.
  • Vários aplicativos.
  • Você precisa de uma entrada não interativa.

Importante

O AD FS dá suporte apenas a sessões de entrada interativas. Se você precisar de uma entrada não interativa para um cenário automatizado, deverá usar um SPN.

Para obter mais informações sobre como criar um SPN, consulte Criar entidade de serviço para o AD FS.

Solução de problemas

Reversão de configuração

Se ocorrer um erro que deixe o ambiente em um estado em que você não pode mais se autenticar, uma opção de reversão estará disponível.

  1. Abra uma sessão com privilégio elevado do PowerShell no Windows e execute os seguintes comandos:

    $creds = Get-Credential
    Enter-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Em seguida, execute o seguinte cmdlet:

    Reset-DatacenterIntegrationConfiguration
    

    Depois de executar a ação de reversão, todas as alterações de configuração são revertidas. Somente a autenticação com o usuário CloudAdmin integrado é possível.

    Importante

    Você deve configurar o proprietário original da assinatura do provedor padrão.

    Set-ServiceAdminOwner -ServiceAdminOwnerUpn "azurestackadmin@[Internal Domain]"
    

Coletando logs adicionais

Se algum dos cmdlets falhar, você poderá coletar logs adicionais usando o Get-AzureStackLog cmdlet.

  1. Abra uma sessão com privilégio elevado do PowerShell no Windows e execute os seguintes comandos:

    $creds = Get-Credential
    Enter-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Em seguida, execute o seguinte cmdlet:

    Get-AzureStackLog -OutputPath \\myworkstation\AzureStackLogs -FilterByRole ECE
    

Próximas etapas

Integre soluções de monitoramento externo