Delen via


AD FS-identiteit integreren met uw Azure Stack Hub-datacenter

U kunt Azure Stack Hub implementeren met behulp van Microsoft Entra ID of Active Directory Federation Services (AD FS) als id-provider. De keuze moet worden gemaakt voordat u Azure Stack Hub implementeert. In een verbonden scenario kunt u Microsoft Entra ID of AD FS kiezen. Voor een niet-verbonden scenario wordt alleen AD FS ondersteund. In dit artikel wordt beschreven hoe u Azure Stack Hub AD FS integreert met uw datacenter AD FS.

Belangrijk

U kunt de id-provider niet wijzigen zonder de volledige Azure Stack Hub-oplossing opnieuw te implementeren.

Active Directory Federation Services en Graph

Door te implementeren met AD FS kunnen identiteiten in een bestaand Active Directory-forest worden geverifieerd met resources in Azure Stack Hub. Voor dit bestaande Active Directory-forest is een implementatie van AD FS vereist om het maken van een AD FS-federatieve vertrouwensrelatie mogelijk te maken.

Verificatie is één onderdeel van de identiteit. Als u op rollen gebaseerd toegangsbeheer (RBAC) in Azure Stack Hub wilt beheren, moet het Graph-onderdeel worden geconfigureerd. Wanneer toegang tot een resource is gedelegeerd, zoekt het Graph-onderdeel het gebruikersaccount in het bestaande Active Directory-forest op met behulp van het LDAP-protocol.

Azure Stack Hub AD FS-architectuur

De bestaande AD FS is de account security token service (STS) die claims verzendt naar de Azure Stack Hub AD FS (de resource STS). In Azure Stack Hub maakt automatisering de vertrouwensrelatie van de claimprovider met het metagegevenseindpunt voor de bestaande AD FS.

Op de bestaande AD FS moet een relying party vertrouwensrelatie worden geconfigureerd. Deze stap wordt niet uitgevoerd door de automatisering en moet worden geconfigureerd door de operator. Het VIP-eindpunt van Azure Stack Hub voor AD FS kan worden gemaakt met behulp van het patroon https://adfs.<Region>.<ExternalFQDN>/.

Voor de vertrouwensconfiguratie van relying party's moet u ook de claimtransformatieregels configureren die worden geleverd door Microsoft.

Voor de Graph-configuratie moet een serviceaccount worden opgegeven met de machtiging Lezen in de bestaande Active Directory. Dit account is vereist als invoer voor de automatisering om RBAC-scenario's mogelijk te maken.

Voor de laatste stap wordt een nieuwe eigenaar geconfigureerd voor het standaardproviderabonnement. Dit account heeft volledige toegang tot alle resources wanneer u bent aangemeld bij de Azure Stack Hub-beheerdersportal.

Vereisten:

Onderdeel Vereiste
Grafiek Microsoft Active Directory 2012/2012 R2/2016 2019
AD FS Windows Server 2012/2012 R2/2016 2019

Graph-integratie instellen

Graph ondersteunt alleen integratie met één Active Directory-forest. Als er meerdere forests bestaan, wordt alleen het forest dat is opgegeven in de configuratie gebruikt om gebruikers en groepen op te halen.

De volgende informatie is vereist als invoer voor de automatiseringsparameters:

Parameter Implementatiewerkbladparameter Beschrijving Voorbeeld
CustomADGlobalCatalog AD FS-forest-FQDN FQDN van het Active Directory-doelforest waarmee u wilt integreren Contoso.com
CustomADAdminCredentials Een gebruiker met een LDAP-leesmachtiging graphservice

Active Directory-sites configureren

Voor Active Directory-implementaties met meerdere sites configureert u de dichtstbijzijnde Active Directory-site voor uw Azure Stack Hub-implementatie. De configuratie voorkomt dat de Azure Stack Hub Graph-service query's oplost met behulp van een globale catalogusserver vanaf een externe site.

Voeg het openbare VIP-netwerksubnet van Azure Stack Hub toe aan de Active Directory-site die zich het dichtst bij Azure Stack Hub bevindt. Stel dat uw Active Directory twee sites heeft: Seattle en Redmond. Als Azure Stack Hub is geïmplementeerd op de site Seattle, voegt u het openbare VIP-netwerksubnet van Azure Stack Hub toe aan de Active Directory-site voor Seattle.

Zie De sitetopologie ontwerpen voor meer informatie over Active Directory-sites.

