Menyiapkan Facebook sebagai kumpulan identitas IDP - Amazon Cognito

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyiapkan Facebook sebagai kumpulan identitas IDP

Kumpulan identitas Amazon Cognito bekerja dengan Facebook untuk menyediakan otentikasi federasi bagi pengguna aplikasi Anda. Bagian ini menjelaskan cara mendaftar dan mengatur aplikasi Anda dengan Facebook sebagai IDP.

Mengatur Facebook

Daftarkan aplikasi Anda dengan Facebook sebelum Anda mengautentikasi pengguna Facebook dan berinteraksi dengan FacebookAPIs.

Portal Pengembang Facebook membantu Anda mengatur aplikasi Anda. Lakukan prosedur ini sebelum Anda mengintegrasikan Facebook di kumpulan identitas Amazon Cognito Anda:

catatan

Federasi kumpulan identitas Amazon Cognito tidak kompatibel dengan Login Terbatas Facebook. Untuk informasi selengkapnya tentang cara mengatur Login Facebook untuk iOS tanpa melebihi izin yang ditetapkan untuk Login Terbatas, lihat Login Facebook untuk iOS - Mulai Cepat di Meta untuk Pengembang.

Menyiapkan Facebook
  1. Pada Portal Developer Facebook, masuk dengan kredensial Facebook Anda.

  2. Dari menu Aplikasi, pilih Tambah Aplikasi Baru.

  3. Pilih platform dan selesaikan proses mulai cepat.

Android

Untuk informasi selengkapnya tentang cara mengintegrasikan aplikasi Android dengan Login Facebook, lihat Panduan Memulai Facebook.

iOS - Objective-C

Untuk informasi selengkapnya tentang cara mengintegrasikan aplikasi iOS Objective-C dengan Login Facebook, lihat Panduan Memulai Facebook.

iOS - Swift

Untuk informasi selengkapnya tentang cara mengintegrasikan aplikasi iOS Swift dengan Login Facebook, lihat Panduan Memulai Facebook.

JavaScript

Untuk informasi selengkapnya tentang cara mengintegrasikan aplikasi JavaScript web dengan Login Facebook, lihat Panduan Memulai Facebook.

Unity

Untuk informasi selengkapnya tentang cara mengintegrasikan aplikasi Unity dengan Login Facebook, lihat Panduan Memulai Facebook.

Xamarin

Untuk menambahkan otentikasi Facebook, pertama-tama ikuti alur yang sesuai di bawah ini untuk mengintegrasikan Facebook SDK ke dalam aplikasi Anda. Kolam identitas Amazon Cognito menggunakan token akses Facebook untuk menghasilkan pengidentifikasi pengguna unik yang dikaitkan dengan identitas Amazon Cognito.

Mengonfigurasi penyedia identitas di konsol kumpulan identitas Amazon Cognito

Gunakan prosedur berikut untuk mengonfigurasi penyedia identitas Anda.

Untuk menambahkan penyedia identitas Facebook (iDP)
  1. Pilih kumpulan Identitas dari konsol Amazon Cognito. Pilih kumpulan identitas.

  2. Pilih tab Akses pengguna.

  3. Pilih Tambahkan penyedia identitas.

  4. Pilih Facebook.

  5. Masukkan ID Aplikasi OAuth proyek yang Anda buat di Meta for Developers. Untuk informasi selengkapnya, lihat Login Facebook di Meta for Developers Docs.

  6. Untuk menyetel peran yang diminta Amazon Cognito saat mengeluarkan kredensional kepada pengguna yang telah mengautentikasi dengan penyedia ini, konfigurasikan setelan Peran.

    1. Anda dapat menetapkan pengguna dari IDP tersebut peran Default yang Anda atur saat mengonfigurasi peran Terautentikasi, atau Anda dapat Memilih peran dengan aturan.

      1. Jika Anda memilih Pilih peran dengan aturan, masukkan Klaim sumber dari autentikasi pengguna Anda, Operator yang ingin Anda bandingkan dengan klaim, Nilai yang akan menyebabkan kecocokan dengan pilihan peran ini, dan Peran yang ingin Anda tetapkan saat penetapan Peran cocok. Pilih Tambahkan yang lain untuk membuat aturan tambahan berdasarkan kondisi yang berbeda.

      2. Pilih Resolusi Peran. Jika klaim pengguna tidak sesuai dengan aturan, Anda dapat menolak kredensi atau mengeluarkan kredensi untuk peran yang Diautentikasi.

  7. Untuk mengubah tag utama yang ditetapkan Amazon Cognito saat mengeluarkan kredensi kepada pengguna yang telah diautentikasi dengan penyedia ini, konfigurasikan Atribut untuk kontrol akses.

    1. Untuk tidak menerapkan tag utama, pilih Tidak aktif.

    2. Untuk menerapkan tag utama berdasarkan sub dan aud klaim, pilih Gunakan pemetaan default.

    3. Untuk membuat skema atribut kustom Anda sendiri ke tag utama, pilih Gunakan pemetaan khusus. Kemudian masukkan kunci Tag yang ingin Anda sumber dari setiap Klaim yang ingin Anda wakili dalam tag.

  8. Pilih Simpan perubahan.

