Integrowanie AD FS tożsamości z Azure Stack Hub centrum danych

Możesz wdrożyć Azure Stack Hub przy użyciu Azure Active Directory (Azure AD) lub Active Directory Federation Services (AD FS) jako dostawcy tożsamości. Wybór należy podjąć przed wdrożeniem Azure Stack Hub. W scenariuszu połączonym możesz wybrać usługę Azure AD lub AD FS. W scenariuszu bez połączenia obsługiwane AD FS tylko sieci. W tym artykule pokazano, jak zintegrować Azure Stack Hub AD FS z centrum danych AD FS.

Ważne

Nie można przełączyć dostawcy tożsamości bez ponownego Azure Stack Hub rozwiązania.

Active Directory Federation Services i Graph

Wdrażanie za pomocą AD FS umożliwia tożsamościom w istniejącym lesie usługi Active Directory uwierzytelnianie za pomocą zasobów w Azure Stack Hub. Ten istniejący las usługi Active Directory wymaga wdrożenia AD FS, aby umożliwić tworzenie relacji zaufania AD FS federacji.

Uwierzytelnianie jest jedną z części tożsamości. Aby zarządzać kontrolą dostępu opartą na rolach (RBAC) w Azure Stack Hub, Graph musi być skonfigurowany. Gdy dostęp do zasobu jest delegowany, składnik Graph wyszukuje konto użytkownika w istniejącym lesie usługi Active Directory przy użyciu protokołu LDAP.

Azure Stack Hub AD FS architektury

Istniejąca AD FS to usługa tokenu zabezpieczającego konta (STS), która wysyła oświadczenia do Azure Stack Hub AD FS (usługi STS zasobu). W Azure Stack Hub automatyzacja tworzy relację zaufania dostawcy oświadczeń z punktem końcowym metadanych dla istniejącej AD FS.

W istniejącym AD FS musi być skonfigurowana relacja zaufania jednostki zależnej. Ten krok nie jest wykonywane przez automatyzację i musi zostać skonfigurowany przez operatora. Punkt końcowy Azure Stack Hub VIP dla AD FS można utworzyć przy użyciu wzorca https://adfs.<Region>.<ExternalFQDN>/ .

Konfiguracja zaufania jednostki zależnej wymaga również skonfigurowania reguł przekształcania oświadczenia dostarczanych przez firmę Microsoft.

W przypadku Graph należy podać konto usługi z uprawnieniem "odczyt" w istniejącej usłudze Active Directory. To konto jest wymagane jako dane wejściowe dla automatyzacji w celu włączenia scenariuszy RBAC.

W ostatnim kroku dla domyślnej subskrypcji dostawcy jest konfigurowany nowy właściciel. To konto ma pełny dostęp do wszystkich zasobów po zalogowaniu się do Azure Stack Hub administratora.

Wymagania:

Składnik Wymaganie
Graph Microsoft Active Directory 2012/2012 R2/2016 2019
AD FS Windows Server 2012/2012 R2/2016 2019

Konfigurowanie Graph integracji

Graph obsługuje tylko integrację z pojedynczym lasem usługi Active Directory. Jeśli istnieje wiele lasów, tylko las określony w konfiguracji będzie używany do pobierania użytkowników i grup.

Następujące informacje są wymagane jako dane wejściowe dla parametrów automatyzacji:

Parametr Parametr arkusza wdrożenia Opis Przykład
CustomADGlobalCatalog AD FS FQDN lasu FQDN docelowego lasu usługi Active Directory, z którym chcesz się zintegrować Contoso.com
CustomADAdminCredentials Użytkownik z uprawnieniem do odczytu LDAP YOURDOMAIN\graphservice

Konfigurowanie lokacji usługi Active Directory

W przypadku wdrożeń usługi Active Directory mających wiele lokacji skonfiguruj najbliższą lokację usługi Active Directory Azure Stack Hub wdrożenia. Konfiguracja pozwala uniknąć konieczności rozpoznawania Azure Stack Hub Graph rozpoznawania zapytań przy użyciu serwera wykazu globalnego z lokacji zdalnej.

Dodaj podsieć Azure Stack Hub publicznych adresów VIP do lokacji usługi Active Directory znajdującej się najbliżej Azure Stack Hub. Załóżmy na przykład, że usługa Active Directory ma dwie lokacje: Seattle i Redmond. Jeśli Azure Stack Hub w lokacji Seattle, należy dodać podsieć sieci publicznych adresów VIP Azure Stack Hub do lokacji usługi Active Directory dla Seattle.

Aby uzyskać więcej informacji na temat lokacji usługi Active Directory, zobacz Projektowanie topologii lokacji.

