Integrace identity služby AD FS s datacentrem služby Azure Stack Hub

Službu Azure Stack Hub můžete nasadit pomocí Azure Active Directory (Azure AD) nebo Active Directory Federation Services (AD FS) (AD FS) jako zprostředkovatele identity. Před nasazením služby Azure Stack Hub je potřeba zvolit tuto volbu. V připojeném scénáři můžete zvolit Azure AD nebo AD FS. V případě odpojeného scénáře se podporuje pouze služba AD FS. Tento článek ukazuje, jak integrovat službu AD FS služby Azure Stack Hub se službou AD FS vašeho datacentra.

Důležité

Zprostředkovatele identity nemůžete přepnout bez opětovného nasazení celého řešení služby Azure Stack Hub.

Active Directory Federation Services (AD FS) a Graph

Nasazení pomocí služby AD FS umožňuje identitám v existující doménové struktuře služby Active Directory ověřovat pomocí prostředků ve službě Azure Stack Hub. Tato stávající doménová struktura služby Active Directory vyžaduje nasazení služby AD FS, aby bylo možné vytvořit vztah důvěryhodnosti federace služby AD FS.

Ověřování je jednou z částí identity. Pokud chcete spravovat řízení přístupu na základě role (RBAC) ve službě Azure Stack Hub, musí být nakonfigurovaná komponenta Graph. Pokud je přístup k prostředku delegovaný, komponenta Graph vyhledá uživatelský účet v existující doménové struktuře služby Active Directory pomocí protokolu LDAP.

Azure Stack Hub AD FS architecture

Stávající služba tokenů zabezpečení účtu (STS) je služba tokenů zabezpečení účtu, která odesílá deklarace identity do služby Azure Stack Hub AD FS (služba STS prostředku). Ve službě Azure Stack Hub automatizace vytvoří vztah důvěryhodnosti zprostředkovatele deklarací identity s koncovým bodem metadat pro existující službu AD FS.

V existující službě AD FS musí být nakonfigurovaný vztah důvěryhodnosti předávající strany. Tento krok není proveden automatizací a musí být nakonfigurován operátorem. Koncový bod VIP služby Azure Stack Hub pro službu AD FS je možné vytvořit pomocí vzoru https://adfs.<Region>.<ExternalFQDN>/.

Konfigurace vztahu důvěryhodnosti předávající strany vyžaduje také konfiguraci pravidel transformace deklarací identity, která poskytuje Microsoft.

Pro konfiguraci Graph musí být účet služby poskytnutý s oprávněním ke čtení v existující službě Active Directory. Tento účet se vyžaduje jako vstup pro automatizaci, aby bylo možné povolit scénáře RBAC.

V posledním kroku je pro výchozí předplatné poskytovatele nakonfigurovaný nový vlastník. Tento účet má úplný přístup ke všem prostředkům při přihlášení k portálu pro správu služby Azure Stack Hub.

Požadavky:

Součást Požadavek
Graph Microsoft Active Directory 2012/2012 R2/2016 2019
AD FS Windows Server 2012/2012 R2/2016 2019

Nastavení integrace Graph

Graph podporuje pouze integraci s jednou doménovou strukturou služby Active Directory. Pokud existuje více doménových struktur, použije se k načtení uživatelů a skupin pouze doménová struktura zadaná v konfiguraci.

Jako vstupy parametrů automatizace se vyžadují následující informace:

Parametr Parametr listu nasazení Popis Příklad
CustomADGlobalCatalog Plně kvalifikovaný název domény doménové struktury SLUŽBY AD FS Plně kvalifikovaný název domény cílové doménové struktury služby Active Directory, se kterou chcete integrovat Contoso.com
CustomADAdminCredentials Uživatel s oprávněním ke čtení protokolu LDAP YOURDOMAIN\graphservice

Konfigurace lokalit služby Active Directory

U nasazení služby Active Directory s více lokalitami nakonfigurujte nejbližší lokalitu služby Active Directory k nasazení služby Azure Stack Hub. Konfigurace zabraňuje tomu, aby služba Azure Stack Hub Graph přeložil dotazy pomocí serveru globálního katalogu ze vzdálené lokality.

Přidejte podsíť veřejné virtuální IP adresy služby Azure Stack Hub do lokality služby Active Directory, která je nejblíže ke službě Azure Stack Hub. Řekněme například, že vaše služba Active Directory má dvě lokality: Seattle a Redmond. Pokud je služba Azure Stack Hub nasazená v lokalitě Seattle, přidáte podsíť veřejné virtuální IP adresy služby Azure Stack Hub do lokality služby Active Directory pro Seattle.

