

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

# Mendapatkan kredensil
<a name="getting-credentials"></a>

Anda dapat menggunakan Amazon Cognito untuk mengirimkan kredensil hak istimewa terbatas sementara ke aplikasi Anda, sehingga pengguna dapat mengakses sumber daya. AWS Bagian ini menjelaskan cara mendapatkan kredensial dan bagaimana cara mengambil identitas Amazon Cognito dari kolam identitas.

Amazon Cognito mendukung identitas baik yang terautentikasi maupun yang tidak terautentikasi. Pengguna yang tidak diautentikasi tidak meminta agar identitas mereka diverifikasi, sehingga peran ini sesuai untuk pengguna tamu aplikasi Anda atau jika pengguna meminta agar identitas mereka diverifikasi dan itu tidak dipermasalahkan. Pengguna yang diautentikasi masuk ke aplikasi Anda melalui penyedia identitas pihak ketiga, atau kolam pengguna, yang memverifikasi identitas mereka. Pastikan Anda menjangkau izin sumber daya dengan tepat sehingga Anda tidak memberikan akses kepada mereka dari pengguna yang tidak terautentikasi.

Identitas Amazon Cognito identitas bukan kredensial. Mereka ditukar dengan kredensil menggunakan dukungan federasi identitas web di (). AWS Security Token Service AWS STS Cara yang disarankan untuk mendapatkan kredensial AWS untuk pengguna aplikasi Anda adalah dengan menggunakan `AWS.CognitoIdentityCredentials`. Identitas dalam objek kredensial kemudian ditukar dengan kredensil menggunakan. AWS STS

**catatan**  
Jika Anda membuat kumpulan identitas sebelum Februari 2015, Anda harus mengasosiasikan kembali peran Anda dengan kumpulan identitas Anda untuk menggunakan `AWS.CognitoIdentityCredentials` konstruktor tanpa peran sebagai parameter. Untuk melakukannya, buka [konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home), pilih **Kelola kumpulan identitas, pilih kumpulan identitas** Anda, pilih **Edit** Kumpulan identitas, tentukan peran yang diautentikasi dan tidak diautentikasi, dan simpan perubahan. 