Uwaga

Jeśli usługa Active Directory składa się z jednej lokacji, możesz pominąć ten krok. Jeśli skonfigurowano podsieć catch-all, sprawdź, czy Azure Stack Hub sieci publicznych adresów VIP nie jest jej częścią.

Tworzenie konta użytkownika w istniejącej usłudze Active Directory (opcjonalnie)

Opcjonalnie możesz utworzyć konto dla usługi Graph w istniejącej usłudze Active Directory. Wykonaj ten krok, jeśli nie masz jeszcze konta, którego chcesz użyć.

  1. W istniejącej usłudze Active Directory utwórz następujące konto użytkownika (zalecenie):

    • Nazwa użytkownika: graphservice
    • Hasło: użyj silnego hasła i skonfiguruj hasło tak, aby nigdy nie wygasało.

    Nie są wymagane żadne specjalne uprawnienia ani członkostwo.

Wyzwalanie automatyzacji w celu skonfigurowania grafu

W tej procedurze użyj komputera w sieci centrum danych, który może komunikować się z uprzywilejowanym punktem końcowym w Azure Stack Hub.

  1. Otwórz sesję Windows PowerShell z podwyższonym poziomem uprawnień (uruchom jako administrator) i połącz się z adresem IP uprzywilejowanego punktu końcowego. Użyj poświadczeń dla usługi CloudAdmin do uwierzytelniania.

    $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. Teraz, gdy masz sesję z uprzywilejowanym punktem końcowym, uruchom następujące polecenie:

    Uruchom poniższy skrypt dla kompilacji Azure Stack Hub 2008 i nowszej

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

    Uruchom poniższy skrypt dla kompilacji Azure Stack Hub przed 2008 r.

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

    Po wyświetleniu monitu określ poświadczenia dla konta użytkownika, które ma być używane dla usługi Graph (na przykład graphservice). Dane wejściowe polecenia cmdlet Register-DirectoryService musi być nazwą lasu/domeną główną w lesie, a nie dowolną inną domeną w lesie.

    Ważne

    Poczekaj na wyskakujące okienko poświadczeń (get-credential nie jest obsługiwane w uprzywilejowanym punkcie końcowym) i wprowadź poświadczenia konta Graph Service.

  3. Polecenie cmdlet Register-DirectoryService ma opcjonalne parametry, których można użyć w niektórych scenariuszach, w których walidacja istniejącej usługi Active Directory kończy się niepowodzeniem. Gdy to polecenie cmdlet jest wykonywane, sprawdza, czy podaną domeną jest domena główna, można uzyskać dostęp do serwera wykazu globalnego i że podane konto ma przyznany dostęp do odczytu.

    Parametr Opis
    SkipRootDomainValidation Określa, że zamiast zalecanej domeny głównej musi być używana domena podrzędna.
    ValidateParameters Pomija wszystkie testy weryfikacyjne.

Graph i porty

Graph w usłudze Azure Stack Hub używa następujących protokołów i portów do komunikowania się z zapisywalnym serwerem wykazu globalnego (GC) i centrum centrum dystrybucji kluczy (KDC), które mogą przetwarzać żądania logowania w docelowym lesie usługi Active Directory.

Graph w usłudze Azure Stack Hub używa następujących protokołów i portów do komunikowania się z docelową usługą Active Directory:

Typ Port Protokół
LDAP 389 TCP & UDP
LDAP SSL 636 TCP
LDAP GC 3268 TCP
LDAP GC SSL 3269 TCP

Konfigurowanie integracji AD FS przez pobranie metadanych federacji

Następujące informacje są wymagane jako dane wejściowe dla parametrów automatyzacji:

Parametr Parametr arkusza wdrożenia Opis Przykład
CustomAdfsName AD FS nazwa dostawcy Nazwa dostawcy oświadczeń.
Wygląda to tak na AD FS docelowej.
Contoso
CustomAD
FSFederationMetadataEndpointUri
AD FS URI metadanych Link metadanych federacji. https: / /ad01.contoso.com/federationmetadata/2007-06/federationmetadata.xml
SigningCertificateRevocationCheck NA Opcjonalny parametr pomijania sprawdzania listy CRL. Brak

Wyzwalanie automatyzacji w celu skonfigurowania zaufania dostawcy oświadczeń w Azure Stack Hub

