Integrace identity služby AD FS s datacentrem služby Azure Stack Hub
Azure Stack Hub můžete nasadit s využitím Microsoft Entra ID nebo službou Active Directory Federation Services (AD FS) jako zprostředkovatelem 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 MICROSOFT Entra ID nebo AD FS. V případě odpojeného scénáře se podporuje jenom 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 ověřování identit ve stávající doménové struktuře služby Active Directory pomocí prostředků ve službě Azure Stack Hub. Tato existující doménová struktura Active Directory vyžaduje nasazení služby AD FS pro vytvoření federativní důvěry 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 komponenta Graph nakonfigurovaná. Při delegovaném přístupu k prostředku vyhledá komponenta Graph uživatelský účet v existující doménové struktuře služby Active Directory pomocí protokolu LDAP.
Stávající služba AD FS je služba tokenů zabezpečení účtu (STS), která odesílá deklarace identity do služby Azure Stack Hub AD FS (token zabezpečení prostředku). V Azure Stack Hub automatizace vytváří vztah důvěry mezi poskytovatelem deklarací identity a koncovým bodem metadat pro existující AD FS.
V rámci existující služby AD FS musí být nakonfigurována důvěryhodná relace s přijímající stranou. Tento krok není proveden automatizací a musí ho nakonfigurovat operátor. Azure Stack Hub VIP koncový bod pro AD FS lze vytvořit pomocí vzoru https://adfs.<Region>.<ExternalFQDN>/
.
Konfigurace vztahu důvěryhodnosti předávající strany také vyžaduje, abyste nakonfigurovali pravidla transformace deklarací identity, která poskytuje Microsoft.
V případě konfigurace graphu musí být účet služby zadaný s oprávněním ke čtení ve stávají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:
Komponenta | Požadavek |
---|---|
Graf | Microsoft Active Directory 2012/2012 R2/2016 2019 |
AD FS | Windows Server 2012/2012 R2/2016 2019 |
Nastavení integrace Graphu
Graph podporuje pouze integraci s jednou doménovou strukturou Active Directory. Pokud existuje více lesů, použije se k načtení uživatelů a skupin pouze les zadaný v konfiguraci.
Jako vstupy pro parametry automatizace se vyžadují následující informace:
Parametr | Parametr listu nasazení | Popis | Příklad |
---|---|---|---|
CustomADGlobalCatalog |
Plně kvalifikovaný název domény lesa 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 | graphservice |
Konfigurace lokalit služby Active Directory
U nasazení služby Active Directory, která mají více lokalit, nakonfigurujte nejbližší lokalitu Active Directory k nasazení služby Azure Stack Hub. Konfigurace zabraňuje tomu, aby služba Azure Stack Hub Graph překládala dotazy pomocí serveru globálního katalogu z jiného vzdáleného místa.
Přidejte podsíť veřejné VIP sítě Azure Stack Hub do lokality služby Active Directory, která je nejblíže k 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ě Seattlu, přidáte podsíť veřejné virtuální IP adresy služby Azure Stack Hub do lokality 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 všezahrnující podsíť, ověřte, že podsíť veřejného VIP adresace Azure Stack Hub není její součástí.
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.
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.
Otevřete relaci Windows PowerShellu se zvýšenými oprávněními (spusťte 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)
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 Azure Stack Hub 2008 a novější.
$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}
Spusťte následující skript pro sestavení služby Azure Stack Hub před verzí 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 příkaz Register-DirectoryService musí být název lesní struktury nebo její kořenové domény, na rozdíl od jakékoli jiné domény v lesní 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.
Rutina Register-DirectoryService má volitelné parametry, které můžete použít v určitých scénářích, kdy stávající ověřování služby Active Directory selže. Při spuštění této rutiny ověří, že zadanou doménou je kořenová doména, je možné dosáhnout serveru globálního katalogu a že poskytnutý účet má udělený přístup pro čtení.
Parametr Popis SkipRootDomainValidation
Určuje, že se musí používat podřízená doména místo doporučené kořenové domény. ValidateParameters
Obchází všechny kontroly ověření.
Protokoly a porty grafů
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 distribuce 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 | Přístav | Protokol |
---|---|---|
LDAP | 389 | TCP &UDP |
LDAP SSL | 636 | TCP |
LDAP GC | 3 268 | TCP |
LDAP GC SSL | 3269 | TCP |
Nastavení integrace služby AD FS stažením federačních metadat
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 poskytovatele nároků Vypadá to 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 |
KontrolaZrušeníPodepisovacíhoCertifikátu | NA | Volitelný parametr, který umožňuje přeskočení kontroly CRL (seznamu odvolaných certifikátů). | Nic |
Spusťte automatizaci pro konfiguraci důvěryhodnosti zprostředkovatele identit ve službě Azure Stack Hub (stažením metadat federace)
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 STS AD FS .
Otevřete relaci Windows PowerShellu se zvýšenými oprávněními a připojte se k privilegovanému koncovému bodu.
$creds = Get-Credential Enter-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
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://ad01.contoso.com/federationmetadata/2007-06/federationmetadata.xml"
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
Od verze 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.
- Neexistuje žádné síťové připojení z instance AD FS v Azure Stack Hub 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 poskytovatele tvrzení Vypadá to tak na cílové stránce služby AD FS. | Contoso |
Vlastní obsah souboru metadat federace ADFS (CustomADFSFederationMetadataFileContent) | Obsah metadat. | $using:federationMetadataFileContent |
Vytvoření souboru federačních metadat
Pro následující postup musíte použít počítač, který má síťové připojení k existujícímu nasazení služby AD FS, která se stane účetní službou STS. Musí být také nainstalovány potřebné certifikáty.
Otevřete relaci Windows PowerShellu se zvýšenými oprávněními 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
Zkopírujte soubor metadat do počítače, který může komunikovat s privilegovaným koncovým bodem.
Spustit automatizaci k nastavení důvěry poskytovatele deklarací ve službě Azure Stack Hub (pomocí souboru federačních metadat)
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.
Otevřete relaci Windows PowerShellu se zvýšenými oprávněními 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
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
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:
Při obměně certifikátu ve stávající službě 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ý poskytnutím souboru metadat.
Konfigurace důvěřující strany pro stávající nasazení AD FS (účet STS)
Microsoft poskytuje skript, který konfiguruje důvěryhodnost předávající strany, včetně pravidel transformace deklarací. 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 GitHubu.
Pokud se rozhodnete příkazy spustit ručně, postupujte takto:
Zkopírujte následující obsah do souboru .txt (například uloženého jako c:\ClaimIssuanceRules.txt) v 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);
Ověřte, že je povolené ověřování pomocí Windows Forms pro extranet a intranet. Spuštěním následující rutiny můžete zkontrolovat, jestli už je povolená:
Get-AdfsAuthenticationProvider | where-object { $_.name -eq "FormsAuthentication" } | select Name, AllowedForPrimaryExtranet, AllowedForPrimaryIntranet
Poznámka:
Řetězce uživatelských agentů podporované Windows Integrated Authentication (WIA) mohou být pro vaše nasazení služby AD FS zastaralé a mohou vyžadovat aktualizaci, aby podporovaly nejnovější klienty. Další informace o aktualizaci řetězců podporovaných uživatelských agentů WIA najdete v článku Konfigurace ověřování pomocí intranetových formulářů pro zařízení, která nepodporují WIA.
Postup povolení zásad ověřování pomocí formulářů najdete v tématu Konfigurace zásad ověřování.Chcete-li přidat důvěryhodnost pro spoléhající se stranu, spusťte na instanci AD FS nebo členu farmy následující příkaz Windows PowerShell. Nezapomeňte aktualizovat koncový bod služby AD FS a odkazovat 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 ADFS služby Azure Stack Hub vynucuje protokol TLS 1.2. Proto musí být na serverech ADFS zákazníka povolen také protokol TLS 1.2. Jinak při spuštění
Add-ADFSRelyingPartyTrust
na hostiteli nebo farmě ADFS zákazníka dojde k následující chybě:Add-ADFSRelyingPartyTrust : The underlying connection was closed: An unexpected error occurred on a send.
Pro službu 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 Serveru 2012 nebo 2012 R2 AD FS.
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ů. Jinak pokusy o přihlášení selžou. U instance AD FS nebo člena farmy spusťte následující příkaz:
Poznámka:
Tento krok se nedá použít při použití služby AD FS systému Windows Server 2012 nebo 2012 R2. 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í 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 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é
AD FS podporuje pouze relace interaktivního přihlašování. Pokud pro automatizovaný scénář vyžadujete neinteraktivní přihlášení, musíte použít identifikátor služby (angl. SPN, Service Principal Name).
Další informace o vytvoření hlavního názvu služby (SPN) najdete v tématu Vytvoření hlavního názvu služby pro AD FS.
Řešení problému
Vrácení konfigurace zpět
Pokud dojde k chybě, která zanechá prostředí ve stavu, ve kterém už nemůžete provést autentizaci, je k dispozici možnost vrácení zpět.
Otevřete relaci Windows PowerShellu se zvýšenými oprávněními a spusťte následující příkazy:
$creds = Get-Credential Enter-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
Pak spusťte následující cmdlet:
Reset-DatacenterIntegrationConfiguration
Po spuštění akce vrácení zpět se všechny změny konfigurace vrátí zpět. Pouze ověření integrovaným uživatelem CloudAdmin je možné.
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 cmdletů selže, můžete pomocí cmdletu Get-Azurestacklogs
shromáždit další protokoly.
Otevřete relaci Windows PowerShellu se zvýšenými oprávněními a spusťte následující příkazy:
$creds = Get-Credential Enter-pssession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
Poté spusťte následující cmdlet:
Get-AzureStackLog -OutputPath \\myworkstation\AzureStackLogs -FilterByRole ECE