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.
Login with Amazon als Identitätspools (IdP) einrichten
Amazon Cognito Cognito-Identitätspools arbeiten mit Login with Amazon zusammen, um eine Verbundauthentifizierung für Ihre Mobil- und Web-App-Benutzer 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
Anmerkung
Für Xamarin befolgen Sie die Anweisungen im Xamarin Handbuch „Erste Schritte“
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
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
-
Wählen Sie Identitätspools in der Amazon-Cognito-Konsole
aus. Wählen Sie einen Identitätspool. -
Wählen Sie die Registerkarte Datenzugriff aus.
-
Wählen Sie Identitätsanbieter hinzufügen aus.
-
Wählen Sie Mit Amazon anmelden.
-
Geben Sie die App-ID des OAuth Projekts ein, das Sie bei Login with Amazon
erstellt haben. Weitere Informationen finden Sie in der Dokumentation zur Anmeldung mit Amazon . -
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.
-
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.
-
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.
-
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.
-
-
-
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.
-
Um keine Prinzipal-Tags anzuwenden, wählen Sie Inaktiv aus.
-
Wählen Sie Standardzuordnungen verwenden, um Prinzipal-Tags auf der Grundlage von
sub
- undaud
-Anforderungen anzuwenden. -
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.
-
-
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 Schnittstelle an den Amazon Cognito-Anmeldeinformationsanbieter übergeben. TokenListener 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 auf folgende requestDidSucceed Weise an den Amazon Cognito-Anmeldeinformationsanbieter übergeben: AMZNAccessTokenDelegate
- (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()); } }