Notitie

Als uw Active Directory bestaat uit één site, kunt u deze stap overslaan. Als u een catch-all-subnet hebt geconfigureerd, controleert u of het openbare VIP-netwerksubnet van Azure Stack Hub geen deel uitmaakt van het subnet.

Gebruikersaccount maken in de bestaande Active Directory (optioneel)

U kunt eventueel een account maken voor de Graph-service in de bestaande Active Directory. Voer deze stap uit als u nog geen account hebt dat u wilt gebruiken.

  1. Maak in de bestaande Active Directory het volgende gebruikersaccount (aanbeveling):

    • Gebruikersnaam: graphservice
    • Wachtwoord: Gebruik een sterk wachtwoord en configureer het wachtwoord om nooit te verlopen.

    Er zijn geen speciale machtigingen of lidmaatschap vereist.

Automatisering activeren om grafiek te configureren

Gebruik voor deze procedure een computer in uw datacenternetwerk die kan communiceren met het bevoegde eindpunt in Azure Stack Hub.

  1. Open een Windows PowerShell-sessie met verhoogde bevoegdheid (als administrator uitvoeren) en maak verbinding met het IP-adres van het bevoegde eindpunt. Gebruik de referenties voor CloudAdmin om te verifiëren.

    $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. Nu u een sessie met het bevoegde eindpunt hebt, voert u de volgende opdracht uit:

    Voer het onderstaande script uit voor Azure Stack Hub build 2008 en hoger

     $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} 
    
    
    

    Voer het onderstaande script uit voor azure Stack Hub-build vóór 2008

    Invoke-Command -Session $pep -ScriptBlock {Register-DirectoryService -CustomADGlobalCatalog contoso.com} 
    
    
    

    Geef desgevraagd de referentie op voor het gebruikersaccount dat u wilt gebruiken voor de Graph-service (zoals graphservice). De invoer voor de Register-DirectoryService-cmdlet moet de forestnaam /hoofddomein in het forest zijn in plaats van een ander domein in het forest.

    Belangrijk

    Wacht totdat de referenties worden weergegeven (Get-Credential wordt niet ondersteund in het bevoegde eindpunt) en voer de referenties voor het Graph Service-account in.

  3. De cmdlet Register-DirectoryService bevat optionele parameters die u kunt gebruiken in bepaalde scenario's waarin de bestaande Active Directory-validatie mislukt. Wanneer deze cmdlet wordt uitgevoerd, wordt gevalideerd dat het opgegeven domein het hoofddomein is, een globale catalogusserver kan worden bereikt en dat het opgegeven account leestoegang krijgt.

    Parameter Description
    SkipRootDomainValidation Hiermee geeft u op dat een onderliggend domein moet worden gebruikt in plaats van het aanbevolen hoofddomein.
    ValidateParameters Alle validatiecontroles worden overgeslagen.

Grafiekprotocollen en -poorten

Graph-service in Azure Stack Hub gebruikt de volgende protocollen en poorten om te communiceren met een schrijfbare Global Catalog Server (GC) en Key Distribution Center (KDC) die aanmeldingsaanvragen in het Active Directory-doelforest kunnen verwerken.

Graph-service in Azure Stack Hub gebruikt de volgende protocollen en poorten om te communiceren met de doel-Active Directory:

Type Poort Protocol
LDAP 389 TCP & UDP
LDAP SSL 636 TCP
LDAP GC 3268 TCP
LDAP GC SSL 3269 TCP

AD FS-integratie instellen door federatiemetagegevens te downloaden

De volgende informatie is vereist als invoer voor de automatiseringsparameters:

Parameter Implementatiewerkbladparameter Beschrijving Voorbeeld
CustomAdfsName AD FS-providernaam Naam van de claimprovider.
Het lijkt op die manier op de AD FS-landingspagina.
Contoso
CustomAD
FSFederationMetadataEndpointUri
AD FS-metagegevens-URI Koppeling naar federatieve metagegevens. https://ad01.contoso.com/federationmetadata/2007-06/federationmetadata.xml
SigningCertificateRevocationCheck N.v.t. Optionele parameter om CRL-controle over te slaan. Geen

Automatisering activeren om vertrouwensrelatie van claimproviders in Azure Stack Hub te configureren (door federatiemetagegevens te downloaden)

