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.
Bereiche, M2M und APIs mit Ressourcenservern
Nachdem Sie eine Domain für Ihren Benutzerpool konfiguriert haben, stellt Amazon Cognito automatisch einen OAuth 2.0-Autorisierungsserver und eine gehostete Weboberfläche mit Anmelde- und Anmeldeseiten bereit, die Ihre App Ihren Benutzern präsentieren kann. Weitere Informationen finden Sie unter Vom Benutzerpool verwaltete Anmeldung. Sie können die Bereiche auswählen, die der Autorisierungsserver den Zugriffstoken hinzufügen soll. Bereiche autorisieren den Zugriff auf Ressourcenserver und Benutzerdaten.
Ein Ressourcenserver ist ein OAuth 2.0-API-Server. Um zugriffsgeschützte Ressourcen zu sichern, wird überprüft, ob Zugriffstoken aus Ihrem Benutzerpool die Bereiche enthalten, die die angeforderte Methode und den Pfad in der geschützten API autorisieren. Der Aussteller wird anhand der Token-Signatur, der Gültigkeit basierend auf der Token-Ablaufzeit und der Zugriffsebene basierend auf den Geltungsbereichen in Token-Ansprüchen verifiziert. Die Bereiche des Benutzerpools sind im scope
Anspruch auf Zugriffstoken enthalten. Weitere Informationen zu den Ansprüchen in Amazon-Cognito-Zugriffstoken finden Sie unter Das Zugriffstoken verstehen.
Mit Amazon Cognito können die Bereiche in Zugriffstoken den Zugriff auf externe Attribute APIs oder Benutzerattribute autorisieren. Sie können Zugriffstoken für lokale Benutzer, Verbundbenutzer oder Maschinenidentitäten ausgeben.
Themen
API-Autorisierung
Im Folgenden finden Sie einige Möglichkeiten, Anfragen APIs mit Amazon Cognito Cognito-Token zu autorisieren:
- Zugriffstoken
-
Wenn Sie einen Amazon Cognito Cognito-Autorisierer zu einer REST-API-Methodenanforderungskonfiguration hinzufügen, fügen Sie der Autorisierungskonfiguration Autorisierungsbereiche hinzu. Bei dieser Konfiguration akzeptiert Ihre API Zugriffstoken im
Authorization
Header und überprüft sie auf akzeptierte Bereiche. - ID-Token
-
Wenn Sie in Ihrer REST-API ein gültiges ID-Token an einen Amazon Cognito Cognito-Authorizer übergeben, akzeptiert API Gateway die Anfrage und leitet den Inhalt des ID-Tokens an das API-Backend weiter.
- Amazon Verified Permissions
-
Unter Verifizierte Berechtigungen haben Sie die Möglichkeit, einen API-verknüpften Richtlinienspeicher zu erstellen. Verified Permissions erstellt und weist einen Lambda-Autorisierer zu, der ID- oder Zugriffstoken aus Ihrem Anforderungsheader verarbeitet.
Authorization
Dieser Lambda-Autorisierer leitet Ihr Token an Ihren Richtlinienspeicher weiter, wo Verified Permissions es mit Richtlinien vergleicht und eine Entscheidung über das Zulassen oder Verweigern an den Autorisierer zurückgibt.
Weitere -Quellen
Machine-to-machine (M2M) -Autorisierung
Amazon Cognito unterstützt Anwendungen, die auf API-Daten mit Maschinenidentitäten zugreifen. Maschinenidentitäten in Benutzerpools sind vertrauliche Clients, die auf Anwendungsservern ausgeführt werden und eine Verbindung zu Remote-Computern herstellen. APIs Ihr Betrieb erfolgt ohne Benutzerinteraktion: geplante Aufgaben, Datenströme oder Asset-Updates. Wenn diese Clients ihre Anfragen mit einem Zugriffstoken autorisieren, führen sie eine Machine-to-Machine-Autorisierung (M2M) durch. Bei der M2M-Autorisierung ersetzt ein gemeinsam genutzter geheimer Schlüssel die Benutzeranmeldedaten bei der Zugriffskontrolle.
Eine Anwendung, die mit M2M-Autorisierung auf eine API zugreift, muss über eine Client-ID und einen geheimen Clientschlüssel verfügen. In Ihrem Benutzerpool müssen Sie einen App-Client erstellen, der die Gewährung von Client-Anmeldeinformationen unterstützt. Um Client-Anmeldeinformationen zu unterstützen, muss Ihr App-Client über einen geheimen Client-Schlüssel verfügen und Sie müssen über eine Benutzerpool-Domain verfügen. In diesem Ablauf fordert Ihre Computeridentität ein Zugriffstoken direkt von der anToken-Endpunkt. Sie können nur benutzerdefinierte Bereiche von Ressourcenservern in Zugriffstoken für die Gewährung von Client-Anmeldeinformationen autorisieren. Weitere Informationen zum Einrichten von App-Clients finden Sie unter. Anwendungsspezifische Einstellungen mit App-Clients
Das Zugriffstoken aus der Gewährung von Kundenanmeldedaten ist eine überprüfbare Aussage über die Vorgänge, die Sie Ihrer Computeridentität von einer API abfragen lassen möchten. Um mehr darüber zu erfahren, wie Zugriffstoken API-Anfragen autorisieren, lesen Sie weiter. Eine Beispielanwendung finden Sie unter Machine-to-Machine-Autorisierung auf Basis von Amazon Cognito und API Gateway mit AWS
CDK
Die M2M-Autorisierung hat ein Abrechnungsmodell, das sich von der Art und Weise unterscheidet, wie monatlich aktive Benutzer (MAUs) in Rechnung gestellt werden. Wenn für die Benutzerauthentifizierung Kosten pro aktivem Benutzer anfallen, spiegelt die M2M-Abrechnung die aktiven App-Clients mit Kundenanmeldedaten und das Gesamtvolumen der Token-Anfragen wider. Weitere Informationen finden Sie unter Amazon Cognito – Preise
Informationen zur Optimierung von Amazon Cognito Cognito-Vorgängen, die Ihre AWS Rechnung mit zusätzlichen Kosten belasten, finden Sie unterVerwalten von Kosten.
Grundlegendes zu Bereichen
Ein Bereich ist ein Zugriffsniveau, das eine App von einer Ressource anfordern kann. In einem Zugriffstoken in Amazon Cognito wird der Bereich durch das Vertrauen gesichert, das Sie mit Ihrem Benutzerpool geschaffen haben: ein vertrauenswürdiger Aussteller von Zugriffstoken mit einer bekannten digitalen Signatur. Benutzerpools können Zugriffstoken mit Bereichen generieren, die belegen, dass Ihr Kunde sein eigenes Benutzerprofil ganz oder teilweise verwalten kann oder Daten von einer Back-End-API abrufen darf. Amazon Cognito Cognito-Benutzerpools stellen Zugriffstoken mit dem reservierten API-Bereich, benutzerdefinierten Bereichen und OpenID Connect (OIDC) -Bereichen für Benutzerpools aus.
Der reservierte API-Bereich der Benutzerpools
Der aws.cognito.signin.user.admin
Bereich autorisiert Self-Service-Operationen für den aktuellen Benutzer in der Amazon Cognito Cognito-Benutzerpools-API. Er autorisiert den Inhaber eines Zugriffstokens, alle Informationen über den Träger abzufragen und zu aktualisieren, beispielsweise mit den Operationen und der API. GetUserUpdateUserAttributes Wenn Sie Ihren Benutzer mit der Benutzerpools-API in Amazon Cognito authentifizieren, ist dies der einzige Bereich, den Sie im Zugriffstoken erhalten. Dies ist auch der einzige Bereich, den Sie zum Lesen und Schreiben von Benutzerattributen benötigen, die der App-Client lesen und schreiben kann. Sie können diesen Bereich auch in Anfragen an Ihren Autorisieren des Endpunkts anfordern. Dieser Bereich allein reicht nicht aus, um Benutzerattribute von UserInfo-Endpunkt anzufordern. Für Zugriffstoken, die sowohl die Benutzerpool-API als auch userInfo
Anfragen für Ihre Benutzer autorisieren, müssen Sie beide Bereiche openid
und aws.cognito.signin.user.admin
in einer /oauth2/authorize
Anfrage anfordern.
Benutzerdefinierte Bereiche
Benutzerdefinierte Bereiche autorisieren Anfragen an externe APIs Objekte, die von Ressourcenservern geschützt werden. Sie können benutzerdefinierte Bereiche mit anderen Arten von Bereichen anfordern. Weitere Informationen zu benutzerdefinierten Bereichen finden Sie auf dieser Seite.
OpenID Connect (OIDC) -Bereiche
Wenn Sie Benutzer mit Ihrem Benutzerpool-Autorisierungsserver authentifizieren, auch mit verwalteter Anmeldung, müssen Sie Bereiche anfordern. Sie können lokale Benutzerpool-Benutzer und externe Verbundbenutzer auf Ihrem Amazon-Cognito-Autorisierungsserver authentifizieren. OIDC-Bereiche autorisieren Ihre App, Benutzerinformationen aus Ihrem Benutzerpool zu lesen. UserInfo-Endpunkt Das OAuth Modell, bei dem Sie Benutzerattribute vom userInfo
Endpunkt aus abfragen, kann Ihre App für eine große Anzahl von Anfragen nach Benutzerattributen optimieren. Der userInfo
-Endpunkt gibt Attribute auf einer Berechtigungsebene zurück, die durch die Bereiche im Zugriffstoken bestimmt wird. Sie können Ihren App-Client autorisieren, Zugriffstoken mit den folgenden OIDC-Bereichen auszugeben.
- openid
-
Der obligatorische Mindestbereich für OpenID-Connect-(OIDC)-Abfragen. Autorisiert das ID-Token, den unique-identifier-Anspruch
sub
und die Möglichkeit, andere Bereiche anzufordern.Anmerkung
Wenn Sie nur den
openid
-Bereich und keine anderen anfordern, enthalten Ihr Benutzerpool-ID-Token und IhreuserInfo
-Antwort Ansprüche für alle Benutzerattribute, die Ihr App-Client lesen kann. Bei Anfragenopenid
und anderen OIDC-Bereichen wieprofile
email
phone
, und ist der Inhalt des ID-Tokens und der UserInfo-Antwort auf die Einschränkungen der zusätzlichen Bereiche beschränkt.Beispielsweise würde eine Anfrage an Autorisieren des Endpunkts mit dem Parameter
scope=openid+email
ein ID-Token mitsub
,email
undemail_verified
zurückgeben. Das Zugriffs-Token aus dieser Anfrage gibt dieselben Attribute aus UserInfo-Endpunkt zurück. Eine Anfrage mit Parameterscope=openid
gibt alle vom Client lesbaren Attribute im ID-Token und aususerInfo
zurück. - Profil
-
Autorisiert alle Benutzerattribute, die der App-Client lesen kann.
-
Autorisiert die Benutzerattribute
email
undemail_verified
. Amazon Cognito gibtemail_verified
zurück wenn ein Wert explizit festgelegt wurde. - phone
-
Autorisiert die Benutzerattribute
phone_number
undphone_number_verified
.
Grundlegendes zu Ressourcenservern
Eine Ressourcenserver-API kann Zugriff auf die Informationen in einer Datenbank gewähren oder Ihre IT-Ressourcen steuern. Ein Amazon Cognito Cognito-Zugriffstoken kann den Zugriff auf APIs diesen Support OAuth 2.0 autorisieren. Amazon API Gateway REST bietet integrierte Unterstützung für APIs die Autorisierung mit Amazon Cognito Cognito-Zugriffstoken. Ihre App gibt das Zugriffstoken aus dem API-Aufruf an den Ressourcenserver weiter. Der Ressourcenserver untersucht das Zugriffstoken, um zu festzustellen, ob Zugriff gewährt werden soll.
Amazon Cognito wird möglicherweise in Zukunft das Schema der Zugriffstoken für Benutzerpools aktualisieren. Wenn Ihre App den Inhalt des Zugriffstokens analysiert, bevor sie es an eine API weitergibt, müssen Sie Ihren Code so anpassen, dass er Aktualisierungen des Schemas akzeptiert.
Benutzerdefinierte Bereiche werden von Ihnen definiert und erweitern die Autorisierungsfunktionen eines Benutzerpools auf Zwecke, die nichts mit dem Abfragen und Ändern von Benutzern und ihren Attributen zu tun haben. Wenn Sie zum Beispiel einen Ressourcenserver für Fotos haben, könnte er zwei Bereiche definieren: photos.read
für den Lesezugriff auf die Fotos und photos.write
für den Schreib-/Lesezugriff. Sie können eine API so konfigurieren, dass sie Zugriffstoken für die Autorisierung akzeptiert und HTTP GET
-Anforderungen für Zugriffstoken mit photos.read
im scope
-Anspruch sowie HTTP POST
-Anforderungen für Token mit photos.write
gewährt. Das sind benutzerdefinierte Bereiche.
Anmerkung
Ihr Ressourcenserver muss die Signatur und das Ablaufdatum des Zugriffstokens überprüfen, bevor Ansprüche innerhalb des Tokens verarbeitet werden. Weitere Informationen zur Verifizierung von Token finden Sie unter Verifizieren eines JSON-Web-Tokens. Weitere Informationen zur Verifizierung und Verwendung von Benutzerpool-Token finden Sie unter Integration von Amazon-Cognito-Benutzerpools mit API-Gateway
Übersicht
Mit Amazon Cognito können Sie OAuth 2.0-Ressourcenserver erstellen und ihnen benutzerdefinierte Bereiche zuordnen. Benutzerdefinierte Bereiche in einem Zugriffstoken autorisieren spezifische Aktionen in Ihrer API. Sie können jeden App-Client in Ihrem Benutzerpool autorisieren, benutzerdefinierte Bereiche von jedem Ihrer Ressourcenserver aus auszustellen. Ordnen Sie Ihre benutzerdefinierten Bereiche einem App-Client zu und fordern Sie diese Bereiche in Form von OAuth 2.0-Autorisierungscode-Erteilungen, impliziten Zuweisungen und Zuweisungen von Kundenanmeldedaten bei der an. Token-Endpunkt Amazon Cognito fügt dem scope
-Anspruch benutzerdefinierte Bereiche in einem Zugriffstoken hinzu. Ein Client kann das Zugriffstoken für seinen Ressourcenserver verwenden, der die Entscheidung über die Autorisierung basierend auf den im Token vorhandenen Bereichen trifft. Weitere Informationen über Zugriffstoken-Bereiche finden Sie unter Verwenden von Token mit Benutzerpools.