Další informace o lokalitách služby Active Directory naleznete v tématu Návrh topologie lokality.

Poznámka

Pokud se služba Active Directory skládá z jedné lokality, můžete tento krok přeskočit. Pokud máte nakonfigurovanou podsíť catch-all, ověřte, že podsíť veřejné virtuální IP adresy služby Azure Stack Hub není součástí této podsítě.

Vytvoření uživatelského účtu v existující službě Active Directory (volitelné)

Volitelně můžete vytvořit účet pro službu Graph v existující službě Active Directory. Tento krok proveďte, pokud ještě nemáte účet, který chcete použít.

  1. V existující službě Active Directory vytvořte následující uživatelský účet (doporučení):

    • Uživatelské jméno: graphservice
    • Heslo: Použijte silné heslo a nakonfigurujte heslo tak, aby nikdy nevyprší platnost.

    Nevyžaduje se žádná zvláštní oprávnění ani členství.

Aktivace automatizace pro konfiguraci grafu

Pro účely tohoto postupu použijte počítač v síti datacentra, který může komunikovat s privilegovaným koncovým bodem ve službě Azure Stack Hub.

  1. Otevřete relaci se zvýšenými oprávněními Windows PowerShell (spustit jako správce) a připojte se k IP adrese privilegovaného koncového bodu. K ověření použijte přihlašovací údaje pro CloudAdmin .

    $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. Teď, když máte relaci s privilegovaným koncovým bodem, spusťte následující příkaz:

    Spusťte následující skript pro build služby Azure Stack Hub 2008 a novější.

     $i = @(
            [pscustomobject]@{ 
                      CustomADGlobalCatalog="fabrikam.com"
                      CustomADAdminCredential= get-credential
                      SkipRootDomainValidation = $false 
                      ValidateParameters = $true
                    }) 
    
     Invoke-Command -Session $pep -ScriptBlock {Register-DirectoryService -customCatalog $using:i} 
    
    
    

    Spusťte následující skript pro sestavení služby Azure Stack Hub před 2008.

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

    Po zobrazení výzvy zadejte přihlašovací údaje pro uživatelský účet, který chcete použít pro službu Graph (například graphservice). Vstup pro rutinu Register-DirectoryService musí být doménová struktura nebo kořenová doména v doménové struktuře, nikoli jakákoli jiná doména v doménové struktuře.

    Důležité

    Počkejte na automaticky otevírané okno s přihlašovacími údaji (v privilegovaném koncovém bodu se nepodporuje Get-Credential) a zadejte přihlašovací údaje účtu služby Graph.

  3. Rutina Register-DirectoryService má volitelné parametry, které můžete použít v určitých scénářích, kdy se stávající ověření služby Active Directory nezdaří. Po spuštění této rutiny ověří, že zadanou doménou je kořenová doména, je dostupný server globálního katalogu a že zadaný účet má udělený přístup pro čtení.

    Parametr Popis
    SkipRootDomainValidation Určuje, že se musí místo doporučené kořenové domény použít podřízená doména.
    ValidateParameters Obchází všechny kontroly ověření.

Graph protokoly a porty

služba Graph ve službě Azure Stack Hub používá následující protokoly a porty ke komunikaci se zapisovatelným serverem globálního katalogu (GC) a centrem pro distribuci klíčů (KDC), které můžou zpracovávat žádosti o přihlášení v cílové doménové struktuře služby Active Directory.

služba Graph ve službě Azure Stack Hub používá ke komunikaci s cílovou službou Active Directory následující protokoly a porty:

Typ Port Protokol
LDAP 389 TCP & UDP
LDAP SSL 636 TCP
Uvolňování paměti PROTOKOLU LDAP 3268 TCP
LDAP GC SSL 3269 TCP

Nastavení integrace služby AD FS stažením metadat federace

Jako vstup pro parametry automatizace se vyžadují následující informace:

Parametr Parametr listu nasazení Popis Příklad
CustomAdfsName Název zprostředkovatele služby AD FS Název zprostředkovatele deklarací identity.
Vypadá tak na cílové stránce služby AD FS.
Contoso
CustomAD
FSFederationMetadataEndpointUri
Identifikátor URI metadat služby AD FS Odkaz na federační metadata https://ad01.contoso.com/federationmetadata/2007-06/federationmetadata.xml
SigningCertificateRevocationCheck NA Volitelný parametr pro přeskočení kontroly seznamu CRL. Žádné