W tej procedurze należy użyć komputera, który może komunikować się z uprzywilejowanym punktem końcowym w Azure Stack Hub. Oczekuje się, że certyfikat używany przez konto usługi STS AD FS jest zaufany przez Azure Stack Hub.

  1. Otwórz sesję Windows PowerShell z podwyższonym poziomem uprawnień i połącz się z uprzywilejowanym punktem końcowym.

    $creds = Get-Credential
    Enter-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Teraz, gdy masz połączenie z uprzywilejowanym punktem końcowym, uruchom następujące polecenie przy użyciu parametrów odpowiednich dla twojego środowiska:

    Register-CustomAdfs -CustomAdfsName Contoso -CustomADFSFederationMetadataEndpointUri https://win-SQOOJN70SGL.contoso.com/federationmetadata/2007-06/federationmetadata.xml
    
  3. Uruchom następujące polecenie, aby zaktualizować właściciela domyślnej subskrypcji dostawcy przy użyciu parametrów odpowiednich dla Twojego środowiska:

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

Konfigurowanie integracji AD FS przez udostępnienie pliku metadanych federacji

Począwszy od wersji 1807, użyj tej metody, jeśli jeden z następujących warunków jest prawdziwy:

  • Łańcuch certyfikatów różni się dla AD FS w porównaniu ze wszystkimi innymi punktami końcowymi w Azure Stack Hub.
  • Nie ma łączności sieciowej z istniejącym serwerem AD FS z Azure Stack Hub wystąpienia AD FS serwera.

Następujące informacje są wymagane jako dane wejściowe dla parametrów automatyzacji:

Parametr Opis Przykład
CustomAdfsName Nazwa dostawcy oświadczeń. Wygląda to tak na AD FS docelowej. Contoso
CustomADFSFederationMetadataFileContent Zawartość metadanych. $using:federationMetadataFileContent

Tworzenie pliku metadanych federacji

W przypadku poniższej procedury należy użyć komputera, który ma łączność sieciową z istniejącym wdrożeniem usługi AD FS, które staje się kontem usługi STS. Należy również zainstalować niezbędne certyfikaty.

  1. Otwórz sesję Windows PowerShell podwyższonym poziomem uprawnień i uruchom następujące polecenie przy użyciu parametrów odpowiednich dla twojego środowiska:

     $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. Skopiuj plik metadanych na komputer, który może komunikować się z uprzywilejowanym punktem końcowym.

Wyzwalanie automatyzacji w celu skonfigurowania zaufania dostawcy oświadczeń w Azure Stack Hub

W tej procedurze użyj komputera, który może komunikować się z uprzywilejowanym punktem końcowym w programie Azure Stack Hub i ma dostęp do pliku metadanych utworzonego w poprzednim kroku.

  1. Otwórz sesję Windows PowerShell z podwyższonym poziomem uprawnień i połącz się z uprzywilejowanym punktem końcowym.

    $federationMetadataFileContent = get-content c:\metadata.xml
    $creds=Get-Credential
    Enter-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Teraz, gdy masz połączenie z uprzywilejowanym punktem końcowym, uruchom następujące polecenie przy użyciu parametrów odpowiednich dla twojego środowiska:

    Register-CustomAdfs -CustomAdfsName Contoso -CustomADFSFederationMetadataFileContent $using:federationMetadataFileContent
    
  3. Uruchom następujące polecenie, aby zaktualizować właściciela domyślnej subskrypcji dostawcy. Użyj parametrów odpowiednich dla Twojego środowiska.

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

    Uwaga

    W przypadku rotacji certyfikatu na istniejącej AD FS (konto usługi STS) należy ponownie skonfigurować AD FS integracji. Integrację należy skonfigurować nawet wtedy, gdy punkt końcowy metadanych jest osiągalny lub został skonfigurowany przez podanie pliku metadanych.

Konfigurowanie jednostki zależnej dla istniejącego AD FS wdrożenia (konto usługi STS)

Firma Microsoft udostępnia skrypt, który konfiguruje zaufanie jednostki zależnej, w tym reguły przekształcania oświadczenia. Użycie skryptu jest opcjonalne, ponieważ można uruchamiać polecenia ręcznie.

Skrypt pomocnika można pobrać z Azure Stack Hub Tools na GitHub.