Gebruik voor deze procedure een computer die kan communiceren met het bevoegde eindpunt in Azure Stack Hub. Verwacht wordt dat het certificaat dat wordt gebruikt door het account STS AD FS wordt vertrouwd door Azure Stack Hub.

  1. Open een Windows PowerShell-sessie met verhoogde bevoegdheid en maak verbinding met het bevoegde eindpunt.

    $creds = Get-Credential
    Enter-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Nu u bent verbonden met het bevoegde eindpunt, voert u de volgende opdracht uit met behulp van de parameters die geschikt zijn voor uw omgeving:

    Register-CustomAdfs -CustomAdfsName Contoso -CustomADFSFederationMetadataEndpointUri "https://ad01.contoso.com/federationmetadata/2007-06/federationmetadata.xml"
    
  3. Voer de volgende opdracht uit om de eigenaar van het standaardproviderabonnement bij te werken met behulp van de parameters die geschikt zijn voor uw omgeving:

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

AD FS-integratie instellen door federatiemetagegevensbestand op te geven

Gebruik deze methode vanaf versie 1807 als aan een van de volgende voorwaarden wordt voldaan:

  • De certificaatketen verschilt voor AD FS in vergelijking met alle andere eindpunten in Azure Stack Hub.
  • Er is geen netwerkverbinding met de bestaande AD FS-server vanuit het AD FS-exemplaar van Azure Stack Hub.

De volgende informatie is vereist als invoer voor de automatiseringsparameters:

Parameter Description Voorbeeld
CustomAdfsName Naam van de claimprovider. Het lijkt op die manier op de AD FS-landingspagina. Contoso
CustomADFSFederationMetadataFileContent Metagegevensinhoud. $using:federationMetadataFileContent

Federatiemetagegevensbestand maken

Voor de volgende procedure moet u een computer met netwerkverbinding met de bestaande AD FS-implementatie gebruiken, die de account-STS wordt. De benodigde certificaten moeten ook worden geïnstalleerd.

  1. Open een Windows PowerShell-sessie met verhoogde bevoegdheid en voer de volgende opdracht uit met behulp van de parameters die geschikt zijn voor uw omgeving:

     $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. Kopieer het metagegevensbestand naar een computer die kan communiceren met het bevoegde eindpunt.

Automatisering activeren om vertrouwensrelatie van claimproviders in Azure Stack Hub te configureren (met behulp van federatiemetagegevensbestand)

Gebruik voor deze procedure een computer die kan communiceren met het bevoegde eindpunt in Azure Stack Hub en toegang heeft tot het metagegevensbestand dat u in een vorige stap hebt gemaakt.

  1. Open een Windows PowerShell-sessie met verhoogde bevoegdheid en maak verbinding met het bevoegde eindpunt.

    $federationMetadataFileContent = get-content c:\metadata.xml
    $creds=Get-Credential
    Enter-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Nu u bent verbonden met het bevoegde eindpunt, voert u de volgende opdracht uit met behulp van de parameters die geschikt zijn voor uw omgeving:

    Register-CustomAdfs -CustomAdfsName Contoso -CustomADFSFederationMetadataFileContent $using:federationMetadataFileContent
    
  3. Voer de volgende opdracht uit om de eigenaar van het standaardproviderabonnement bij te werken. Gebruik de parameters die geschikt zijn voor uw omgeving.

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

    Notitie

    Wanneer u het certificaat roteert op de bestaande AD FS (account STS), moet u de AD FS-integratie opnieuw instellen. U moet de integratie instellen, zelfs als het metagegevenseindpunt bereikbaar is of als het is geconfigureerd door het metagegevensbestand op te geven.

Relying party configureren op bestaande AD FS-implementatie (account STS)

Microsoft biedt een script waarmee de relying party-vertrouwensrelatie wordt geconfigureerd, inclusief de claimtransformatieregels. Het gebruik van het script is optioneel, omdat u de opdrachten handmatig kunt uitvoeren.

U kunt het helperscript downloaden van Azure Stack Hub Tools op GitHub.