Zum Abrufen eines Zugriffstokens mit benutzerdefinierten Bereichen muss Ihre App eine Anfrage an den Token-Endpunkt senden, um einen Autorisierungscode einzulösen oder eine Berechtigung für Client-Anmeldeinformationen anzufordern. Bei der verwalteten Anmeldung können Sie auch benutzerdefinierte Bereiche in einem Zugriffstoken aus einer impliziten Gewährung anfordern.
Anmerkung
Weil sie für die interaktive Authentifizierung mit dem Benutzerpool als IdP konzipiert sind InitiateAuthund AdminInitiateAuthAnfragen nur einen scope
Anspruch im Zugriffstoken mit dem einzigen Wert erzeugen. aws.cognito.signin.user.admin
Verwalten der Ressourcenserver und benutzerdefinierten Bereiche
Beim Erstellen eines Ressourcenservers müssen Sie einen Ressourcenservernamen und eine Ressourcenserver-ID angeben. Für jeden Bereich, den Sie im Ressourcenserver erstellen, müssen Sie den Namen und die Beschreibung des Bereichs bereitstellen.
-
Name des Ressourcenservers: Ein Anzeigename für den Ressourcenserver, z. B.
Solar system object tracker
oderPhoto API
. -
Ressourcenserver-ID: Eine eindeutige ID für den Ressourcenserver. Die ID ist ein beliebiger Name, den Sie Ihrer API zuordnen, wie z. B.
solar-system-data
. Sie können längere IDs konfigurieren, wie z. B.https://solar-system-data-api.example.com
als direkteren Verweis auf API-URI-Pfade, aber längere Zeichenfolgen machen Zugriffstoken größer. -
Bereichsname: Der Wert, den Sie in Ihren
scope
-Ansprüchen haben wollen. Beispiel,sunproximity.read
. -
Beschreibung: Eine Kurzbeschreibung des Bereichs. Beispiel,
Check current proximity to sun
.
Amazon Cognito kann benutzerdefinierte Bereiche in Zugriffstoken für alle Benutzer einbeziehen, unabhängig davon, ob sie sich lokal in Ihrem Benutzerpool befinden oder mit einem externen Identitätsanbieter verbunden sind. Sie können die Bereiche für die Zugriffstoken Ihrer Benutzer während der Authentifizierungsabläufe mit dem OAuth 2.0-Autorisierungsserver, der die verwaltete Anmeldung beinhaltet, festlegen. Die Authentifizierung des Benutzers muss bei Autorisieren des Endpunkts beginnen, mit scope
als einem der Anforderungsparameter. Das folgende Format wird für Ressourcenserver empfohlen. Verwenden Sie als ID einen API-freundlichen Namen. Verwenden Sie für einen benutzerdefinierten Bereich die zu autorisierende Aktion.
resourceServerIdentifier
/scopeName
Sie haben beispielsweise einen neuen Asteroiden im Kuipergürtel entdeckt und möchten ihn über Ihre solar-system-data
-API registrieren. Der Bereich, der Schreiboperationen in die Asteroidendatenbank autorisiert, ist asteroids.add
. Wenn Sie das Zugriffstoken anfordern, das Sie zur Registrierung Ihrer Entdeckung berechtigt, formatieren Sie Ihren scope
-HTTPS-Anforderungsparameter als scope=solar-system-data/asteroids.add
.
Durch das Löschen eines Bereichs von einem Ressourcenserver wird nicht die Zuordnung zu allen Clients gelöscht. Stattdessen wird der Geltungsbereich als inaktiv markiert. Amazon Cognito fügt Zugriffstoken keine inaktiven Bereiche hinzu, verfährt jedoch ansonsten wie gewohnt, wenn Ihre App eines anfordert. Wenn Sie Ihrem Ressourcenserver den Gültigkeitsbereich zu einem späteren Zeitpunkt erneut hinzufügen, schreibt Amazon Cognito ihn erneut in das Zugriffstoken. Wenn Sie einen Bereich anfordern, den Sie Ihrem App-Client nicht zugeordnet haben, schlägt die Authentifizierung unabhängig davon fehl, ob Sie ihn vom Ressourcenserver Ihres Benutzerpools gelöscht haben.
Sie können die AWS Management Console API oder die CLI verwenden, um Ressourcenserver und Bereiche für Ihren Benutzerpool zu definieren.
Definition eines Ressourcenservers für Ihren Benutzerpool (AWS Management Console)
Sie können den verwenden AWS Management Console , um einen Ressourcenserver für Ihren Benutzerpool zu definieren.
Definieren eines Ressourcenservers
-
Melden Sie sich bei der Amazon Cognito-Konsole
an. -
Wählen Sie im Navigationsbereich User Pools (Benutzerpools) aus und anschließend den Benutzerpool, den Sie bearbeiten möchten.
-
Wählen Sie das Domain-Menü unter Branding und suchen Sie nach Ressourcenservern.
-
Wählen Sie Create a resource server (Ressourcenserver erstellen) aus.
-
Geben Sie einen Name für den Ressourcenserver ein. Beispiel,
Photo Server
. -
Geben Sie eine ID für den Ressourcenserver ein. Beispiel,
com.example.photos
. -
Geben Sie benutzerdefinierte Bereiche für Ihre Ressourcen ein, z. B.
read
undwrite
. -
Geben Sie für jeden der Bereichsnamen eine Beschreibung ein, z. B.
view your photos
undupdate your photos
. -
Wählen Sie Create (Erstellen) aus.
Ihre benutzerdefinierten Bereiche können im Menü Domäne unter Ressourcenserver in der Spalte Benutzerdefinierte Bereiche überprüft werden. Benutzerdefinierte Bereiche können für App-Clients im Menü App-Clients unter Anwendungen aktiviert werden. Wählen Sie einen App-Client aus, suchen Sie nach Anmeldeseiten und wählen Sie Bearbeiten. Fügen Sie benutzerdefinierte Bereiche hinzu und wählen Sie Save changes (Änderungen speichern) aus.
Definieren Sie einen Ressourcenserver für Ihren Benutzerpool (AWS CLI und Ihre AWS API)
Verwenden Sie die folgenden Befehle für die Angabe von Einstellungen der Ressourcenserver für Ihren Benutzerpool.
Erstellen eines Ressourcenservers
-
AWS CLI:
aws cognito-idp create-resource-server
-
AWS API: CreateResourceServer
Informationen über die Einstellungen Ihres Ressourcenservers abrufen
-
AWS CLI:
aws cognito-idp describe-resource-server
-
AWS API: DescribeResourceServer
Informationen über alle Ressourcenserver für Ihren Benutzerpool auflisten
-
AWS CLI:
aws cognito-idp list-resource-servers
-
AWS API: ListResourceServers
Einen Ressourcenserver löschen
-
AWS CLI:
aws cognito-idp delete-resource-server
-
AWS API: DeleteResourceServer
Die Einstellungen für einen Ressourcenserver aktualisieren
-
AWS CLI:
aws cognito-idp update-resource-server
-
AWS API: UpdateResourceServer