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.
Facebook als Identitätspools einrichten IdP
Amazon Cognito Cognito-Identitätspools arbeiten mit Facebook zusammen, um eine Verbundauthentifizierung für Ihre Anwendungsbenutzer bereitzustellen. In diesem Abschnitt wird erklärt, wie Sie Ihre Anwendung bei Facebook als IdP registrieren und einrichten.
Einrichten von Facebook
Registrieren Sie Ihre Anwendung bei Facebook, bevor Sie Facebook-Benutzer authentifizieren und mit Facebook interagieren. APIs
Das Facebook Developer-Portal
Anmerkung
Der Amazon Cognito Cognito-Identitätspoolverbund ist nicht mit Facebook Limited Login
Einrichten von Facebook
-
Melden Sie beim Facebook Developer-Portal
mit Ihren Facebook-Anmeldeinformationen an. -
Wählen Sie im Menü Apps die Option Neue App hinzufügen aus.
-
Wählen Sie eine Plattform aus und schließen Sie den Schnellstart-Prozess ab.
Android
Weitere Informationen zur Integration der Facebook-Anmeldung in Android-Apps finden Sie unter Facebook-Handbuch Erste Schritte
iOS – Objective-C
Weitere Informationen zur Integration der Facebook-Anmeldung in iOS Objective-C-Apps finden Sie unter Facebook-Handbuch Erste Schritte
iOS – Swift
Weitere Informationen zur Integration der Facebook-Anmeldung in iOS Swift-Apps finden Sie unter Facebook-Handbuch Erste Schritte
JavaScript
Weitere Informationen zur Integration von JavaScript Web-Apps mit der Facebook-Anmeldung finden Sie im Facebook-Leitfaden „Erste Schritte
Unity
Weitere Informationen zur Integration der Facebook-Anmeldung in Unity-Apps finden Sie unter Facebook-Handbuch Erste Schritte
Xamarin
Um die Facebook-Authentifizierung hinzuzufügen, folgen Sie zunächst dem entsprechenden Ablauf unten, um Facebook SDK in Ihre Anwendung zu integrieren. Amazon-Cognito-Identitäten-Pools verwenden das Facebook-Zugriffstoken zur Erstellung einer eindeutigen Benutzerkennung, die mit einer Amazon-Cognito-Identität verbunden ist.
Konfigurieren eines Identitätsanbieters in der Amazon-Cognito-Identitätspool-Konsole
Gehen Sie wie folgt vor, um Ihren Identitätsanbieter zu konfigurieren.
So fügen Sie einen neuen Facebook-Identitätsanbieter (IdP) 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 Facebook.
-
Geben Sie die App-ID des OAuth Projekts ein, das Sie bei Meta for
Developers erstellt haben. Weitere Informationen finden Sie unter Facebook-Anmeldung in den Dokumenten zu Meta for Developers. -
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 Facebook
Android
Um die Facebook-Authentifizierung hinzuzufügen, folgen Sie zunächst der Facebook-Anleitung
Nachdem Sie Ihren Benutzer bei Facebook authentifiziert habenSDK, fügen Sie das Sitzungstoken dem Amazon Cognito Cognito-Anmeldeinformationsanbieter hinzu.
Facebook SDK 4.0 oder höher:
Map<String, String> logins = new HashMap<String, String>(); logins.put("graph.facebook.com", AccessToken.getCurrentAccessToken().getToken()); credentialsProvider.setLogins(logins);
Facebook SDK vor 4.0:
Map<String, String> logins = new HashMap<String, String>(); logins.put("graph.facebook.com", Session.getActiveSession().getAccessToken()); credentialsProvider.setLogins(logins);
Der Facebook-Anmeldevorgang initialisiert eine Singleton-Sitzung in seiner. SDK Das Facebook-Sitzungsobjekt enthält ein OAuth Token, das Amazon Cognito verwendet, um AWS Anmeldeinformationen für Ihren authentifizierten Endbenutzer zu generieren. Darüber hinaus verwendet Amazon Cognito das Token, um in Ihrer Benutzer-Datenbank zu überprüfen, ob ein Benutzer mit dieser speziellen Facebook-Identität existiert. Wenn der Benutzer bereits existiert, gibt der die vorhandene API Kennung zurück. Andernfalls API gibt der einen neuen Bezeichner zurück. Der Client speichert Kennungen SDK automatisch auf dem lokalen Gerät zwischen.
Anmerkung
Nachdem Sie die Login-Zuordnung eingerichtet haben, rufen Sie die Anmeldeinformationen get
an refresh
oder rufen Sie sie ab. AWS
iOS – Objective-C
Um die Facebook-Authentifizierung hinzuzufügen, folgen Sie zunächst der Facebook-Anleitung
Um das Facebook-Zugriffstoken für Amazon Cognito bereitzustellen, implementieren Sie den AWSIdentityProviderManager
Wenn Sie die logins
-Methode implementieren, geben Sie ein Wörterbuch zurück, das AWSIdentityProviderFacebook
enthält. Dieses Wörterbuch fungiert als Schlüssel und das aktuelle Zugriffstoken des authentifizierten Facebook-Benutzers als Wert, wie im folgenden Codebeispiel gezeigt.
- (AWSTask<NSDictionary<NSString *, NSString *> *> *)logins { FBSDKAccessToken* fbToken = [FBSDKAccessToken currentAccessToken]; if(fbToken){ NSString *token = fbToken.tokenString; return [AWSTask taskWithResult: @{ AWSIdentityProviderFacebook : token }]; }else{ return [AWSTask taskWithError:[NSError errorWithDomain:@"Facebook Login" code:-1 userInfo:@{@"error":@"No current Facebook access token"}]]; } }
Beim Instantiieren des AWSCognitoCredentialsProvider
leiten Sie die Klasse, die AWSIdentityProviderManager
implementiert, als den Wert von identityProviderManager
im Konstruktor weiter. Weitere Informationen finden Sie auf der AWSCognitoCredentialsProvider
iOS – Swift
Um die Facebook-Authentifizierung hinzuzufügen, folgen Sie zunächst der Facebook-Anleitung
Anmerkung
Der Amazon Cognito Cognito-Identitätspoolverbund ist nicht mit Facebook Limited Login
Um das Facebook-Zugriffstoken für Amazon Cognito bereitzustellen, implementieren Sie den AWSIdentityProviderManager
Wenn Sie die logins
-Methode implementieren, geben Sie ein Wörterbuch zurück, das AWSIdentityProviderFacebook
enthält. Dieses Wörterbuch fungiert als Schlüssel und das aktuelle Zugriffstoken des authentifizierten Facebook-Benutzers als Wert, wie im folgenden Codebeispiel gezeigt.
class FacebookProvider: NSObject, AWSIdentityProviderManager { func logins() -> AWSTask<NSDictionary> { if let token = AccessToken.current?.authenticationToken { return AWSTask(result: [AWSIdentityProviderFacebook:token]) } return AWSTask(error:NSError(domain: "Facebook Login", code: -1 , userInfo: ["Facebook" : "No current Facebook access token"])) } }
Beim Instantiieren des AWSCognitoCredentialsProvider
leiten Sie die Klasse, die AWSIdentityProviderManager
implementiert, als den Wert von identityProviderManager
im Konstruktor weiter. Weitere Informationen finden Sie auf der AWSCognitoCredentialsProvider
JavaScript
Wenn Sie die Facebook-Authentifizierung hinzufügen möchten, befolgen Sie die Anleitungen unter Facebook-Anmeldung für das Web
Nachdem Sie Ihren Benutzer bei Facebook authentifiziert habenSDK, fügen Sie das Sitzungstoken dem Amazon Cognito Cognito-Anmeldeinformationsanbieter hinzu.
FB.login(function (response) { // Check if the user logged in successfully. if (response.authResponse) { console.log('You are now logged in.'); // Add the Facebook access token to the Amazon Cognito credentials login map. AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'IDENTITY_POOL_ID', Logins: { 'graph.facebook.com': response.authResponse.accessToken } }); // Obtain AWS credentials AWS.config.credentials.get(function(){ // Access AWS resources here. }); } else { console.log('There was a problem logging you in.'); } });
Facebook SDK erhält ein OAuth Token, das Amazon Cognito verwendet, um AWS Anmeldeinformationen für Ihren authentifizierten Endbenutzer zu generieren. Darüber hinaus verwendet Amazon Cognito das Token, um in Ihrer Benutzer-Datenbank zu überprüfen, ob ein Benutzer mit dieser speziellen Facebook-Identität existiert. Wenn der Benutzer bereits existiert, gibt er die vorhandene API Kennung zurück. Andernfalls wird ein neuer Bezeichner zurückgegeben. Identifikatoren werden automatisch vom Client SDK auf dem lokalen Gerät zwischengespeichert.
Anmerkung
Nachdem Sie die Anmeldezuordnung festgelegt haben, geben Sie einen Aufruf an refresh
oder get
aus, um die Anmeldeinformationen zu erhalten. Ein Codebeispiel finden Sie in der JavaScript READMEDatei
Unity
Um die Facebook-Authentifizierung hinzuzufügen, folgen Sie zunächst der Facebook-AnleitungFB
-Objekt zum Generieren einer eindeutigen Benutzer-ID, die einer Amazon-Cognito-Identität zugeordnet ist.
Nachdem Sie Ihren Benutzer bei Facebook authentifiziert habenSDK, fügen Sie das Sitzungstoken dem Amazon Cognito Cognito-Anmeldeinformationsanbieter hinzu:
void Start() { FB.Init(delegate() { if (FB.IsLoggedIn) { //User already logged in from a previous session AddFacebookTokenToCognito(); } else { FB.Login ("email", FacebookLoginCallback); } }); } void FacebookLoginCallback(FBResult result) { if (FB.IsLoggedIn) { AddFacebookTokenToCognito(); } else { Debug.Log("FB Login error"); } } void AddFacebookTokenToCognito() { credentials.AddLogin ("graph.facebook.com", AccessToken.CurrentAccessToken.TokenString); }
Bevor Sie FB.AccessToken
verwenden, rufen Sie FB.Login()
auf und stellen Sie sicher, dass FB.IsLoggedIn
wahr ist.
Xamarin
Xamarin für Android:
public void InitializeFacebook() { FacebookSdk.SdkInitialize(this.ApplicationContext); callbackManager = CallbackManagerFactory.Create(); LoginManager.Instance.RegisterCallback(callbackManager, new FacebookCallback < LoginResult > () { HandleSuccess = loginResult = > { var accessToken = loginResult.AccessToken; credentials.AddLogin("graph.facebook.com", accessToken.Token); //open new activity }, HandleCancel = () = > { //throw error message }, HandleError = loginError = > { //throw error message } }); LoginManager.Instance.LogInWithReadPermissions(this, new List < string > { "public_profile" }); }
Xamarin für iOS:
public void InitializeFacebook() { LoginManager login = new LoginManager(); login.LogInWithReadPermissions(readPermissions.ToArray(), delegate(LoginManagerLoginResult result, NSError error) { if (error != null) { //throw error message } else if (result.IsCancelled) { //throw error message } else { var accessToken = loginResult.AccessToken; credentials.AddLogin("graph.facebook.com", accessToken.Token); //open new view controller } }); }