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.
Abrufen von Anmeldeinformationen
Sie können Amazon Cognito verwenden, um temporäre Anmeldeinformationen mit eingeschränkten Rechten für Ihre Anwendung bereitzustellen, sodass Ihre Benutzer auf Ressourcen zugreifen können. AWS In diesem Abschnitt wird beschrieben, wie Sie Anmeldeinformationen erhalten und eine Amazon-Cognito-Identität aus Ihrem Identitäts-Pool abrufen.
Amazon Cognito unterstützt sowohl authentifizierte als auch nicht authentifizierte Identitäten. Für nicht authentifizierte Benutzer wird die Identität nicht verifiziert, sodass diese Rolle für Gastbenutzer Ihrer Anwendung geeignet ist, oder in Fällen, in denen es keine Rolle spielt, ob Benutzer ihre Identität verifizieren lassen. Authentifizierte Benutzer melden sich bei Ihrer Anwendung über einen Drittanbieter oder einen Benutzerpool an, der ihre Identität überprüft. Vergewissern Sie sich, dass Sie die Berechtigungen der Ressourcen entsprechend anpassen, damit Sie keinen Zugriff von nicht authentifizierten Benutzern darauf gewähren.
Amazon-Cognito-Identitäten sind keine Anmeldeinformationen. Sie werden mithilfe der Unterstützung von Web Identity Federation in der AWS -Security-Token-Service () gegen Anmeldeinformationen ausgetauscht.AWS STS Verwenden Sie den AWS Cognito-Identitätspool-Anmeldeinformationsanbieter Ihres AWS SDK, um Anmeldeinformationen für Ihre App-Benutzer zu erhalten. Verwenden Sie beispielsweise im AWS SDK für JavaScript (v3) die fromCognitoIdentityPool Funktion aus dem @aws-sdk/credential-providers Paket. Die Identität wird dann mithilfe von gegen Anmeldeinformationen ausgetauscht AWS STS.
Anbieter von Anmeldeinformationen für Web-Identitäten sind Teil der standardmäßigen Anbieterkette für Anmeldeinformationen in AWS -SDKs. Um Ihr Identitätspool-Token in einer lokalen config Datei für ein AWS
SDK oder das festzulegen AWS CLI, fügen Sie einen web_identity_token_file Profileintrag hinzu. Weitere Informationen finden Sie im Referenzhandbuch zu AWS SDKs und Tools unter Übernehmen Sie die Rolle des Anbieters von Anmeldeinformationen.
Weitere Informationen zum Eingeben von Web-Identitäts-Anmeldeinformationen in Ihrem SDK finden Sie im SDK-Entwicklerhandbuch. Die besten Ergebnisse erzielen Sie, wenn Sie Ihr Projekt mit der integrierten Identitätspool-Integration beginnen. AWS Amplify
AWS SDK-Ressourcen zum Abrufen und Einrichten von Anmeldeinformationen mit Identitätspools
-
Identity Pool Federation
(Android) im Amplify Dev Center -
Identity Pool Federation
(iOS) im Amplify Dev Center -
Verwenden von Amazon Cognito Identity zur Benutzerauthentifizierung im Entwicklerhandbuch AWS SDK für JavaScript
-
Anbieter von Amazon Cognito Cognito-Anmeldeinformationen im AWS SDK für .NET Entwicklerhandbuch
-
Geben Sie die Anmeldeinformationen im Entwicklerhandbuch programmgesteuert an AWS SDK for Go
-
Geben Sie temporäre Anmeldeinformationen im Code im Entwicklerhandbuch ein AWS SDK for Java 2.x
-
gehen Sie im AWS SDK für PHP Entwicklerhandbuch von einem RoleWithWebIdentityCredentialProvider Anbieter aus
-
Übernehmen einer Rolle mit einem Web-Identitätsanbieter
in der AWS SDK für Python (Boto3) -Dokumentation -
Geben Sie Ihre Anmeldeinformationen und die Standardregion im AWS SDK für Rust Entwicklerhandbuch an
Die folgenden Abschnitte enthalten Beispielcode in einigen älteren AWS SDKs.
Sie können Amazon Cognito verwenden, um temporäre Anmeldeinformationen mit eingeschränkten Rechten für Ihre Anwendung bereitzustellen, sodass Ihre Benutzer auf Ressourcen zugreifen können. AWS Amazon Cognito unterstützt sowohl authentifizierte als auch nicht authentifizierte Identitäten. Gehen Sie wie folgt vor, um AWS Anmeldeinformationen für Ihre App bereitzustellen.
Um einen Amazon Cognito Cognito-Identitätspool in einer Android-App zu verwenden, richten AWS Amplify Sie ihn ein. Weitere Informationen finden Sie unter Authentifizierung
Amazon-Cognito-Identität abrufen
Wenn Sie nicht authentifizierte Benutzer zulassen, können Sie sofort eine eindeutige Amazon-Cognito-ID (Identitäts-ID) für den Endbenutzer abrufen. Wenn Sie Benutzern authentifizieren, können Sie die Identitäts-ID abrufen, nachdem Sie die Anmelde-Token im Anmeldeinformationsanbieter festgelegt haben:
String identityId = credentialsProvider.getIdentityId(); Log.d("LogTag", "my ID is " + identityId);
Anmerkung
Rufen Sie getIdentityId(), refresh() oder getCredentials() nicht im Haupt-Thread Ihrer Anwendung auf. Ab Android 3.0 (API Level 11) schlägt Ihre App automatisch fehl und gibt eine Meldung aus, NetworkOnMainThreadExceptionAsyncTask in einen Hintergrund-Thread verschrieben. Weitere Informationen finden Sie in der Android-DokumentationgetCachedIdentityId() aufrufen, aber nur, wenn bereits eine ID lokal zwischengespeichert ist. Andernfalls gibt die Methode null zurück.
Sie können Amazon Cognito verwenden, um temporäre Anmeldeinformationen mit eingeschränkten Rechten für Ihre Anwendung bereitzustellen, sodass Ihre Benutzer auf Ressourcen zugreifen können. AWS Amazon-Cognito-Identitäten-Pools unterstützen authentifizierte und nicht authentifizierte Identitäten. Gehen Sie wie folgt vor, um AWS Anmeldeinformationen für Ihre App bereitzustellen.
Um einen Amazon Cognito Cognito-Identitätspool in einer iOS-App zu verwenden, richten AWS Amplify Sie ihn ein. Weitere Informationen finden Sie unter Swift-Authentifizierung
Amazon-Cognito-Identität abrufen
Wenn Sie nicht authentifizierte Benutzer zulassen, können Sie sofort eine eindeutige Amazon-Cognito-ID (Identitäts-ID) für Ihren Endbenutzer abrufen. Sofern Sie Benutzer authentifizieren, können Sie dies nach dem Festlegen des Anmelde-Tokens in den Anmeldeinformationsanbieter tun:
// Retrieve your Amazon Cognito ID [[credentialsProvider getIdentityId] continueWithBlock:^id(AWSTask *task) { if (task.error) { NSLog(@"Error: %@", task.error); } else { // the task result will contain the identity id NSString *cognitoId = task.result; } return nil; }];
Anmerkung
getIdentityId ist ein asynchroner Aufruf. Wenn für Ihren Anbieter bereits eine Identitäts-ID festgelegt ist, können Sie credentialsProvider.identityId aufrufen, um diese lokal zwischengespeicherte Identität abzurufen. Wenn bei Ihrem Anbieter jedoch keine Identitäts-ID festgelegt ist, wird der Anruf credentialsProvider.identityId nil zurückgesendet. Weitere Informationen finden Sie in der Referenz zu Amplify iOS SDK
Sie können Amazon Cognito verwenden, um temporäre Anmeldeinformationen mit eingeschränkten Rechten für Ihre Anwendung bereitzustellen, sodass Ihre Benutzer auf Ressourcen zugreifen können. AWS Amazon Cognito unterstützt sowohl authentifizierte als auch nicht authentifizierte Identitäten. Gehen Sie folgendermaßen vor, um AWS Anmeldeinformationen für Ihre App bereitzustellen.
Um einen Amazon Cognito Cognito-Identitätspool in einer iOS-App zu verwenden, richten AWS Amplify Sie ihn ein. Weitere Informationen finden Sie unter Swift-Authentifizierung
Amazon-Cognito-Identität abrufen
Wenn Sie nicht authentifizierte Benutzer zulassen, können Sie sofort eine eindeutige Amazon-Cognito-ID (Identitäts-ID) für Ihren Endbenutzer abrufen. Sofern Sie Benutzer authentifizieren, können Sie dies nach dem Festlegen des Anmelde-Tokens in den Anmeldeinformationsanbieter tun:
// Retrieve your Amazon Cognito ID credentialsProvider.getIdentityId().continueWith(block: { (task) -> AnyObject? in if (task.error != nil) { print("Error: " + task.error!.localizedDescription) } else { // the task result will contain the identity id let cognitoId = task.result! print("Cognito id: \(cognitoId)") } return task; })
Anmerkung
getIdentityId ist ein asynchroner Aufruf. Wenn für Ihren Anbieter bereits eine Identitäts-ID festgelegt ist, können Sie credentialsProvider.identityId aufrufen, um diese lokal zwischengespeicherte Identität abzurufen. Wenn bei Ihrem Anbieter jedoch keine Identitäts-ID festgelegt ist, wird der Anruf credentialsProvider.identityId nil zurückgesendet. Weitere Informationen finden Sie in der Referenz zu Amplify iOS SDK
Wenn Sie noch keinen Identitätspool erstellt haben, erstellen Sie einen in der Amazon-Cognito-KonsolefromCognitoIdentityPool verwenden.
Nachdem Sie mit Ihren Identitätsanbietern einen Identitätspool konfiguriert haben, können Sie die fromCognitoIdentityPool Funktion aus dem @aws-sdk/credential-providers Paket verwenden, um Benutzer zu authentifizieren. Anstatt einen globalen Wert festzulegenAWS.config.credentials, hängen Sie den Anbieter für Anmeldeinformationen direkt über seine credentials Eigenschaft an jeden Service-Client an. Das v3-SDK löst den Anbieter langsam auf, wenn der Client zum ersten Mal eine Anfrage stellt, sodass kein separater Aufruf zum Abrufen der Anmeldeinformationen erforderlich ist. Im folgenden Beispiel wird der Anbieter an einen angehängt: S3Client
import { S3Client } from "@aws-sdk/client-s3"; import { fromCognitoIdentityPool } from "@aws-sdk/credential-providers"; // Set the region where your identity pool exists (for example, us-east-1 or eu-west-1) const region = "REGION"; // Attach the credentials provider to your service client const client = new S3Client({ region, credentials: fromCognitoIdentityPool({ identityPoolId: "IDENTITY_POOL_ID", logins: { // optional tokens, used for authenticated login "graph.facebook.com": "FBTOKEN", "www.amazon.com": "AMAZONTOKEN", "accounts.google.com": "GOOGLETOKEN", "appleid.apple.com": "APPLETOKEN" }, clientConfig: { region }, }), }); // Credentials are resolved lazily when the client first makes a request. // To inspect them directly, call the provider and await the result // (from inside an async function): const credentials = await client.config.credentials(); const { accessKeyId, secretAccessKey, sessionToken } = credentials;
Die optionale logins-Eigenschaft ist eine Abbildung der Namen des Identitätsanbieters auf die Identitäts-Token für diese Anbieter. Wie Sie den Token von Ihrem Identitätsanbieter erhalten, hängt davon ab, welchen Anbieter Sie verwenden. Ist beispielsweise Facebook einer Ihrer Identitätsanbieter, könnten sie die FB.login-Funktion aus dem Facebook SDK
FB.login(function (response) { if (response.authResponse) { // logged in const region = "us-east-1"; const client = new S3Client({ region, credentials: fromCognitoIdentityPool({ identityPoolId: "us-east-1:1699ebc0-7900-4099-b910-2df94f52a030", logins: { "graph.facebook.com": response.authResponse.accessToken }, clientConfig: { region }, }), }); console.log('You are now logged in.'); } else { console.log('There was a problem logging you in.'); } });
Amazon-Cognito-Identität abrufen
Sie können eine eindeutige Amazon Cognito Cognito-ID (Identitäts-ID) für Ihren Endbenutzer abrufen. Wenn Sie nicht authentifizierte Benutzer zulassen, können Sie sie sofort abrufen. Wenn Sie Benutzer authentifizieren, rufen Sie es ab, nachdem Sie die Anmeldetokens festgelegt haben. Der fromCognitoIdentityPool Anbieter macht die Informationen identityId auf den aufgelösten Anmeldeinformationen verfügbar, sodass Sie sie anhand der aufgelösten Anmeldeinformationen eines Clients lesen können, der den Anbieter verwendet:
// Inside an async function: const { identityId } = await client.config.credentials();
Sie können Amazon Cognito verwenden, um temporäre Anmeldeinformationen mit eingeschränkten Rechten für Ihre Anwendung bereitzustellen, sodass Ihre Benutzer auf Ressourcen zugreifen können. AWS Amazon Cognito unterstützt sowohl authentifizierte als auch nicht authentifizierte Identitäten. Gehen Sie wie folgt vor, um AWS Anmeldeinformationen für Ihre App bereitzustellen.
Das AWS -SDK for Unity ist jetzt Teil von SDK für .NET. Informationen zu den ersten Schritten mit Amazon Cognito finden Sie im SDK für .NET AWS SDK für .NET Developer Guide unter Amazon Cognito Credentials Provider. Oder im Amplify Dev Center
Amazon-Cognito-Identität abrufen
Wenn Sie nicht authentifizierte Benutzer zulassen, können Sie sofort eine eindeutige Amazon-Cognito-ID (Identitäts-ID) für Ihren Endbenutzer abrufen. Sofern Sie Benutzer authentifizieren, können Sie dies nach dem Festlegen des Anmelde-Tokens in den Anmeldeinformationsanbieter tun:
string identityId = await credentials.GetIdentityIdAsync();