Aktivace automatizace pro konfiguraci vztahu důvěryhodnosti zprostředkovatele deklarací identity ve službě Azure Stack Hub

Pro účely tohoto postupu použijte počítač, který může komunikovat s privilegovaným koncovým bodem ve službě Azure Stack Hub. Očekává se, že služba Azure Stack Hub důvěřuje certifikátu používanému účtem služby STS AD FS .

  1. Otevřete relaci se zvýšenými oprávněními Windows PowerShell a připojte se k privilegovanému koncovému bodu.

    $creds = Get-Credential
    Enter-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Teď, když jste připojení k privilegovanému koncovému bodu, spusťte následující příkaz s použitím parametrů vhodných pro vaše prostředí:

    Register-CustomAdfs -CustomAdfsName Contoso -CustomADFSFederationMetadataEndpointUri https://win-SQOOJN70SGL.contoso.com/federationmetadata/2007-06/federationmetadata.xml
    
  3. Spuštěním následujícího příkazu aktualizujte vlastníka výchozího předplatného poskytovatele pomocí parametrů vhodných pro vaše prostředí:

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

Nastavení integrace služby AD FS poskytnutím souboru metadat federace

Počínaje verzí 1807 použijte tuto metodu, pokud platí některé z následujících podmínek:

  • Řetěz certifikátů se pro službu AD FS liší ve srovnání se všemi ostatními koncovými body ve službě Azure Stack Hub.
  • Z instance SLUŽBY AD FS služby Azure Stack Hub neexistuje žádné síťové připojení k existujícímu serveru AD FS.

Jako vstup pro parametry automatizace se vyžadují následující informace:

Parametr Popis Příklad
CustomAdfsName Název zprostředkovatele deklarací identity. Vypadá tak na cílové stránce služby AD FS. Contoso
CustomADFSFederationMetadataFileContent Obsah metadat. $using:federationMetadataFileContent

Vytvoření souboru federačních metadat

V následujícím postupu je nutné použít počítač, který má síťové připojení k existujícímu nasazení služby AD FS, což se stane službou STS účtu. Musí být také nainstalovány nezbytné certifikáty.

  1. Otevřete relaci se zvýšenými oprávněními Windows PowerShell a spusťte následující příkaz s použitím parametrů vhodných pro vaše prostředí:

     $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. Zkopírujte soubor metadat do počítače, který může komunikovat s privilegovaným koncovým bodem.

Aktivace automatizace pro konfiguraci vztahu důvěryhodnosti zprostředkovatele deklarací identity ve službě Azure Stack Hub

Pro účely tohoto postupu použijte počítač, který může komunikovat s privilegovaným koncovým bodem ve službě Azure Stack Hub a má přístup k souboru metadat, který jste vytvořili v předchozím kroku.

  1. Otevřete relaci se zvýšenými oprávněními Windows PowerShell a připojte se k privilegovanému koncovému bodu.

    $federationMetadataFileContent = get-content c:\metadata.xml
    $creds=Get-Credential
    Enter-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Teď, když jste připojení k privilegovanému koncovému bodu, spusťte následující příkaz s použitím parametrů vhodných pro vaše prostředí:

    Register-CustomAdfs -CustomAdfsName Contoso -CustomADFSFederationMetadataFileContent $using:federationMetadataFileContent
    
  3. Spuštěním následujícího příkazu aktualizujte vlastníka výchozího předplatného poskytovatele. Použijte parametry vhodné pro vaše prostředí.

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

    Poznámka

    Když certifikát otočíte na existující službu AD FS (účet STS), musíte znovu nastavit integraci služby AD FS. Integraci musíte nastavit i v případě, že je koncový bod metadat dostupný nebo je nakonfigurovaný zadáním souboru metadat.

Konfigurace předávající strany u existujícího nasazení služby AD FS (služba STS účtu)

Microsoft poskytuje skript, který konfiguruje vztah důvěryhodnosti předávající strany, včetně pravidel transformace deklarací identity. Použití skriptu je volitelné, protože příkazy můžete spouštět ručně.

Pomocný skript si můžete stáhnout z nástrojů služby Azure Stack Hub na GitHub.