Penyedia kredensi identitas web adalah bagian dari rantai penyedia kredensi default di. AWS SDKs Untuk mengatur token kumpulan identitas Anda dalam `config` file lokal untuk AWS SDK atau file AWS CLI, tambahkan entri `web_identity_token_file` profil. Lihat [Mengasumsikan penyedia kredensi peran](https://docs.aws.amazon.com/sdkref/latest/guide/feature-assume-role-credentials.html) di Panduan Referensi Alat AWS SDKs dan.

Untuk mempelajari lebih lanjut tentang cara mengisi kredensil identitas web di SDK Anda, lihat panduan pengembang SDK. Untuk hasil terbaik, mulailah proyek Anda dengan integrasi kumpulan identitas yang ada di dalamnya AWS Amplify.

**AWS Sumber daya SDK untuk mendapatkan dan menyetel kredensional dengan kumpulan identitas**
+ [Federasi Kolam Identitas](https://docs.amplify.aws/lib/auth/advanced/q/platform/android/#identity-pool-federation) (Android) di Amplify Dev Center
+ [Federasi Kolam Identitas](https://docs.amplify.aws/lib/auth/advanced/q/platform/ios/#identity-pool-federation) (iOS) di Amplify Dev Center
+ [Menggunakan Identitas Amazon Cognito untuk mengautentikasi pengguna di Panduan Pengembang](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/loading-browser-credentials-cognito.html) AWS SDK untuk JavaScript 
+ [Penyedia kredensi Amazon Cognito](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/cognito-creds-provider.html) di Panduan Pengembang AWS SDK untuk .NET 
+ [Tentukan Kredensil Secara Terprogram di Panduan Pengembang](https://aws.github.io/aws-sdk-go-v2/docs/configuring-sdk/#specify-credentials-programmatically) AWS SDK untuk Go 
+ [Menyediakan kredensi sementara dalam kode di](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-explicit.html) Panduan Pengembang AWS SDK for Java 2.x 
+ [assumeRoleWithWebIdentityCredentialProvider](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials_provider.html#assume-role-with-web-identity-provider)penyedia di Panduan AWS SDK untuk PHP Pengembang
+ [Asumsikan Peran Dengan Penyedia Identitas Web](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html#assume-role-with-web-identity-provider) dalam AWS SDK untuk Python (Boto3) dokumentasi
+ [Menentukan kredensi dan wilayah default Anda](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/credentials.html) di Panduan Pengembang AWS SDK for Rust 

Bagian berikut memberikan contoh kode dalam beberapa warisan. AWS SDKs

## Android
<a name="getting-credentials-1.android"></a>

Anda dapat menggunakan Amazon Cognito untuk mengirimkan kredensil hak istimewa terbatas sementara ke aplikasi Anda, sehingga pengguna dapat mengakses sumber daya. AWS Amazon Cognito mendukung identitas baik yang terautentikasi maupun yang tidak terautentikasi. Untuk memberikan AWS kredensi ke aplikasi Anda, ikuti langkah-langkah di bawah ini.

Untuk menggunakan kumpulan identitas Amazon Cognito di aplikasi Android, siapkan. AWS Amplify Untuk informasi selengkapnya, lihat [Otentikasi](https://docs.amplify.aws/lib/auth/getting-started/q/platform/android/) di *Amplify Dev Center*.

**Mengambil identitas Amazon Cognito**

Jika Anda mengizinkan pengguna yang tidak diautentikasi, Anda dapat segera mengambil pengidentifikasi Amazon Cognito (ID identitas) unik untuk pengguna akhir Anda. Jika Anda mengautentikasi pengguna, Anda dapat mengambil ID identitas setelah menyetel token masuk di penyedia kredensial:

```
String identityId = credentialsProvider.getIdentityId();
Log.d("LogTag", "my ID is " + identityId);
```

**catatan**  
 Jangan panggil `getIdentityId()`, `refresh()`, atau `getCredentials()` di thread utama aplikasi Anda. Mulai Android 3.0 (API Level 11), aplikasi Anda akan secara otomatis gagal dan melempar file [NetworkOnMainThreadException](https://developer.android.com/reference/android/os/NetworkOnMainThreadException.html)jika Anda menjalankan jaringan I/O di thread aplikasi utama. Anda harus memindahkan kode Anda ke thread latar belakang menggunakan`AsyncTask`. Untuk informasi lebih lanjut, lihat [dokumentasi Android](https://developer.android.com/training/basics/network-ops/connecting.html#AsyncTask). Anda juga dapat memanggil `getCachedIdentityId()` untuk menarik ID, tetapi hanya jika hal tersebut sudah di-cache secara lokal. Jika tidak, metode ini akan memberikan nilai null. 

## iOS - Objective-C
<a name="getting-credentials-1.ios-objc"></a>

Anda dapat menggunakan Amazon Cognito untuk mengirimkan kredensil hak istimewa terbatas sementara ke aplikasi Anda, sehingga pengguna dapat mengakses sumber daya. AWS Kolam identitas Amazon Cognito mendukung identitas terautetikasi dan tidak terautentikasi. Untuk memberikan AWS kredensi ke aplikasi Anda, selesaikan langkah-langkah berikut. 

Untuk menggunakan kumpulan identitas Amazon Cognito di aplikasi iOS, siapkan. AWS Amplify*Untuk informasi selengkapnya, lihat Otentikasi [Swift dan Otentikasi](https://docs.amplify.aws/lib/auth/getting-started/q/platform/ios/) [Flutter di](https://docs.amplify.aws/lib/auth/getting-started/q/platform/flutter/) Amplify Dev Center.*

**Mengambil identitas Amazon Cognito**

Anda dapat segera menarik pengidentifikasi Amazon Cognito unik (ID identitas) untuk pengguna akhir Anda jika Anda mengizinkan pengguna yang tidak diautentikasi atau setelah Anda menyetel token login di penyedia kredensial jika Anda mengautentikasi pengguna:

```
// 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;
}];
```

**catatan**  
 `getIdentityId` adalah panggilan asinkron. Jika ID identitas telah diatur pada penyedia layanan Anda, Anda dapat menghubungi `credentialsProvider.identityId` untuk menarik identitas itu, yang di-cache secara di lokasi tersebut. Namun, jika ID identitas tidak diatur pada penyedia Anda, memanggil `credentialsProvider.identityId` akan menampilkan `nil`. Untuk informasi selengkapnya, lihat referensi [Amplify iOS SDK](https://github.com/aws-amplify/aws-sdk-ios). 

## iOS - Swift
<a name="getting-credentials-1.ios-swift"></a>

Anda dapat menggunakan Amazon Cognito untuk mengirimkan kredensil hak istimewa terbatas sementara ke aplikasi Anda sehingga pengguna dapat mengakses sumber daya. AWS Amazon Cognito mendukung identitas baik yang terautentikasi maupun yang tidak terautentikasi. Untuk memberikan AWS kredensi ke aplikasi Anda, ikuti langkah-langkah di bawah ini. 

Untuk menggunakan kumpulan identitas Amazon Cognito di aplikasi iOS, siapkan. AWS Amplify Untuk informasi selengkapnya, lihat [Otentikasi Swift](https://docs.amplify.aws/lib/auth/getting-started/q/platform/ios/) di *Amplify* Dev Center.

**Mengambil identitas Amazon Cognito**

Anda dapat segera menarik pengidentifikasi Amazon Cognito unik (ID identitas) untuk pengguna akhir Anda jika Anda mengizinkan pengguna yang tidak diautentikasi atau setelah Anda menyetel token login di penyedia kredensial jika Anda mengautentikasi pengguna:

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

**catatan**  
 `getIdentityId` adalah panggilan asinkron. Jika ID identitas telah diatur pada penyedia layanan Anda, Anda dapat menghubungi `credentialsProvider.identityId` untuk menarik identitas itu, yang di-cache secara di lokasi tersebut. Namun, jika ID identitas tidak diatur pada penyedia Anda, memanggil `credentialsProvider.identityId` akan menampilkan `nil`. Untuk informasi selengkapnya, lihat referensi [Amplify iOS SDK](https://github.com/aws-amplify/aws-sdk-ios). 

## JavaScript
<a name="getting-credentials-1.javascript"></a>

Jika Anda belum membuatnya, buat kolam identitas di [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito) sebelum menggunakan `AWS.CognitoIdentityCredentials`.

Setelah mengkonfigurasi kolam identitas dengan penyedia identitas, Anda dapat menggunakan `AWS.CognitoIdentityCredentials` untuk mengautentikasi pengguna. Untuk mengkonfigurasi kredensial aplikasi Anda agar dapat menggunakan `AWS.CognitoIdentityCredentials`, atur properti `credentials` baik `AWS.Config` atau konfigurasi per layanan. Contoh berikut menggunakan `AWS.Config`: 

```
// Set the region where your identity pool exists (us-east-1, eu-west-1)
AWS.config.region = 'us-east-1';

// Configure the credentials provider to use your identity pool
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    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'
    }
});

// Make the call to obtain credentials
AWS.config.credentials.get(function(){

    // Credentials will be available when this function is called.
    var accessKeyId = AWS.config.credentials.accessKeyId;
    var secretAccessKey = AWS.config.credentials.secretAccessKey;
    var sessionToken = AWS.config.credentials.sessionToken;

});
```

Properti opsional `Logins` adalah peta nama penyedia identitas untuk token identitas bagi penyedia tersebut. Bagaimana Anda bisa mendapatkan token dari penyedia identitas Anda tergantung pada penyedia yang Anda gunakan. Misalnya, jika Facebook adalah salah satu penyedia identitas Anda, Anda dapat menggunakan fungsi `FB.login` dari [SDK Facebook](https://developers.facebook.com/docs/facebook-login/web) untuk mendapatkan token penyedia identitas: 

```
FB.login(function (response) {
    if (response.authResponse) { // logged in
        AWS.config.credentials = new AWS.CognitoIdentityCredentials({
          IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030',
          Logins: {
            'graph.facebook.com': response.authResponse.accessToken
          }
        });

        console.log('You are now logged in.');
    } else {
        console.log('There was a problem logging you in.');
    }
});
```

**Mengambil identitas Amazon Cognito**

Anda dapat segera menarik pengidentifikasi Amazon Cognito unik (ID identitas) untuk pengguna akhir Anda jika Anda mengizinkan pengguna yang tidak diautentikasi atau setelah Anda menyetel token login di penyedia kredensial jika Anda mengautentikasi pengguna:

```
var identityId = AWS.config.credentials.identityId;
```

## Unity
<a name="getting-credentials-1.unity"></a>

 Anda dapat menggunakan Amazon Cognito untuk mengirimkan kredensil hak istimewa terbatas sementara ke aplikasi Anda, sehingga pengguna dapat mengakses sumber daya. AWS Amazon Cognito mendukung identitas baik yang terautentikasi maupun yang tidak terautentikasi. Untuk memberikan AWS kredensi ke aplikasi Anda, ikuti langkah-langkah di bawah ini. 

[AWS SDK for](https://docs.aws.amazon.com/mobile/sdkforunity/developerguide/what-is-unity-plugin.html) Unity sekarang menjadi bagian dari. [SDK untuk .NET](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/welcome.html) Untuk memulai dengan Amazon Cognito di SDK untuk .NET, lihat Penyedia [kredensi Amazon Cognito](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/cognito-creds-provider.html) di Panduan Pengembang. AWS SDK untuk .NET Atau lihat [Amplify Dev Center](https://docs.amplify.aws/) untuk opsi pembuatan aplikasi. AWS Amplify

**Mengambil identitas Amazon Cognito**

 Anda dapat segera menarik pengidentifikasi Amazon Cognito unik (ID identitas) untuk pengguna akhir Anda jika Anda mengizinkan pengguna yang tidak diautentikasi atau setelah Anda menyetel token login di penyedia kredensial jika Anda mengautentikasi pengguna: 

```
credentials.GetIdentityIdAsync(delegate(AmazonCognitoIdentityResult<string> result) {
    if (result.Exception != null) {
        //Exception!
    }
    string identityId = result.Response;
});
```

## Xamarin
<a name="getting-credentials-1.xamarin"></a>

Anda dapat menggunakan Amazon Cognito untuk mengirimkan kredensil hak istimewa terbatas sementara ke aplikasi Anda sehingga pengguna dapat mengakses sumber daya. AWS Amazon Cognito mendukung identitas baik yang terautentikasi maupun yang tidak terautentikasi. Untuk memberikan AWS kredensi ke aplikasi Anda, ikuti langkah-langkah di bawah ini.

[AWS SDK untuk Xamarin](https://docs.aws.amazon.com/mobile/sdkforxamarin/developerguide/Welcome.html) sekarang menjadi bagian dari. [SDK untuk .NET](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/welcome.html) Untuk memulai dengan Amazon Cognito di SDK untuk .NET, lihat Penyedia [kredensi Amazon Cognito](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/cognito-creds-provider.html) di Panduan Pengembang. AWS SDK untuk .NET Atau lihat [Amplify Dev Center](https://docs.amplify.aws/) untuk opsi pembuatan aplikasi. AWS Amplify

**catatan**  
 **Catatan:** Jika Anda membuat kumpulan identitas sebelum Februari 2015, Anda harus mengasosiasikan kembali peran Anda dengan kumpulan identitas Anda untuk menggunakan konstruktor ini tanpa peran sebagai parameter. Untuk melakukannya, buka [konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home), pilih **Kelola kumpulan identitas, pilih kumpulan identitas** Anda, pilih **Edit** Kumpulan identitas, tentukan peran yang diautentikasi dan tidak diautentikasi, dan simpan perubahan. 

**Mengambil identitas Amazon Cognito**

 Anda dapat segera menarik pengidentifikasi Amazon Cognito unik (ID identitas) untuk pengguna akhir Anda jika Anda mengizinkan pengguna yang tidak diautentikasi atau setelah Anda menyetel token login di penyedia kredensial jika Anda mengautentikasi pengguna: 

```
var identityId = await credentials.GetIdentityIdAsync();
```