Einrichten von Login with Amazon 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.

Einrichten von Login with Amazon als Identitätspool-IdP

In Amazon Cognito ist Login with Amazon integriert, um Verbundauthentifizierung für Ihre mobilen und Webanwendungsbenutzer bereitzustellen. In diesem Abschnitt wird erklärt, wie Sie Ihre Anwendung mit Login with Amazon als Identitätsanbieter (IdP) registrieren und einrichten.

Richten Sie Login with Amazon im Entwicklerportal ein, damit es mit Amazon Cognito funktioniert. Weitere Informationen finden Sie unter Einrichten von „Login with Amazon” in den häufig gestellten Fragen zu Login with Amazon.

Anmerkung

Für Xamarin befolgen Sie die Anweisungen im Xamarin Handbuch „Erste Schritte“, um Login with Amazon in Ihre Xamarin-Anwendung zu integrieren.

Anmerkung

Sie können Login with Amazon auf der Unity-Plattform nicht nativ integrieren. Verwenden Sie stattdessen eine Webansicht und folgen Sie dem Browser-Anmeldungsablauf.

Einrichten von „Login with Amazon”

Implementierung von Login with Amazon

Im Amazon-Entwicklerportal können Sie eine OAuth-Anwendung einrichten, um sie in Ihren Identitäten-Pool zu integrieren. Hier finden Sie außerdem Dokumentation zu Login with Amazon und können SDKs herunterladen. Wählen Sie Developer console (Entwickler-Konsole) und dann Login with Amazon im Entwicklerportal aus. Sie können ein Sicherheitsprofil für Ihre Anwendung erstellen und dann Authentifizierungsmechanismen für Login with Amazon in Ihrer App erstellen. Weitere Informationen darüber, wie Sie Login-with-Amazon-Authentifizierung in Ihre App integrieren können, finden Sie unter Abrufen von Anmeldeinformationen.

Amazon gibt eine OAuth 2.0-Client-ID für Ihr neues Sicherheitsprofil aus. Sie finden die client ID (Client-ID) auf der Registerkarte Web Settings (Web-Einstellungen) im Sicherheitsprofil. Geben Sie in Ihrem Identitätspool die Sicherheitsprofil-ID im Feld App ID des Login-with-Amazon-IDP ein.

Anmerkung

Sie geben in Ihrem Identitätspool die Sicherheitsprofil-ID im Feld App ID des Login-with-Amazon-IDP ein. Bei Benutzerpools wird stattdessen die Client-ID verwenden.

Konfigurieren des externen Anbieters in der Amazon-Cognito-Konsole

So fügen Sie eine Anmeldung mit dem Identitätsanbieter (IdP) Amazon 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 Mit Amazon anmelden.

  5. Geben Sie die App-ID des OAuth-Projekts ein, das Sie unter Mit Amazon anmelden erstellt haben. Weitere Informationen finden Sie in der Dokumentation zur Anmeldung mit Amazon.

  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.

Verwenden von „Login with Amazon”: Android

Nachdem Sie die Amazon-Anmeldung authentifiziert haben, können Sie das Token in der onSuccess-Methode der - TokenListener Schnittstelle an den Amazon Cognito-Anmeldeinformationsanbieter übergeben. Der Code sieht folgendermaßen aus:

@Override public void onSuccess(Bundle response) { String token = response.getString(AuthzConstants.BUNDLE_KEY.TOKEN.val); Map<String, String> logins = new HashMap<String, String>(); logins.put("www.amazon.com", token); credentialsProvider.setLogins(logins); }

Verwenden von Login with Amazon: iOS – Objective-C

Nachdem Sie die Amazon-Anmeldung authentifiziert haben, können Sie das Token an den Amazon Cognito-Anmeldeinformationsanbieter in der - requestDidSucceed Methode des microSDN übergebenAccessTokenDelegate:

- (void)requestDidSucceed:(APIResult \*)apiResult { if (apiResult.api == kAPIAuthorizeUser) { [AIMobileLib getAccessTokenForScopes:[NSArray arrayWithObject:@"profile"] withOverrideParams:nil delegate:self]; } else if (apiResult.api == kAPIGetAccessToken) { credentialsProvider.logins = @{ @(AWSCognitoLoginProviderKeyLoginWithAmazon): apiResult.result }; } }}

Verwenden von „Login with Amazon”: iOS – Swift

Nachdem Sie die Amazon-Anmeldung authentifiziert haben, können Sie in der requestDidSucceed-Methode des AMZNAccessTokenDelegate das Token an den Amazon-Cognito-Anmeldeinformationsanbieter weiterleiten.

func requestDidSucceed(apiResult: APIResult!) { if apiResult.api == API.AuthorizeUser { AIMobileLib.getAccessTokenForScopes(["profile"], withOverrideParams: nil, delegate: self) } else if apiResult.api == API.GetAccessToken { credentialsProvider.logins = [AWSCognitoLoginProviderKey.LoginWithAmazon.rawValue: apiResult.result] } }

Verwenden Sie Login with Amazon: JavaScript

Nachdem der Benutzer mit Login with Amazon authentifiziert und wieder zurück zu Ihrer Website weitergeleitet wurde, wird das Anmelden mit Amazon Zugriffs-Token in der Abfragezeichenfolge bereitgestellt. Leiten Sie das Token an die Anmeldeinformationen weiter.

AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'IDENTITY_POOL_ID', Logins: { 'www.amazon.com': 'Amazon Access Token' } });

Verwenden von „Login with Amazon”: Xamarin

Xamarin für Android

AmazonAuthorizationManager manager = new AmazonAuthorizationManager(this, Bundle.Empty); var tokenListener = new APIListener { Success = response => { // Get the auth token var token = response.GetString(AuthzConstants.BUNDLE_KEY.Token.Val); credentials.AddLogin("www.amazon.com", token); } }; // Try and get existing login manager.GetToken(new[] { "profile" }, tokenListener);

Xamarin für iOS

Fügen Sie AppDelegate.cs Folgendes ein:

public override bool OpenUrl (UIApplication application, NSUrl url, string sourceApplication, NSObject annotation) { // Pass on the url to the SDK to parse authorization code from the url bool isValidRedirectSignInURL = AIMobileLib.HandleOpenUrl (url, sourceApplication); if(!isValidRedirectSignInURL) return false; // App may also want to handle url return true; }

Führen Sie dann im Bereich ViewController.cs die folgenden Schritte aus:

public override void ViewDidLoad () { base.LoadView (); // Here we create the Amazon Login Button btnLogin = UIButton.FromType (UIButtonType.RoundedRect); btnLogin.Frame = new RectangleF (55, 206, 209, 48); btnLogin.SetTitle ("Login using Amazon", UIControlState.Normal); btnLogin.TouchUpInside += (sender, e) => { AIMobileLib.AuthorizeUser (new [] { "profile"}, new AMZNAuthorizationDelegate ()); }; View.AddSubview (btnLogin); } // Class that handles Authentication Success/Failure public class AMZNAuthorizationDelegate : AIAuthenticationDelegate { public override void RequestDidSucceed(ApiResult apiResult) { // Your code after the user authorizes application for requested scopes var token = apiResult["access_token"]; credentials.AddLogin("www.amazon.com",token); } public override void RequestDidFail(ApiError errorResponse) { // Your code when the authorization fails InvokeOnMainThread(() => new UIAlertView("User Authorization Failed", errorResponse.Error.Message, null, "Ok", null).Show()); } }