Einrichtung eines SAML Anbieters als Identitätspool-IdP - Amazon Cognito

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. Weitere Informationen finden Sie AWS im IAMBenutzerhandbuch unter Integration von Drittanbietern für SAML Lösungen.

So fügen Sie einen SAML Identitätsanbieter (IdP) hinzu
  1. Wählen Sie Identitätspools in der Amazon-Cognito-Konsole aus. Wählen Sie einen Identitätspool.

  2. Wählen Sie die Registerkarte Datenzugriff aus.

  3. Wählen Sie Identitätsanbieter hinzufügen aus.

  4. Wählen Sie SAML.

  5. 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.

  6. 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.

    1. 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.

      1. 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.

      2. 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.

  7. 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.

    1. Um keine Prinzipal-Tags anzuwenden, wählen Sie Inaktiv aus.

    2. Wählen Sie Standardzuordnungen verwenden, um Prinzipal-Tags auf der Grundlage von sub- und aud-Anforderungen anzuwenden.

    3. 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.

  8. 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 verwenden. Der nächste Schritt besteht darin, die SAML Assertion-Antwort Ihres IdP so zu konfigurieren, dass die benötigten Ansprüche aufgefüllt werden. AWS Einzelheiten zur Konfiguration von Ansprüchen finden Sie unter Konfiguration von SAML Assertionen für die Authentifizierungsantwort.

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"; }