Verwenden des AD Federation Service zum Autorisieren von AWS-Benutzern mit Verteilung von Rechten

Kostenlose Übersetzung von Jeff Wierers Artikel " Aktivieren der Föderation zu AWS mithilfe von Windows Active Directory, ADFS und SAML 2.0 " mit Ergänzungen und Erläuterungen.

1. Die Quelldaten
2. Vorbereitung
3. AD-Konfiguration
4. Installieren Sie ADFS
5. ADFS konfigurieren
6. Konfigurieren von AWS
7. Testen
8. Bekannte Fehler und ihre Lösungen



1. Die Quelldaten

AD Windows 2016 ausgelöst
Der Autor verwendete EC2 von Windows 2008R2 bei Amazon. Ich habe eine virtuelle Maschine im lokalen Windows 2016-Netzwerk mit Internetzugang.
AWS-Konto (das für alles bezahlt)
Gerade Arme
Zweck: Damit sich der AD-Benutzer abhängig von der AD-Gruppe mit den angegebenen Rechten bei AWS anmelden kann (um eine Rolle zu erhalten).

Schema:



1. Der Benutzer (wird Bob sein) öffnet die Seite (https://ADFS.domain.name/adfs/ls/IdpInitiatedSignOn.aspx)

2. Bob ist autorisiert (ADFS fordert die erforderlichen Felder in AD an)

3. Bobs Browser empfängt die erforderlichen Daten im SAML-Format von ADFS

4. Der Browser sendet die empfangenen Daten an den SAML-Autorisierungsdienst (https://signin.aws.amazon.com/saml).

5. Bob Browser Ruft die Anmelde-URL für die AWS-Konsole ab

2. Vorbereitung

2.1. Sie haben bereits AD ausgelöst und Benutzer gestartet, die sich in verschiedenen Gruppen befinden.

2.2. Erhöhter IIS ( So erhöhen Sie die Rolle des IIS )

2.3. Generieren Sie ein selbstsigniertes SSL-Zertifikat. ( So generieren Sie ein selbstsigniertes SSL-Zertifikat ) Installieren Sie es sofort für die Standardwebsite.

3. AD-Konfiguration

3.1. Sie müssen zwei Gruppen AWS-Production und AWS-Billing erstellen

3.2. Benutzer Bob erstellen (Achtung !!! Der Benutzer muss das E-Mail-Feld ausfüllen: bob@youdomain.com, andernfalls wird beim Aufrufen der AWS-Konsole eine Fehlermeldung angezeigt.)

3.3. Fügen Sie Bob zu den erstellten AWS-Produktions- und AWS-Abrechnungsgruppen hinzu

3.4. Erstellen Sie einen anderen ADFSSVC-Benutzer. Spezielles Dienstkonto für die Verbindung zu AD.

4. Installieren Sie ADFS

Es gibt verschiedene Versionen von ADFS

  • ADFS 1.0 - Windows Server 2003 R2 (zusätzlicher Download)
  • ADFS 1.1 - Windows Server 2008 und Windows Server 2008 R2
  • ADFS 2.0 - Windows Server 2008 und Windows Server 2008 R2 (Download von Microsoft.com)
  • ADFS 2.1 - Windows Server 2012
  • ADFS 3.0 - Windows Server 2012 R2 [5]

  • ADFS 4.0 - Windows Server 2016 - Unsere Wahl
  • ADFS 5.0 - Windows Server 2019

Der Autor lädt ADFS v2 herunter und installiert es.
Wir werden die Rolle von ADFS erhöhen
Es gibt dort keine Schwierigkeiten, drei Screenshots helfen Ihnen, auf die Schaltfläche Weiter> zu klicken

Screenshots
Bild
Bild
Bild
Ich habe es bereits installiert, so dass es ein bisschen anders aussieht.
Weiter, Weiter, Installieren ...

5. ADFS konfigurieren

Über diesen Link können Sie den ADFS-Konfigurator aufrufen

Bild

Bild

Bild

Stellen Sie mit dem aktuellen Benutzer eine Verbindung zu AD her.

Bild

Hier benötigen wir das Zertifikat, das wir in IIS (Abschnitt 2.3) generiert haben, und den Namen unseres zukünftigen ADFS (adfs.you-domain.com). Die Anzeigezeile lautet NAME YOUR COMPANY

Bild

Wir wählen das Dienstkonto ADFSSVC aus , das wir in Abschnitt 3.4 erstellt haben

Bild

Erstellen Sie eine neue Datenbank

Bild

Überprüfen ...

Bild
Überprüfung vor der Installation ... Klicken Sie auf Konfigurieren

Bild

Fertig.

Die Konsole sucht zunächst im Windows-Suchbegriff nach "AD-Verwaltung".

Bild

Bild

Gehen Sie als Nächstes zu Vertrauensbeziehungen und wählen Sie Vertrauensstellungen für vertrauende Parteien

Rechte Taste -> Vertrauenswürdiges Vertrauen hinzufügen

Bild

Auswahl von Ansprüchen bewusst

Bild

Wählen Sie "Daten importieren, die die vertrauende Partei online veröffentlicht hat ..." und geben Sie die Zeile https://signin.aws.amazon.com/static/saml-metadata.xml Sie ist für alle gleich und wird von AWS bereitgestellt.

Bild

Fahren Sie den Namen " AWS GO " nach eigenem Ermessen oder lassen Sie ihn unverändert.

Bild

Wir wählen "Alle Benutzer zulassen ...". Der Zugriff ist für alle zulässig.

Bild

Erneut prüfen und fertig.

Bild

Klicken Sie mit der rechten Maustaste auf unsere Relais und wählen Sie "Anspruchsausgaberichtlinie bearbeiten".

Bild

Wir fangen an, unsere Regeln hinzuzufügen:

5.1 Einen Benutzernamen erhalten. Vorlage: Transformieren Sie einen eingehenden Anspruch und füllen Sie die folgenden Felder aus:

a. Name der Anspruchsregel: NameId
b. Typ des eingehenden Anspruchs: Windows-Kontoname
c. Typ des ausgehenden Anspruchs: Name ID
d. ID-Format für ausgehende Namen: Persistent Identifier
e. Alle Anspruchswerte durchlaufen: geprüft

Bild

Fertig.

5.2 Abrufen einer Rollenliste für den Benutzer. Vorlage: LDAP-Attribute als Ansprüche senden ,

Bild

Felder:

a. Name der Anspruchsregel: RoleSessionName
b. Attributspeicher: Active Directory
c. LDAP-Attribut: E-Mail-Adressen
d. Typ des ausgehenden Anspruchs:

 https://aws.amazon.com/SAML/Attributes/RoleSessionName 

Bild

Fertig

5.3 Wichtiger Hinweis: In dieser Regel werden alle Rollen für den Benutzer extrahiert und ähnlichen Rollen im IAM zugeordnet (dh Rollen, die mit AWS -... beginnen). Diese Regel ruft alle AD-Mitgliedschaften ab. Vorlage: Senden Sie Ansprüche mit einer benutzerdefinierten Regel

Bild

Felder
a. Name der Anspruchsregel: AD-Gruppen abrufen
b. Benutzerdefinierte Rolle:

 c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => add(store = "Active Directory", types = ("http://temp/variable"), query = ";tokenGroups;{0}", param = c.Value); 

Bild

Um die nächste Regel hinzuzufügen, müssen Sie nach Schritt 6 zurückkehren (oder Sie können sie hinzufügen und anschließend die ID ändern).

5.4 Fügen Sie eine weitere Regel wie 5.3 hinzu.

a. Name der Anspruchsregel: Roless
b. Benutzerdefinierte Rolle:

 c:[Type == "http://temp/variable", Value =~ "(?i)^AWS-"] => issue(Type = "https://aws.amazon.com/SAML/Attributes/Role", Value = RegExReplace(c.Value, "AWS-", "arn:aws:iam::123456789012:saml-provider/ADFS,arn:aws:iam::123456789012:role/ADFS-")); 

Bild

Hier müssen Sie den Wert 123456789012 von IAM AWS in Ihren eigenen ändern

Bild

Dies wird in Abschnitt 6 beschrieben.

6. Konfigurieren von AWS

Alle Aktionen finden in der AWS-Konsole statt :)

6.1 SAML-Provider erstellen

a. IAM -> Identitätsanbieter -> Anbieter erstellen
Anbietertyp - SAML
Anbietername - ADFS
Metadatendokument - Diese Kachel muss auf Ihrem FS-Server unter https:///FederationMetadata/2007-06/FederationMetadata.xml erstellt (heruntergeladen) werden
Wenn die Datei nicht verfügbar ist, lesen Sie Punkt 8 - Bekannte Fehler und ihre Lösungen

Bild

b. Erstellen Sie zwei Rollen für unsere Benutzer.
IAM-Rollen Rollen -> Rolle erstellen

Bild

Skizzieren Sie die erforderlichen Richtlinien (z. B. Abrechnung (Standardrichtlinie) für Benutzer, die das Geld überwachen, oder erstellen Sie Ihre eigene Richtlinie vorab und weisen Sie sie hier zu.)

Bild

ggf. Tags zuweisen ...

Bild

Geben Sie einen Namen ein: Der Name nach "-" muss mit dem Namen in AD nach "-" übereinstimmen. ASFS- Billing = AWS- Billing. In diesem Fall befindet sich Ihr Benutzer in der richtigen Gruppe.

Klicken Sie auf Rolle erstellen

Bild

7. Testen

7.1 https://localhost/adfs/ls/IdpInitiatedSignOn.aspx in Ihrem bevorzugten Browser zu Ihrer Serverseite https://localhost/adfs/ls/IdpInitiatedSignOn.aspx (ein selbstsigniertes Zertifikat muss bestätigt werden).

Eine Seite mit ähnlichem Inhalt wird geöffnet.

Bild

Geben Sie die Daten unseres Benutzers AD ein

Bild

Außerdem werden wir mit einem Vorschlag zur Rolle, unter der der Benutzer in AWS arbeiten wird, auf die AWS-Seite weitergeleitet

Bild

Dies liegt daran, dass sich unser Bob gleichzeitig in zwei AD-Gruppen befindet (AWS-Produktion und AWS-Abrechnung).

Wir wählen AWS-Abrechnung und sehen die erforderlichen Einstellungen (wir können das Budget anzeigen und bearbeiten, haben jedoch kein Recht, EC2 gemäß den Rollen zu erstellen, die wir dafür definiert haben).

Bild

8. Bekannte Fehler und ihre Lösungen

8.1 Das Portal antwortet nicht oder kann die erforderlichen Seiten nicht finden. Zum Beispiel:

 https://localhost/adfs/ls/IdpInitiatedSignOn.aspx 

Lösung: Auf dem ADFS-Server müssen Sie den PowerShell-Befehl ausführen

 Set-AdfsProperties -EnableIdPInitiatedSignonPage $true 

Sie können das Logo sofort auf die Begrüßungsseite setzen

 Set-AdfsWebTheme -TargetName default -Illustration @{path="C:\path\adfslogo.jpg"} 

8.2 Bei der Umleitung zur AWS-Konsole wird eine Fehlermeldung des Formulars angezeigt:

 RoleSessionName is required in AuthnResponse (Service: AWSSecurityTokenService; Status Code: 400; Error Code: InvalidIdentityToken; Request ID: e4ddf8cd-d7b7-11e9-8729-09c90d2561b0). Please try again 

Lösung: Höchstwahrscheinlich verfügt Ihr Benutzer in AD nicht über ein E-Mail-Feld

Bild

Lösung 2: Es liegt wahrscheinlich ein Fehler beim Schreiben der Gruppe in AD und der Rolle in AWS vor

Source: https://habr.com/ru/post/de466859/


All Articles