Arbeiten mit Amazon Cognito Cognito-Identitätsquellen - Amazon Verified Permissions

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.

Arbeiten mit Amazon Cognito Cognito-Identitätsquellen

Verified Permissions arbeitet eng mit Amazon Cognito Cognito-Benutzerpools zusammen. Amazon Cognito JWTs hat eine vorhersehbare Struktur. Verified Permissions erkennt diese Struktur und zieht den größtmöglichen Nutzen aus den darin enthaltenen Informationen. Sie können beispielsweise ein Autorisierungsmodell für die rollenbasierte Zugriffskontrolle (RBAC) implementieren, das entweder ID-Token oder Zugriffstoken verwendet.

Die Identitätsquelle eines neuen Amazon Cognito Cognito-Benutzerpools benötigt die folgenden Informationen:

  • Das AWS-Region.

  • Die Benutzerpool-ID.

  • Der Haupt-Entitätstyp, den Sie Ihrer Identitätsquelle zuordnen möchten, zum BeispielMyCorp::User.

  • Der Entitätstyp der Prinzipalgruppe, den Sie Ihrer Identitätsquelle zuordnen möchtenMyCorp::UserGroup.

  • Der Client IDs aus Ihrem Benutzerpool, den Sie autorisieren möchten, Anfragen an Ihren Richtlinienspeicher zu stellen.

Da Verified Permissions nur mit Amazon Cognito Cognito-Benutzerpools in demselben funktioniert AWS-Konto, können Sie keine Identitätsquelle in einem anderen Konto angeben. Verified Permissions legt beispielsweise das Entitätspräfix — die ID der Identitätsquelle, auf die Sie in Richtlinien verweisen müssen, die sich auf Benutzerpool-Prinzipale beziehen — auf die ID Ihres Benutzerpools fest. us-west-2_EXAMPLE In diesem Fall würden Sie auf einen Benutzer in diesem Benutzerpool mit der ID als verweisen a1b2c3d4-5678-90ab-cdef-EXAMPLE22222 us-west-2_EXAMPLE|a1b2c3d4-5678-90ab-cdef-EXAMPLE22222

Ansprüche auf Benutzerpool-Tokens können Attribute, Bereiche, Gruppen IDs, Client- und benutzerdefinierte Daten enthalten. Amazon Cognito JWTs kann eine Vielzahl von Informationen, die zu Autorisierungsentscheidungen beitragen können, in Verifizierte Berechtigungen aufnehmen. Dazu zählen:

  1. Nutzername und Gruppenansprüche mit einem Präfix cognito:

  2. Benutzerdefinierte Benutzerattribute mit einem custom: prefix

  3. Zur Laufzeit hinzugefügte benutzerdefinierte Ansprüche

  4. OIDC-Standardansprüche wie und sub email

Wir behandeln diese Ansprüche ausführlich und erfahren, wie sie verwaltet werden, in den Richtlinien für verifizierte Berechtigungen, unter. Zuordnen Amazon Cognito Cognito-Token zum Schema

Wichtig

Sie können Amazon Cognito Cognito-Token zwar vor ihrem Ablauf widerrufen, sie JWTs gelten jedoch als zustandslose Ressourcen, die eigenständig sind und über eine Signatur und Gültigkeit verfügen. Von Diensten, die dem JSON Web Token RFC 7519 entsprechen, wird erwartet, dass sie Token aus der Ferne validieren und müssen sie nicht beim Emittenten validieren. Das bedeutet, dass es verifizierten Berechtigungen möglich ist, Zugriff auf der Grundlage eines Tokens zu gewähren, das für einen Benutzer gesperrt oder ausgestellt und später gelöscht wurde. Um dieses Risiko zu minimieren, empfehlen wir Ihnen, Ihre Token mit der kürzest möglichen Gültigkeitsdauer zu erstellen und Aktualisierungstoken zu widerrufen, wenn Sie die Autorisierung zur Fortsetzung der Sitzung eines Benutzers entfernen möchten. Weitere Informationen finden Sie unter Benutzersitzungen mit Token-Widerruf beenden

Das folgende Beispiel zeigt, wie Sie eine Richtlinie erstellen könnten, die auf einige Ansprüche der Amazon Cognito Cognito-Benutzerpools verweist, die mit einem Prinzipal verknüpft sind.

permit( principal, action, resource == ExampleCo::Photo::"VacationPhoto94.jpg" ) when { principal["cognito:username"]) == "alice" && principal["custom:department"]) == "Finance" };

Das folgende Beispiel zeigt, wie Sie eine Richtlinie erstellen können, die auf einen Prinzipal verweist, der ein Benutzer in einem Cognito-Benutzerpool ist. Beachten Sie, dass die Prinzipal-ID die Form von "<userpool-id>|<sub>" hat.

permit( principal == ExampleCo::User::"us-east-1_example|a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", action, resource == ExampleCo::Photo::"VacationPhoto94.jpg" );

Die Richtlinien von Cedar für Identitätsquellen in Benutzerpools in Verified Permissions verwenden eine spezielle Syntax für Anspruchsnamen, die andere Zeichen als alphanumerische Zeichen und Unterstriche () _ enthalten. Dazu gehören auch Ansprüche auf Benutzerpool-Präfixe, die ein : Zeichen wie cognito:username und enthalten. custom:department Um eine Richtlinienbedingung zu schreiben, die auf den custom:department Anspruch cognito:username oder verweist, schreiben Sie sie jeweils als principal["cognito:username"] undprincipal["custom:department"].

Anmerkung

Wenn ein Token einen Anspruch mit dem custom: Präfix cognito: oder und einen Anspruchsnamen mit dem wörtlichen Wert cognito oder enthältcustom, schlägt eine Autorisierungsanfrage mit a IsAuthorizedWithTokenValidationExceptionfehl.

Weitere Informationen zur Zuordnung von Ansprüchen finden Sie unterZuordnen Amazon Cognito Cognito-Token zum Schema. Weitere Informationen zur Autorisierung für Amazon Cognito-Benutzer finden Sie unter Autorisierung mit von Amazon verifizierten Berechtigungen im Amazon Cognito Developer Guide.