Menggunakan Facebook

Android

Untuk menambahkan otentikasi Facebook, pertama-tama ikuti panduan Facebook dan integrasikan Facebook SDK ke dalam aplikasi Anda. Kemudian tambahkan tombol Login dengan Facebook ke antarmuka pengguna Android Anda. Facebook SDK menggunakan objek sesi untuk melacak statusnya. Amazon Cognito menggunakan token akses dari objek sesi ini untuk mengautentikasi pengguna, menghasilkan pengenal unik, dan, jika diperlukan, memberikan pengguna akses ke sumber daya lain. AWS

Setelah Anda mengautentikasi pengguna Anda dengan FacebookSDK, tambahkan token sesi ke penyedia kredensi Amazon Cognito.

Facebook SDK 4.0 atau yang lebih baru:

Map<String, String> logins = new HashMap<String, String>(); logins.put("graph.facebook.com", AccessToken.getCurrentAccessToken().getToken()); credentialsProvider.setLogins(logins);

Facebook SDK sebelum 4.0:

Map<String, String> logins = new HashMap<String, String>(); logins.put("graph.facebook.com", Session.getActiveSession().getAccessToken()); credentialsProvider.setLogins(logins);

Proses login Facebook menginisialisasi sesi tunggal di dalamnya. SDK Objek sesi Facebook berisi OAuth token yang digunakan Amazon Cognito untuk menghasilkan AWS kredensi bagi pengguna akhir Anda yang diautentikasi. Amazon Cognito juga menggunakan token untuk memeriksa database pengguna Anda untuk keberadaan pengguna yang cocok dengan identitas Facebook khusus ini. Jika pengguna sudah ada, API mengembalikan pengenal yang ada. Jika tidak, API mengembalikan pengenal baru. Klien SDK secara otomatis menyimpan pengenal di perangkat lokal.

catatan

Setelah Anda mengatur peta login, lakukan panggilan ke refresh atau get untuk mengambil kredensialnya. AWS

iOS - Objective-C

Untuk menambahkan otentikasi Facebook, pertama-tama ikuti panduan Facebook dan integrasikan Facebook SDK ke dalam aplikasi Anda. Kemudian tambahkan Tombol Masuk dengan Facebook ke antarmuka pengguna Anda. Facebook SDK menggunakan objek sesi untuk melacak statusnya. Amazon Cognito menggunakan token akses dari objek sesi ini untuk mengautentikasi pengguna dan mengikat mereka ke kolam identitas Amazon Cognito unik (identitas federasi).

Untuk menyediakan token akses Facebook ke Amazon Cognito, terapkan AWSIdentityProviderManagerprotokol.

Saat Anda menerapkan logins metode ini, kembalikan kamus yang berisiAWSIdentityProviderFacebook. Kamus ini bertindak sebagai kunci, dan token akses saat ini dari pengguna Facebook yang diautentikasi bertindak sebagai nilai, seperti yang ditunjukkan pada contoh kode berikut.