Als u besluit om de opdrachten handmatig uit te voeren, voert u de volgende stappen uit:

  1. Kopieer de volgende inhoud naar een .txt bestand (bijvoorbeeld opgeslagen als c:\ClaimIssuanceRules.txt) op het AD FS-exemplaar of het farmlid van uw 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. Controleer of verificatie op basis van Windows Forms voor extranet en intranet is ingeschakeld. U kunt controleren of deze al is ingeschakeld door de volgende cmdlet uit te voeren:

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

    Notitie

    De door Windows Geïntegreerde verificatie (WIA) ondersteunde tekenreeksen voor gebruikersagenten zijn mogelijk verouderd voor uw AD FS-implementatie en vereisen mogelijk een update voor de ondersteuning van de nieuwste clients. Meer informatie over het bijwerken van de door WIA ondersteunde tekenreeksen voor gebruikersagenten vindt u in het artikel Verificatie op basis van intranetformulieren configureren voor apparaten die geen ondersteuning bieden voor WIA.

    Zie Verificatiebeleid configureren voor stappen voor het inschakelen van verificatiebeleid op basis van formulieren.

  3. Als u de relying party-vertrouwensrelatie wilt toevoegen, voert u de volgende Windows PowerShell-opdracht uit op uw AD FS-exemplaar of een farmlid. Zorg ervoor dat u het AD FS-eindpunt bijwerkt en verwijst naar het bestand dat u in stap 1 hebt gemaakt.

    Belangrijk

    Voor klanten met Azure Stack Hub-versies 2002 en hoger wordt TLS 1.2 afgedwongen op het Azure Stack Hub ADFS-eindpunt. Als zodanig moet TLS 1.2 ook worden ingeschakeld op de ADFS-servers van de klant. Anders treedt de volgende fout op wanneer deze wordt uitgevoerd Add-ADFSRelyingPartyTrust op de ADFS-host/-farm van de klant:

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

    Voor 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
    

    Voor 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
    

    Belangrijk

    U moet de AD FS MMC-module gebruiken om de uitgifteautorisatieregels te configureren wanneer u Windows Server 2012 of 2012 R2 AD FS gebruikt.

  4. Wanneer u Internet Explorer of de Microsoft Edge-browser gebruikt voor toegang tot Azure Stack Hub, moet u tokenbindingen negeren. Anders mislukken de aanmeldingspogingen. Voer op uw AD FS-exemplaar of een farmlid de volgende opdracht uit:

    Notitie

    Deze stap is niet van toepassing wanneer u Windows Server 2012 of 2012 R2 AD FS gebruikt. In dat geval is het veilig om deze opdracht over te slaan en door te gaan met de integratie.

    Set-AdfsProperties -IgnoreTokenBinding $true
    

SPN maken

Er zijn veel scenario's waarvoor het gebruik van een SPN (Service Principal Name) voor verificatie is vereist. Hier volgen enkele voorbeelden:

  • Azure CLI-gebruik met AD FS-implementatie van Azure Stack Hub.
  • System Center Management Pack voor Azure Stack Hub wanneer deze wordt geïmplementeerd met AD FS.
  • Resourceproviders in Azure Stack Hub wanneer deze worden geïmplementeerd met AD FS.
  • Verschillende apps.
  • U hebt een niet-interactieve aanmelding nodig.

Belangrijk

AD FS ondersteunt alleen interactieve aanmeldingssessies. Als u een niet-interactieve aanmelding nodig hebt voor een geautomatiseerd scenario, moet u een SPN gebruiken.

Zie Service-principal maken voor AD FS voor meer informatie over het maken van een SPN.

Probleemoplossing

Configuratie terugdraaien

Als er een fout optreedt die de omgeving in een status verlaat waarin u zich niet meer kunt verifiëren, is er een optie voor terugdraaien beschikbaar.

  1. Open een Windows PowerShell-sessie met verhoogde bevoegdheid en voer de volgende opdrachten uit:

    $creds = Get-Credential
    Enter-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Voer vervolgens de volgende cmdlet uit:

    Reset-DatacenterIntegrationConfiguration
    

    Nadat de terugdraaiactie is uitgevoerd, worden alle configuratiewijzigingen teruggedraaid. Alleen verificatie met de ingebouwde CloudAdmin-gebruiker is mogelijk.

    Belangrijk

    U moet de oorspronkelijke eigenaar van het standaardproviderabonnement configureren.

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

Aanvullende logboeken verzamelen

Als een van de cmdlets mislukt, kunt u extra logboeken verzamelen met behulp van de Get-Azurestacklogs cmdlet.

  1. Open een Windows PowerShell-sessie met verhoogde bevoegdheid en voer de volgende opdrachten uit:

    $creds = Get-Credential
    Enter-pssession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Voer vervolgens de volgende cmdlet uit:

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

Volgende stappen

Externe bewakingsoplossingen integreren