Konfigurieren von SAML-Assertionen für die Authentifizierungsreaktion
Nachdem Sie die Identität eines Benutzers in Ihrer Organisation überprüft haben, sendet der externe Identitätsanbieter (IdP) eine Authentifizierungsantwort an die AWS-Anmeldeendpunkt-URL. Diese Antwort ist eine POST-Anforderung, die ein SAML-Token enthält, das dem Standard für HTTP-POST-Bindungen für SAML 2.0
Wenn der Identitätsanbieter die Antwort mit den Ansprüche an AWS sendet, werden viele der eingehenden Ansprüche AWS-Kontextschlüsseln zugeordnet. Diese Kontextschlüssel können in IAM-Richtlinien mithilfe des Condition-Elements überprüft werden. Eine Liste der verfügbaren Zuordnungen folgt im Abschnitt Zuordnen von SAML-Attributen zu Kontextschlüsseln der AWS-Vertrauensrichtlinie.
Subject and NameID
Die Antwort muss genau ein SubjectConfirmation-Element mit einem SubjectConfirmationData-Element enthalten, das das NotOnOrAfter-Attribut und das Recipient-Attribut enthält. Das Empfänger-Attribut muss einen Wert enthalten, der der AWS-Anmeldeendpunkt-URL entspricht. Ihr Identitätsanbieter kann den Begriff ACS, Recipient oder Target verwenden, um auf dieses Attribut zu verweisen.
Wenn eine SAML-Verschlüsselung erforderlich ist, muss die Anmelde-URL die eindeutige Kennung enthalten, die AWS Ihrem SAML-Anbieter zuweist. Diese finden Sie auf der Detailseite des Identitätsanbieters. Das folgende Beispiel veranschaulicht das Format der Anmelde-URL mit dem optionalen region-code.
https://region-code.signin.aws.amazon.com/saml
Im folgenden Beispiel enthält die Anmelde-URL eine eindeutige Kennung, weshalb /acs/ an den Anmeldepfad angefügt werden muss.
https://region-code.signin.aws.amazon.com/saml/acs/IdP-ID
Eine Liste möglicher Werte für region-code finden Sie in der Spalte Region unter AWS Sign-In endpoints (-Anmelde-Endpunkte). Für den AWS-Wert können Sie auch den globalen Anmeldeendpunkt https://signin.aws.amazon.com/saml verwenden.
NameID-Elemente können den Wert „persistent“ oder „transient“ haben oder aus dem vollständigen Format-URI bestehen, der von der IDP-Lösung bereitgestellt wird. Der Wert „persistent“ gibt an, dass der Wert in NameID für einen Benutzer für alle Sitzungen identisch ist. Wenn der Wert „transient“ lautet, hat der Benutzer für jede Sitzung einen anderen NameID-Wert. Single-Sign-On-Interaktionen unterstützen die folgenden Arten von Identifikatoren:
-
urn:oasis:names:tc:SAML:2.0:nameid-format:persistent -
urn:oasis:names:tc:SAML:2.0:nameid-format:transient -
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress -
urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified -
urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName -
urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName -
urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos -
urn:oasis:names:tc:SAML:2.0:nameid-format:entity
Der folgende Auszug zeigt ein Beispiel. Ersetzen Sie die markierten Werte durch Ihre eigenen Werte.
<Subject> <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">_cbb88bf52c2510eabe00c1642d4643f41430fe25e3</NameID> <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <SubjectConfirmationData NotOnOrAfter="2013-11-05T02:06:42.876Z" Recipient="https://region-code.signin.aws.amazon.com/saml/SAMLSP4SHN3UIS2D558H46"/> </SubjectConfirmation> </Subject>
Wichtig
Der saml:aud-Kontextschlüssel stammt aus dem Empfänger-Attribut in SAML, da dies das SAML-Äquivalent zum OIDC-Zielgruppenfeld ist, z. B. accounts.google.com:aud.
PrincipalTag-SAML-Attribut
(Optional) Sie können ein Attribute-Element verwenden, bei dem das Name-Attribut auf https://aws.amazon.com/SAML/Attributes/PrincipalTag: festgelegt ist. Mit diesem Element können Sie Attribute als Sitzungs-Tags in der SAML-Zusicherung übergeben. Weitere Hinweise zu Sitzungs-Tags finden Sie unter Übergeben von Sitzungs-Tags in AWS STS.{TagKey}
Um Attribute als Sitzungs-Tags zu übergeben, schließen Sie das AttributeValue-Element ein, das den Wert des Tags angibt. Verwenden Sie zum Beispiel das folgende Attribut, um die Tag-Schlüssel-Wert-Paare Project = Marketing und CostCenter = 12345 zu übergeben. Fügen Sie für jedes Tag ein separates Attribute-Element hinzu.
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:Project"> <AttributeValue>Marketing</AttributeValue> </Attribute> <Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:CostCenter"> <AttributeValue>12345</AttributeValue> </Attribute>
Um die oben genannten Tags als transitiv festzulegen, schließen Sie ein weiteres Attribute-Element ein und legen dabei für das Attribut Name den Werthttps://aws.amazon.com/SAML/Attributes/TransitiveTagKeys fest. Dies ist ein optionales Mehrwertattribut, das Ihre Sitzungs-Tags als transitiv festlegt. Transitive Tags bleiben erhalten, wenn Sie die SAML-Sitzung verwenden, um eine andere Rolle in zu übernehmen AWS. Dies wird als Rollenverkettung bezeichnet. Um beispielsweise die Tags Principal und CostCenter als transitiv festzulegen, verwenden Sie das folgende Attribut, um die Schlüssel anzugeben.
<Attribute Name="https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys"> <AttributeValue>Project</AttributeValue> <AttributeValue>CostCenter</AttributeValue> </Attribute>
Role-SAML-Attribut
Sie können ein Attribute-Element verwenden, bei dem das Name-Attribut auf https://aws.amazon.com/SAML/Attributes/Role festgelegt ist. Dieses Element enthält mindestens ein AttributeValue-Element, das den IAM-Identitätsanbieter und die Rolle aufführt, denen der Benutzer von Ihrem Identitätsanbieter zugeordnet wird. Die IAM-Rolle und der IAM-Identitätsanbieter werden als durch Komma getrenntes Paar aus ARNs in demselben Format angegeben wie die RoleArn- und PrincipalArn-Parameter, die an AssumeRoleWithSAML übergeben werden. Dieses Element muss mindestens ein Rolle-Anbieter-Paar (AttributeValue-Element) enthalten und kann auch mehrere Paare enthalten. Wenn das Element mehrere Paare enthält, werden die Benutzer aufgefordert auszuwählen, welche Rolle übernommen werden soll, wenn sie sich mithilfe von WebSSO bei der AWS-Managementkonsole anmelden.
Wichtig
Beim Wert des Name-Attributs im Attribute-Tag ist die Groß-/Kleinschreibung zu beachten. Er muss ganz genau auf https://aws.amazon.com/SAML/Attributes/Role festgelegt werden.
<Attribute Name="https://aws.amazon.com/SAML/Attributes/Role"> <AttributeValue>arn:aws:iam::account-number:role/role-name1,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue> <AttributeValue>arn:aws:iam::account-number:role/role-name2,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue> <AttributeValue>arn:aws:iam::account-number:role/role-name3,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue> </Attribute>
RoleSessionName-SAML-Attribut
Sie können ein Attribute-Element verwenden, bei dem das Name-Attribut auf https://aws.amazon.com/SAML/Attributes/RoleSessionName festgelegt ist. Dieses Element enthält ein AttributeValue-Element, das einen Bezeichner für die temporären -Anmeldeinformationen bereitstellt, die für SSO ausgestellt werden. Damit können Sie die temporären Anmeldeinformationen dem Benutzer zuordnen, der Ihre Anwendung verwendet. Dieses Element wird verwendet, um Benutzerdaten in der anzuzeigen AWS-Managementkonsole. Der Wert des AttributeValue-Elements muss zwischen 2 und 64 Zeichen lang sein und darf nur alphanumerische Zeichen, Unterstriche und die folgenden Zeichen enthalten: . , + = @ - (Bindestrich). Er darf keine Leerzeichen enthalten. Der Wert ist in der Regel eine Benutzer-ID (john) oder eine E-Mail-Adresse (johndoe@example.com). Er sollte kein Wert sein, der ein Leerzeichen enthält, wie etwa der Anzeigename eines Benutzers (John Doe).
Wichtig
Beim Wert des Name-Attributs im Attribute-Tag ist die Groß-/Kleinschreibung zu beachten. Er muss ganz genau auf https://aws.amazon.com/SAML/Attributes/RoleSessionName festgelegt werden.
<Attribute Name="https://aws.amazon.com/SAML/Attributes/RoleSessionName"> <AttributeValue>user-id-name</AttributeValue> </Attribute>
SessionDuration-SAML-Attribut
(Optional) Sie können ein Attribute-Element verwenden, bei dem das Name-Attribut auf https://aws.amazon.com/SAML/Attributes/SessionDuration" festgelegt ist. Dieses Element enthält ein AttributeValue-Element, das angibt, wie lange der Benutzer auf die AWS-Managementkonsole zugreifen kann, bevor er neue temporäre Anmeldeinformationen anfordern muss. Der Wert ist eine Ganzzahl, die die Anzahl der Sekunden für die Sitzung angibt. Der Wert kann im Bereich zwischen 900 Sekunden (15 Minuten) und 43 200 Sekunden (12 Stunden) liegen. Wenn dieses Attribut nicht vorhanden ist, gelten die Anmeldeinformationen eine Stunde lang (der Standardwert des DurationSeconds-Parameters der AssumeRoleWithSAML-API).
Um dieses Attribut zu verwenden, müssen Sie den SAML-Anbieter so konfigurieren, dass ein Single Sign-on-Zugriff auf die AWS-Managementkonsole über den Web-Anmeldeendpunkt der Konsole über https:// bereitgestellt wird. Eine Liste möglicher Werte für region-code.signin.aws.amazon.com/samlregion-code finden Sie in der Spalte Region unter AWS Sign-In endpoints (-Anmelde-Endpunkte). Optional können Sie die folgende URL verwenden: https://signin.aws.amazon.com/static/saml. Beachten Sie, dass dieses Attribut nur Sitzungen in der verlängert AWS-Managementkonsole. Es kann nicht die Lebensdauer anderer Anmeldeinformationen verlängern. Wenn es jedoch in einem AssumeRoleWithSAML-API-Aufruf vorhanden ist, kann es verwendet werden, um die Dauer der Sitzung zu verkürzen. Die standardmäßige Gültigkeitsdauer der vom Aufruf zurückgegebenen Anmeldeinformationen beträgt 60 Minuten.
Beachten Sie außerdem: Wenn auch ein SessionNotOnOrAfter-Attribut definiert ist, bestimmt der niedrigere Wert der beiden Attribute, SessionDuration oder SessionNotOnOrAfter, die maximale Dauer der Konsolensitzung.
Wenn Sie Konsolensitzungen mit einer erweiterten Dauer aktivieren, steigt das Risiko, dass die Sicherheit der Anmeldeinformationen gefährdet wird. Um dieses Risiko zu minimieren, können Sie die aktiven Konsolensitzungen für jede Rolle direkt deaktivieren, indem Sie Revoke Sessions auf der Seite Role Summary in der IAM-Konsole wählen. Weitere Informationen finden Sie unter Temporäre Sicherheitsanmeldeinformationen der IAM-Rolle widerrufen.
Wichtig
Beim Wert des Name-Attributs im Attribute-Tag ist die Groß-/Kleinschreibung zu beachten. Er muss ganz genau auf https://aws.amazon.com/SAML/Attributes/SessionDuration festgelegt werden.
<Attribute Name="https://aws.amazon.com/SAML/Attributes/SessionDuration"> <AttributeValue>1800</AttributeValue> </Attribute>
SourceIdentity-SAML-Attribut
(Optional) Sie können ein Attribute-Element verwenden, bei dem das Name-Attribut auf https://aws.amazon.com/SAML/Attributes/SourceIdentity festgelegt ist. Dieses Element enthält ein AttributeValue-Element, das einen Identifikator für die Person oder Anwendung bereitstellt, die eine IAM-Rolle verwendet. Der Wert für die Quellidentität bleibt bestehen, wenn Sie die SAML-Sitzung verwenden, um eine andere Rolle in AWS anzunehmen, was als Rollenverkettung bezeichnet wird. Der Wert für die Quellidentität ist in der Anforderung für jede Aktion vorhanden, die während der Rollensitzung ausgeführt wird. Der festgelegte Wert kann während der Rollensitzung nicht geändert werden. Administratoren können dann AWS CloudTrail-Protokolle, um die Quellidentitätsinformationen zu überwachen und zu überwachen, um festzustellen, wer Aktionen mit freigegebenen Rollen ausgeführt hat.
Der Wert des AttributeValue-Elements muss zwischen 2 und 64 Zeichen lang sein und darf nur alphanumerische Zeichen, Unterstriche und die folgenden Zeichen enthalten: . , + = @ - (Bindestrich). Er darf keine Leerzeichen enthalten. Der Wert ist normalerweise ein Attribut, das dem Benutzer zugeordnet ist, z. B. eine Benutzer-ID (john) oder eine E-Mail-Adresse (johndoe@example.com) enthalten. Er sollte kein Wert sein, der ein Leerzeichen enthält, wie etwa der Anzeigename eines Benutzers (John Doe). Weitere Informationen zur Verwendung von identitätsbasierten Richtlinien finden Sie unter Überwachen und Steuern von Aktionen mit übernommenen Rollen.
Wichtig
Wenn Ihre SAML-Zusicherung für die Verwendung des SourceIdentity-Attributs konfiguriert ist, muss Ihre Vertrauensrichtlinie auch die sts:SetSourceIdentity-Aktion enthalten. Weitere Informationen zur Verwendung von identitätsbasierten Richtlinien finden Sie unter Überwachen und Steuern von Aktionen mit übernommenen Rollen.
Um ein Quellidentitätsattribut zu übergeben, schließen Sie das AttributeValue-Element ein, das den Wert der Quellidentität angibt. Um zum Beispiel die Quellidentität Diego zu übergeben, verwenden Sie das folgende Attribut.
<Attribute Name="https://aws.amazon.com/SAML/Attributes/SourceIdentity"> <AttributeValue>Diego</AttributeValue>
Zuordnen von SAML-Attributen zu Kontextschlüsseln der AWS-Vertrauensrichtlinie
Die Tabellen in diesem Abschnitt enthalten häufig genutzte SAML-Attribute und deren Zuordnung zu Bedingungskontextschlüsseln von Vertrauensrichtlinien in AWS. Mit diesen Schlüsseln können Sie den Zugriff auf eine Rolle steuern. Vergleichen Sie dazu die Schlüssel mit den Werten, die in den eine SAML-Zugriffsanforderung begleitenden Zusicherungen enthalten sind.
Wichtig
Diese Schlüssel sind nur in IAM-Vertrauensrichtlinien verfügbar (Richtlinien, die bestimmen, wer eine Rolle übernehmen kann) und gelten nicht für Berechtigungsrichtlinien.
In der Tabelle mit den eduPerson- und eduOrg-Attributen werden Werte entweder als Zeichenfolgen oder als Listen von Zeichenfolgen eingegeben. Bei Zeichenfolgenwerten können Sie diese Werte in IAM-Vertrauensrichtlinien mithilfe der StringEquals- oder der StringLike-Bedingung testen. Bei Werten, die eine Liste von Zeichenfolgen enthalten, können Sie die ForAnyValue- und ForAllValues -Richtlinienmengenoperatoren verwenden, um die Werte in Vertrauensrichtlinien zu testen.
Anmerkung
Sie sollten nur einen Anspruch pro AWS-Kontextschlüssel einfügen. Wenn Sie mehr als einen Anspruch einfügen, wird nur ein einziger Anspruch zugeordnet.
In der folgenden Tabelle werden die eduPerson- und eduOrg-Attribute angezeigt.
eduPerson- oder eduOrg-Attribut (Name-Schlüssel) |
Zuordnung zu diesem AWS-Kontextschlüssel (FriendlyName-Schlüssel) |
Typ |
|---|---|---|
|
|
|
Liste von Zeichenfolgen |
|
|
|
Liste von Zeichenfolgen |
|
|
|
String |
|
|
|
Liste von Zeichenfolgen |
|
|
|
String |
|
|
|
String |
|
|
|
Liste von Zeichenfolgen |
|
|
|
String |
|
|
|
Liste von Zeichenfolgen |
|
|
|
Liste von Zeichenfolgen |
|
|
|
Liste von Zeichenfolgen |
|
|
|
Liste von Zeichenfolgen |
|
|
|
Liste von Zeichenfolgen |
|
|
|
Liste von Zeichenfolgen |
|
|
|
Liste von Zeichenfolgen |
|
|
|
Liste von Zeichenfolgen |
|
|
|
Liste von Zeichenfolgen |
In der folgenden Tabelle sind die Active-Directory-Attribute aufgeführt.
| AD-Attribut | Zuordnung zu diesem AWS-Kontextschlüssel | Typ |
|---|---|---|
|
|
|
Zeichenfolge |
|
|
|
Zeichenfolge |
|
|
|
Zeichenfolge |
|
|
|
Zeichenfolge |
|
|
|
Zeichenfolge |
|
|
|
String |
In der folgenden Tabelle werden die X.500-Attribute aufgeführt.
| X.500-Attribut | Zuordnung zu diesem AWS-Kontextschlüssel | Typ |
|---|---|---|
|
|
|
Zeichenfolge |
|
|
|
Zeichenfolge |
|
|
|
Zeichenfolge |
|
|
|
Zeichenfolge |
|
|
|
Zeichenfolge |
|
|
|
Zeichenfolge |
|
|
|
String |