Jeśli zdecydujesz się ręcznie uruchomić polecenia, wykonaj następujące kroki:

  1. Skopiuj następującą zawartość do .txt (na przykład zapisanego jako c:\ClaimIssuanceRules.txt) w wystąpieniu AD FS lub członkowski farmy centrum danych:

    @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. Sprawdź, Windows jest włączone uwierzytelnianie oparte na formularzach dla ekstranetu i intranetu. Możesz sprawdzić, czy jest już włączona, uruchamiając następujące polecenie cmdlet:

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

    Uwaga

    Ciągi Windows agentów użytkownika obsługiwane przez zintegrowane uwierzytelnianie (WIA) mogą być nieaktualne dla wdrożenia usługi AD FS i mogą wymagać aktualizacji do obsługi najnowszych klientów. Więcej informacji na temat aktualizowania ciągów agentów użytkowników obsługiwanych przez usługę WIA można znaleźć w artykule Konfigurowanie uwierzytelniania opartego na formularzach intranetu dla urządzeń, które nie obsługują usługi WIA.

    Aby uzyskać instrukcje dotyczące włączania zasad uwierzytelniania opartego na formularzach, zobacz Konfigurowanie zasad uwierzytelniania.

  3. Aby dodać zaufanie jednostki zależnej, uruchom następujące polecenie Windows PowerShell na AD FS lub członka farmy. Pamiętaj, aby zaktualizować punkt AD FS i wskazać plik utworzony w kroku 1.

    Ważne

    W przypadku klientów Azure Stack Hub wersjach 2002 i nowszych w punkcie końcowym usług ADFS jest wymuszany Azure Stack Hub TLS 1.2. W związku z tym na serwerach usług ADFS klienta musi być również włączony serwer TLS 1.2. W przeciwnym razie podczas uruchamiania na hoście/farmie usług ADFS należącym do klienta wystąpi Add-ADFSRelyingPartyTrust następujący błąd:

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

    Dla 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
    

    Dla 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
    

    Ważne

    Należy użyć przystawki AD FS MMC, aby skonfigurować reguły autoryzacji wystawiania w przypadku korzystania z programu Windows Server 2012 lub 2012 R2 AD FS.

  4. W przypadku używania Internet Explorer lub przeglądarki Microsoft Edge do uzyskiwania dostępu do Azure Stack Hub należy zignorować powiązania tokenów. W przeciwnym razie próby logowania nie powiodą się. Na komputerze AD FS lub członkiem farmy uruchom następujące polecenie:

    Uwaga

    Ten krok nie ma zastosowania w przypadku używania Windows Server 2012 lub 2012 R2 AD FS. W takim przypadku można bezpiecznie pominąć to polecenie i kontynuować integrację.

    Set-AdfsProperties -IgnoreTokenBinding $true
    

Tworzenie spn

Istnieje wiele scenariuszy, które wymagają użycia nazwy głównej usługi (SPN) do uwierzytelniania. Poniżej przedstawiono kilka przykładów:

  • Użycie interfejsu wiersza polecenia platformy Azure AD FS wdrożenia Azure Stack Hub.
  • System Center Pakiet administracyjny dla Azure Stack Hub wdrożony za pomocą AD FS.
  • Dostawcy zasobów w Azure Stack Hub wdrażania za pomocą AD FS.
  • Różne aplikacje.
  • Wymagane jest logowanie nieinterakcyjne.

Ważne

AD FS obsługuje tylko interaktywne sesje logowania. Jeśli w scenariuszu zautomatyzowanym wymagane jest logowanie nieinterakcyjne, należy użyć spn.

Aby uzyskać więcej informacji na temat tworzenia głównej jednostki usługi, zobacz Create service principal for AD FS (Tworzenie jednostki usługi dla usługi AD FS).

Rozwiązywanie problemów

Wycofywanie konfiguracji

Jeśli wystąpi błąd, który pozostawia środowisko w stanie, w którym nie można już się uwierzytelnić, dostępna jest opcja wycofywania.

  1. Otwórz sesję Windows PowerShell podwyższonym poziomem uprawnień i uruchom następujące polecenia:

    $creds = Get-Credential
    Enter-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Następnie uruchom następujące polecenie cmdlet:

    Reset-DatacenterIntegrationConfiguration
    

    Po uruchomieniu akcji wycofywania wszystkie zmiany konfiguracji zostaną wycofane. Możliwe jest tylko uwierzytelnianie za pomocą wbudowanego użytkownika CloudAdmin.

    Ważne

    Należy skonfigurować oryginalnego właściciela domyślnej subskrypcji dostawcy.

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

Zbieranie dodatkowych dzienników

Jeśli którekolwiek z tych polecenia cmdlet nie powiedzie się, możesz zebrać dodatkowe dzienniki przy użyciu Get-Azurestacklogs polecenia cmdlet .

  1. Otwórz sesję Windows PowerShell podwyższonym poziomem uprawnień i uruchom następujące polecenia:

    $creds = Get-Credential
    Enter-pssession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Następnie uruchom następujące polecenie cmdlet:

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

Następne kroki

Integrowanie zewnętrznych rozwiązań do monitorowania