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.
Konfiguration eines externen Autorisierungsservers
Der Autorisierungsserver ist der Server, der für die Authentifizierung und Autorisierung des Clients SDKs und der Agenten verantwortlich ist.
Standardmäßig verwendet Session Manager den Broker als Autorisierungsserver, um OAuth 2.0-Zugriffstoken für Clients SDKs und Softwareanweisungen für Agenten zu generieren. Wenn Sie den Broker als Autorisierungsserver verwenden, ist keine zusätzliche Konfiguration erforderlich.
Sie können Session Manager so konfigurieren, dass Amazon Cognito anstelle des Brokers als externen Autorisierungsserver verwendet wird. Weitere Informationen zu Amazon Cognito finden Sie im Amazon Cognito Developer Guide.
So verwenden Sie Amazon Cognito als Autorisierungsserver
-
Erstellen Sie einen neuen Amazon Cognito Cognito-Benutzerpool. Weitere Informationen zu Benutzerpools finden Sie unter Funktionen von Amazon Cognito im Amazon Cognito Developer Guide.
Verwenden Sie den create-user-poolBefehl und geben Sie einen Poolnamen und die Region an, in der er erstellt werden soll.
In diesem Beispiel geben wir dem Pool einen Namen
dcv-session-manager-client-appund erstellen ihn inus-east-1.$aws cognito-idp create-user-pool --pool-namedcv-session-manager-client-app--regionus-east-1Beispielausgabe
{ "UserPoolClient": { "UserPoolId": "us-east-1_QLEXAMPLE", "ClientName": "dcv-session-manager-client-app", "ClientId": "15hhd8jij74hf32f24uEXAMPLE", "LastModifiedDate": 1602510048.054, "CreationDate": 1602510048.054, "RefreshTokenValidity": 30, "AllowedOAuthFlowsUserPoolClient": false } }Notieren Sie sich das
userPoolId, Sie werden es im nächsten Schritt benötigen. -
Erstellen Sie eine neue Domain für Ihren Benutzerpool. Verwenden Sie den create-user-pool-domainBefehl und geben Sie einen Domänennamen und den Namen
userPoolIddes Benutzerpools an, den Sie im vorherigen Schritt erstellt haben.In diesem Beispiel lautet der Domainname
mydomain-544fa30f-c0e5-4a02-8d2a-a3761EXAMPLEund wir erstellen ihn inus-east-1.$aws cognito-idp create-user-pool-domain --domainmydomain-544fa30f-c0e5-4a02-8d2a-a3761EXAMPLE--user-pool-idus-east-1_QLEXAMPLE--regionus-east-1Beispielausgabe
{ "DomainDescription": { "UserPoolId": "us-east-1_QLEXAMPLE", "AWSAccountId": "123456789012", "Domain": "mydomain-544fa30f-c0e5-4a02-8d2a-a3761EXAMPLE", "S3Bucket": "aws-cognito-prod-pdx-assets", "CloudFrontDistribution": "dpp0gtexample.cloudfront.net", "Version": "20201012133715", "Status": "ACTIVE", "CustomDomainConfig": {} } }Das Format der Benutzerpool-Domäne lautet wie folgt:
https://. In diesem Beispiel lautet die Benutzerpool-Domänedomain_name.auth.region.amazoncognito.comhttps://mydomain-544fa30f-c0e5-4a02-8d2a-a3761EXAMPLE.auth.us-east-1.amazoncognito.com. -
Erstellen Sie einen Benutzerpool-Client. Verwenden Sie den create-user-pool-clientBefehl und geben Sie den
userPoolIdBenutzerpool an, den Sie erstellt haben, einen Namen für den Client und die Region, in der er erstellt werden soll. Fügen Sie außerdem die--generate-secretOption hinzu, mit der Sie angeben können, dass Sie ein Geheimnis für den Benutzerpool-Client generieren möchten, der gerade erstellt wird.In diesem Fall lautet der Kundenname
dcv-session-manager-client-appund wir erstellen ihn in derus-east-1Region.$aws cognito-idp create-user-pool-client --user-pool-idus-east-1_QLEXAMPLE--client-namedcv-session-manager-client-app--generate-secret --regionus-east-1Beispielausgabe
{ "UserPoolClient": { "UserPoolId": "us-east-1_QLEXAMPLE", "ClientName": "dcv-session-manager-client-app", "ClientId": "2l9273hp6k2ut5cugg9EXAMPLE", "ClientSecret": "1vp5e8nec7cbf4m9me55mbmht91u61hlh0a78rq1qki1lEXAMPLE", "LastModifiedDate": 1602510291.498, "CreationDate": 1602510291.498, "RefreshTokenValidity": 30, "AllowedOAuthFlowsUserPoolClient": false } }Anmerkung
Notieren Sie sich das
ClientIdundClientSecret. Sie müssen diese Informationen den Entwicklern zur Verfügung stellen, wenn sie Zugriffstoken für die API-Anfragen anfordern. -
Erstellen Sie einen neuen OAuth2 2.0-Ressourcenserver für den Benutzerpool. Ein Ressourcenserver ist ein Server für zugriffsgeschützte Ressourcen. Er verarbeitet authentifizierte Anfragen nach Zugriffstoken.
Verwenden Sie den create-resource-serverBefehl und geben Sie den
userPoolIdBenutzerpool, eine eindeutige Kennung und einen Namen für den Ressourcenserver, den Bereich und die Region an, in der er erstellt werden soll.In diesem Beispiel verwenden wir
dcv-session-managerals Bezeichner und Namen sowiesm_scopeals Bereichsnamen und Beschreibung.$aws cognito-idp create-resource-server --user-pool-idus-east-1_QLEXAMPLE--identifierdcv-session-manager--namedcv-session-manager--scopes ScopeName=sm_scope,ScopeDescription=sm_scope--regionus-east-1Beispielausgabe
{ "ResourceServer": { "UserPoolId": "us-east-1_QLEXAMPLE", "Identifier": "dcv-session-manager", "Name": "dcv-session-manager", "Scopes": [ { "ScopeName": "sm_scope", "ScopeDescription": "sm_scope" }] } } -
Aktualisieren Sie den Benutzerpool-Client.
Verwenden Sie den update-user-pool-client-Befehl. Geben Sie
userPoolIdden Benutzerpool, denClientIddes Benutzerpool-Clients und die Region an. Geben Sie fürclient_credentialsan--allowed-o-auth-flows, dass der Client mithilfe einer Kombination aus einer Client-ID und einem geheimen Client-Schlüssel Zugriffstoken vom Token-Endpunkt abrufen soll. Geben Sie für--allowed-o-auth-scopesdie Ressourcenserver-ID und den Bereichsnamen wie folgt an:. Fügen Sie das ein,resource_server_identifier/scope_name--allowed-o-auth-flows-user-pool-clientum anzugeben, dass der Client bei der Interaktion mit Cognito-Benutzerpools OAuth das Protokoll befolgen darf.$aws cognito-idp update-user-pool-client --user-pool-idus-east-1_QLEXAMPLE--client-id2l9273hp6k2ut5cugg9EXAMPLE--allowed-o-auth-flows client_credentials --allowed-o-auth-scopesdcv-session-manager/sm_scope--allowed-o-auth-flows-user-pool-client --regionus-east-1Beispielausgabe
{ "UserPoolClient": { "UserPoolId": "us-east-1_QLEXAMPLE", "ClientName": "dcv-session-manager-client-app", "ClientId": "2l9273hp6k2ut5cugg9EXAMPLE", "ClientSecret": "1vp5e8nec7cbf4m9me55mbmht91u61hlh0a78rq1qki1lEXAMPLE", "LastModifiedDate": 1602512103.099, "CreationDate": 1602510291.498, "RefreshTokenValidity": 30, "AllowedOAuthFlows": [ "client_credentials" ], "AllowedOAuthScopes": [ "dcv-session-manager/sm_scope" ], "AllowedOAuthFlowsUserPoolClient": true } }Anmerkung
Der Benutzerpool ist jetzt bereit, Zugriffstoken bereitzustellen und zu authentifizieren. In diesem Beispiel lautet
https://cognito-idp.die URL für den Autorisierungsserver.us-east-1.amazonaws.com/us-east-1_QLEXAMPLE/.well-known/jwks.json -
Testen Sie die Konfiguration.
$curl -H "Authorization: Basic `echo -n2l9273hp6k2ut5cugg9EXAMPLE:1vp5e8nec7cbf4m9me55mbmht91u61hlh0a78rq1qki1lEXAMPLE| base64`" -H "Content-Type: application/x-www-form-urlencoded" -X POST "https://mydomain-544fa30f-c0e5-4a02-8d2a-a3761EXAMPLE.auth.us-east-1.amazoncognito.com/oauth2/token?grant_type=client_credentials&scope=dcv-session-manager/sm_scope"Beispielausgabe
{ "access_token":"eyJraWQiOiJGQ0VaRFpJUUptT3NSaW41MmtqaDdEbTZYb0RnSTQ5b2VUT0cxUUI1Q2VJPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiIybDkyNzNocDZrMnV0NWN1Z2c5dWg4ZGx0cCIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiZGN2LXNlc3Npb24tbWFuYWdlclwvcGVybWlzc2lvbnMiLCJhdXRoX3RpbWUiOjE2MDI1MTMyODMsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy13ZXN0LTIuYW1hem9uYXdzLmNvbVwvdXMtd2VzdC0yX1FMZTA3SU9GViIsImV4cCI6MTYwMjUxNjg4MywiaWF0IjoxNjAyNTEzMjgzLCJ2ZXJzaW9uIjoyLCJqdGkiOiIyMDk2YTg4NS04YWQ0LTRmYjgtYjI2Mi1hMmNkNDk0OGZjNjYiLCJjbGllbnRfaWQiOiIybDkyNzNocDZrMnV0NWN1Z2c5dWg4ZGx0cCJ9.ZLZpS4CiiLq1X_VSm911hNT4g8A0FKZXScVJyyV0ijcyOfUOBcpgSMGqJagLYORFuYwLS5c7g4eO04wIwnw21ABGIDcOMElDPCJkrzjfLEPS_eyK3dNmlXDEvdS-Zkfi0HIDsd6audjTXKzHlZGScr6ROdZtId5dThkpEZiSx0YwiiWe9crAlqoazlDcCsUJHIXDtgKW64pSj3-uQQGg1Jv_tyVjhrA4JbD0k67WS2V9NW-uZ7t4zwwaUmOi3KzpBMi54fpVgPaewiVlUm_aS4LUFcWT6hVJjiZF7om7984qb2gOa14iZxpXPBJTZX_gtG9EtvnS9uW0QygTJRNgsw", "expires_in":3600, "token_type":"Bearer" } -
Registrieren Sie den externen Autorisierungsserver für die Verwendung mit dem Broker, indem Sie den register-auth-server Befehl verwenden.
$sudo -u root dcv-session-manager-broker register-auth-server --url https://cognito-idp.us-east-1.amazonaws.com/us-east-1_QLEXAMPLE/.well-known/jwks.json
Entwickler können jetzt den Server verwenden, um Zugriffstoken anzufordern. Wenn Sie Zugriffstoken anfordern, geben Sie die Client-ID, den geheimen Client-Schlüssel und die hier generierte Server-URL an. Weitere Informationen zum Anfordern von Zugriffstoken finden Sie unter Erstellen, Zugriffstoken erstellen und API-Anfrage stellen im Amazon DCV Session Manager Developer Guide.