Pokud se rozhodnete příkazy spustit ručně, postupujte takto:

  1. Zkopírujte následující obsah do souboru .txt (například uloženého jako c:\ClaimIssuanceRules.txt) na instanci služby AD FS nebo člena farmy vašeho datacentra:

    @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. Ověřte, že je povolené ověřování na základě model Windows Forms extranetu a intranetu. Spuštěním následující rutiny můžete zkontrolovat, jestli už je tato rutina povolená:

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

    Poznámka

    Řetězce podporovaných uživatelských agentů Windows integrovaného ověřování (WIA) můžou být pro vaše nasazení služby AD FS zastaralé a můžou vyžadovat aktualizaci pro podporu nejnovějších klientů. Další informace o aktualizaci řetězců podporovaných uživatelských agentů WIA najdete v článku Konfigurace ověřování na základě intranetových formulářů pro zařízení, která nepodporují WIA.

    Postup povolení zásad ověřování založených na formulářích najdete v tématu Konfigurace zásad ověřování.

  3. Pokud chcete přidat vztah důvěryhodnosti předávající strany, spusťte na instanci služby AD FS nebo člena farmy následující příkaz Windows PowerShell. Nezapomeňte aktualizovat koncový bod služby AD FS a nasměrovat na soubor vytvořený v kroku 1.

    Důležité

    Pro zákazníky se službou Azure Stack Hub verze 2002 a novější se na koncovém bodu služby Azure Stack Hub ADFS vynucuje protokol TLS 1.2. Protokol TLS 1.2 musí být povolený také na serverech ADFS zákazníka. V opačném případě dojde k následující chybě při spuštění Add-ADFSRelyingPartyTrust na hostiteli nebo farmě ADFS ve vlastnictví zákazníka:

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

    Pro 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
    

    Pro 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
    

    Důležité

    Modul snap-in konzoly MMC služby AD FS musíte použít ke konfiguraci pravidel autorizace vystavování při použití Windows Server 2012 nebo 2012 R2 AD FS.

  4. Pokud pro přístup ke službě Azure Stack Hub používáte Internet Explorer nebo prohlížeč Microsoft Edge, musíte ignorovat vazby tokenů. V opačném případě se pokusy o přihlášení nezdaří. V instanci služby AD FS nebo členu farmy spusťte následující příkaz:

    Poznámka

    Tento krok se nedá použít při použití Windows Server 2012 nebo 2012 R2 AD FS. V takovém případě je bezpečné tento příkaz přeskočit a pokračovat v integraci.

    Set-AdfsProperties -IgnoreTokenBinding $true
    

Vytvoření hlavního názvu služby (SPN)

Existuje mnoho scénářů, které k ověřování vyžadují použití hlavního názvu služby (SPN). Tady je několik příkladů:

  • Využití Azure CLI s nasazením služby AD FS ve službě Azure Stack Hub
  • System Center Management Pack pro Azure Stack Hub při nasazení se službou AD FS.
  • Poskytovatelé prostředků ve službě Azure Stack Hub při nasazení se službou AD FS.
  • Různé aplikace.
  • Vyžadujete neinteraktivní přihlášení.

Důležité

Služba AD FS podporuje pouze interaktivní relace přihlašování. Pokud pro automatizovaný scénář vyžadujete neinteraktivní přihlášení, musíte použít hlavní název služby (SPN).

Další informace o vytvoření hlavního názvu služby (SPN) najdete v tématu Vytvoření instančního objektu pro službu AD FS.

Řešení potíží

Vrácení konfigurace zpět

Pokud dojde k chybě, která opustí prostředí ve stavu, ve kterém se už nemůžete ověřit, je k dispozici možnost vrácení zpět.

  1. Otevřete relaci se zvýšenými oprávněními Windows PowerShell a spusťte následující příkazy:

    $creds = Get-Credential
    Enter-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Pak spusťte následující rutinu:

    Reset-DatacenterIntegrationConfiguration
    

    Po spuštění akce vrácení zpět se vrátí zpět všechny změny konfigurace. Je možné jenom ověřování pomocí integrovaného uživatele CloudAdmin .

    Důležité

    Musíte nakonfigurovat původního vlastníka výchozího předplatného poskytovatele.

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

Shromažďování dalších protokolů

Pokud některá z rutin selže, můžete pomocí této Get-Azurestacklogs rutiny shromažďovat další protokoly.

  1. Otevřete relaci se zvýšenými oprávněními Windows PowerShell a spusťte následující příkazy:

    $creds = Get-Credential
    Enter-pssession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Pak spusťte následující rutinu:

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

Další kroky

Integrace externích řešení monitorování