Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Einrichtung eines SAML Anbieters als Identitätspool-IdP
Amazon Cognito unterstützt die Authentifizierung mit Identitätsanbietern (IdPs) über Security Assertion Markup Language 2.0 (SAML2.0). Sie können einen IdP verwenden, der Amazon Cognito unterstütztSAML, um Ihren Benutzern einen einfachen Onboarding-Ablauf zu bieten. Ihr SAML -unterstützender IdP spezifiziert die IAM Rollen, die Ihre Benutzer annehmen können. Auf diese Weise können verschiedene Benutzer verschiedene Berechtigungssätze erhalten.
Konfiguration Ihres Identitätspools für einen SAML IdP
In den folgenden Schritten wird beschrieben, wie Sie Ihren Identitätspool für die Verwendung eines SAML basierten IdP konfigurieren.
Anmerkung
Bevor Sie Ihren Identitätspool für die Unterstützung eines SAML Anbieters konfigurieren, konfigurieren Sie zunächst den SAML IdP in der IAMKonsole
So fügen Sie einen SAML Identitätsanbieter (IdP) hinzu
-
Wählen Sie Identitätspools in der Amazon-Cognito-Konsole
aus. Wählen Sie einen Identitätspool. -
Wählen Sie die Registerkarte Datenzugriff aus.
-
Wählen Sie Identitätsanbieter hinzufügen aus.
-
Wählen Sie SAML.
-
Wählen Sie einen SAMLIdentitätsanbieter aus Ihrem AWS-Konto. IAM IdPs Wenn Sie einen neuen SAML Anbieter hinzufügen möchten, wählen Sie Neuen Anbieter erstellen aus, um zur IAM Konsole zu navigieren.
-
Um die Rolle festzulegen, die Amazon Cognito bei der Ausgabe von Anmeldeinformationen an Benutzer anfordert, die sich bei diesem Anbieter authentifiziert haben, konfigurieren Sie die Rolleneinstellungen.
-
Sie können Benutzern dieses IdPs die Standardrolle zuweisen, die Sie bei der Konfiguration Ihrer authentifizierten Rolle eingerichtet haben, oder die Rolle mit Regeln wählen.
-
Wenn Sie Rolle mit Regeln wählen ausgewählt haben, geben Sie die Quell-Anforderung aus der Benutzerauthentifizierung, den Operator, mit dem Sie die Anforderung vergleichen möchten, den Wert, der zu einer Übereinstimmung mit dieser Rollenauswahl führt, und die Rolle ein, die Sie zuweisen möchten, wenn die Rollenzuweisung übereinstimmt. Wählen Sie Weitere hinzufügen aus, um eine zusätzliche Regel zu erstellen, die auf einer anderen Bedingung basiert.
-
Wählen Sie eine Rollenauflösung. Wenn die Anforderungen Ihres Benutzers nicht Ihren Regeln entsprechen, können Sie Anmeldeinformationen verweigern oder Anmeldeinformationen für Ihre Authentifizierte Rolle ausgeben.
-
-
-
Um die Prinzipal-Tags zu ändern, die Amazon Cognito Benutzern zuweist, wenn es Anmeldeinformationen an Benutzer ausgibt, die sich bei diesem Anbieter authentifiziert haben, konfigurieren Sie die Attribute für die Zugriffskontrolle.
-
Um keine Prinzipal-Tags anzuwenden, wählen Sie Inaktiv aus.
-
Wählen Sie Standardzuordnungen verwenden, um Prinzipal-Tags auf der Grundlage von
sub
- undaud
-Anforderungen anzuwenden. -
Um Ihr eigenes benutzerdefiniertes Schema von Attributen für Prinzipal-Tags zu erstellen, wählen Sie Benutzerdefinierte Zuordnungen verwenden. Geben Sie dann einen Tag-Schlüssel ein, den Sie aus jeder Anforderung beziehen möchten, die Sie in einem Tag repräsentieren möchten.
-
-
Wählen Sie Änderungen speichern aus.
Konfiguration Ihres SAML IdP
Nachdem Sie den SAML Anbieter erstellt haben, konfigurieren Sie Ihren SAML IdP so, dass zwischen Ihrem IdP und Vertrauen zwischen Ihrem IdP und hinzugefügt wird. AWS Bei vielen können Sie eine angeben IdPs, URL die der IdP verwenden kann, um Informationen und Zertifikate der vertrauenden Partei aus einem XML Dokument zu lesen. Für AWS können Sie https://signin.aws.amazon.com/static/saml-metadata.xml
Wenn Ihr SAML IdP mehr als ein Signaturzertifikat in SAML Metadaten enthält, stellt Ihr Benutzerpool bei der Anmeldung fest, dass die SAML Assertion gültig ist, wenn sie mit einem Zertifikat in den Metadaten übereinstimmt. SAML
Anpassen Ihrer Benutzerrolle mit SAML
Wenn Sie Amazon Cognito Identity verwendenSAML, können Sie die Rolle für den Endbenutzer anpassen. Amazon Cognito unterstützt nur den erweiterten Ablauf mit dem SAML basierten IdP. Sie müssen keine authentifizierte oder nicht authentifizierte Rolle angeben, damit der Identitätspool einen basierten IdP verwenden kann. SAML Das https://aws.amazon.com/SAML/Attributes/Role
Claim-Attribut gibt ein oder mehrere Paare von durch Kommas getrennten Rollen- und Anbieterpaaren an. ARN Dies sind die Rollen, die der Benutzer annehmen kann. Sie können den SAML IdP so konfigurieren, dass die Rollenattribute auf der Grundlage der vom IdP verfügbaren Benutzerattributinformationen aufgefüllt werden. Wenn Sie in der SAML Assertion mehrere Rollen erhalten, füllen Sie den optionalen customRoleArn
Parameter beim Aufruf aus. getCredentialsForIdentity
Der Benutzer geht davon aus, customRoleArn
wenn die Rolle einer Rolle im Anspruch in der SAML Assertion entspricht.
Benutzer mit einem SAML IdP authentifizieren
Um eine Verbindung mit dem SAML basierten IdP herzustellen, legen Sie fest, URL wo der Benutzer die Anmeldung initiiert. AWS Der Verband verwendet eine vom IDP initiierte Anmeldung. In AD FS 2.0 hat das die URL Form von. https://
<fqdn>
/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices
Um Unterstützung für Ihren SAML IdP in Amazon Cognito hinzuzufügen, authentifizieren Sie Benutzer zunächst über Ihre iOS- oder Android-Anwendung bei Ihrem SAML Identitätsanbieter. Der Code, den Sie für die Integration und Authentifizierung mit dem SAML IdP verwenden, ist anbieterspezifischSAML. Nachdem Sie Ihren Benutzer authentifiziert haben, können Sie Amazon Cognito verwenden, APIs um die resultierende SAML Bestätigung an Amazon Cognito Identity weiterzugeben.
Sie können eine SAML Assertion in der Logins
Map Ihrer Identitätspool-Anfrage nicht wiederholen oder erneut abspielen. API Eine wiedergegebene SAML Assertion hat eine Assertion-ID, die die ID einer früheren Anfrage dupliziert. API APIZu den Operationen, die eine SAML Assertion in der Logins
Map akzeptieren können, gehören GetId,, und. GetCredentialsForIdentityGetOpenIdTokenGetOpenIDTokenForDeveloperIdentity Sie können eine SAML Assertion-ID einmal pro API Anfrage in einem Identitätspool-Authentifizierungsablauf wiedergeben. Sie können beispielsweise dieselbe SAML Assertion in einer GetId
Anfrage und einer nachfolgenden GetCredentialsForIdentity
Anfrage angeben, jedoch nicht in einer zweiten Anfrage. GetId
Android
Wenn Sie Android verwendenSDK, können Sie die Login-Map wie folgt mit der SAML Assertion füllen.
Map logins = new HashMap(); logins.put("arn:aws:iam::aws account id:saml-provider/name", "base64 encoded assertion response"); // Now this should be set to CognitoCachingCredentialsProvider object. CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(context, identity pool id, region); credentialsProvider.setLogins(logins); // If SAML assertion contains multiple roles, resolve the role by setting the custom role credentialsProvider.setCustomRoleArn("arn:aws:iam::aws account id:role/customRoleName"); // This should trigger a call to the Amazon Cognito service to get the credentials. credentialsProvider.getCredentials();
iOS
Wenn Sie iOS verwendenSDK, können Sie die SAML Assertion AWSIdentityProviderManager
wie folgt angeben.
- (AWSTask<NSDictionary<NSString*,NSString*> *> *) logins { //this is hardcoded for simplicity, normally you would asynchronously go to your SAML provider //get the assertion and return the logins map using a AWSTaskCompletionSource return [AWSTask taskWithResult:@{@"arn:aws:iam::aws account id:saml-provider/name":@"base64 encoded assertion response"}]; } // If SAML assertion contains multiple roles, resolve the role by setting the custom role. // Implementing this is optional if there is only one role. - (NSString *)customRoleArn { return @"arn:aws:iam::accountId:role/customRoleName"; }