- (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"}]]; } }

Saat Anda memberi contoh AWSCognitoCredentialsProvider, teruskan kelas yang menerapkan AWSIdentityProviderManager sebagai nilai dari identityProviderManager dalam konstruktor. Untuk informasi lebih lanjut, buka halaman AWSCognitoCredentialsProviderreferensi dan pilih initWithRegionJenis:identityPoolId: identityProviderManager.

iOS - Swift

Untuk menambahkan otentikasi Facebook, pertama-tama ikuti panduan Facebook dan integrasikan Facebook SDK ke dalam aplikasi Anda. Kemudian tambahkan Tombol Masuk dengan Facebook ke antarmuka pengguna Anda. Facebook SDK menggunakan objek sesi untuk melacak statusnya. Amazon Cognito menggunakan token akses dari objek sesi ini untuk mengautentikasi pengguna dan mengikat mereka ke kolam identitas Amazon Cognito unik (identitas federasi).

catatan

Federasi kumpulan identitas Amazon Cognito tidak kompatibel dengan Login Terbatas Facebook. Untuk informasi selengkapnya tentang cara mengatur Login Facebook untuk iOS tanpa melebihi izin yang ditetapkan untuk Login Terbatas, lihat Login Facebook untuk iOS - Mulai Cepat di Meta untuk Pengembang.

Untuk menyediakan token akses Facebook ke Amazon Cognito, terapkan AWSIdentityProviderManagerprotokol.

Saat Anda menerapkan logins metode ini, kembalikan kamus yang berisiAWSIdentityProviderFacebook. Kamus ini bertindak sebagai kunci, dan token akses saat ini dari pengguna Facebook yang diautentikasi bertindak sebagai nilai, seperti yang ditunjukkan pada contoh kode berikut.

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"])) } }

Saat Anda memberi contoh AWSCognitoCredentialsProvider, teruskan kelas yang menerapkan AWSIdentityProviderManager sebagai nilai dari identityProviderManager dalam konstruktor. Untuk informasi lebih lanjut, kunjungi AWSCognitoCredentialsProviderhalaman referensi dan pilih initWithRegionJenis:identityPoolId: identityProviderManager.

JavaScript

Untuk menambahkan otentikasi Facebook, ikuti Login Facebook untuk Web dan tambahkan tombol Login dengan Facebook di situs web Anda. Facebook SDK menggunakan objek sesi untuk melacak statusnya. Amazon Cognito menggunakan token akses dari objek sesi ini untuk mengautentikasi pengguna, menghasilkan pengenal unik, dan, jika diperlukan, memberikan pengguna akses ke sumber daya lain. AWS

Setelah Anda mengautentikasi pengguna Anda dengan FacebookSDK, tambahkan token sesi ke penyedia kredensi Amazon Cognito.

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 memperoleh OAuth token yang digunakan Amazon Cognito untuk AWS menghasilkan kredensi bagi pengguna akhir Anda yang diautentikasi. Amazon Cognito juga menggunakan token untuk memeriksa pada basis data pengguna Anda untuk keberadaan pengguna yang cocok dengan identitas Facebook tertentu ini. Jika pengguna sudah ada, API mengembalikan pengenal yang ada. Jika tidak sebuah pengidentifikasi baru dikembalikan. Pengidentifikasi secara otomatis di-cache oleh klien SDK pada perangkat lokal.

catatan

Setelah Anda mengatur peta login, lakukan panggilan ke refresh atau get untuk mendapatkan kredensialnya. Untuk contoh kode, lihat “Gunakan Kasus 17, Mengintegrasikan Kumpulan Pengguna dengan Identitas Cognito,” di JavaScript README file.

Unity

Untuk menambahkan otentikasi Facebook, pertama-tama ikuti panduan Facebook dan integrasikan Facebook SDK ke dalam aplikasi Anda. Amazon Cognito menggunakan token akses Facebook dari FB objek untuk menghasilkan pengenal pengguna unik yang terkait dengan identitas Amazon Cognito.

Setelah Anda mengautentikasi pengguna Anda dengan FacebookSDK, tambahkan token sesi ke penyedia kredensi Amazon Cognito:

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); }

Sebelum Anda menggunakanFB.AccessToken, hubungi FB.Login() dan pastikan FB.IsLoggedIn itu benar.

Xamarin

Xamarin untuk Android:

public void InitializeFacebook() { FacebookSdk.SdkInitialize(this.ApplicationContext); callbackManager = CallbackManagerFactory.Create(); LoginManager.Instance.RegisterCallback(callbackManager, new FacebookCallback &lt; LoginResult &gt; () { HandleSuccess = loginResult = &gt; { var accessToken = loginResult.AccessToken; credentials.AddLogin("graph.facebook.com", accessToken.Token); //open new activity }, HandleCancel = () = &gt; { //throw error message }, HandleError = loginError = &gt; { //throw error message } }); LoginManager.Instance.LogInWithReadPermissions(this, new List &lt; string &gt; { "public_profile" }); }

Xamarin untuk 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 } }); }