

# Okta
<a name="identity-idp-okta"></a>

Okta dapat dikonfigurasi sebagai penyedia identitas untuk mengakses AgentCore Gateway dan Runtime, atau penyedia kredensi AgentCore Identitas untuk akses sumber daya keluar. Ini memungkinkan agen Anda untuk mengautentikasi dan mengotorisasi pengguna agen dengan Okta sebagai penyedia identitas dan server otorisasi, atau agen Anda untuk mendapatkan kredensil untuk mengakses sumber daya yang diotorisasi oleh Okta.

## Ke dalam
<a name="identity-idp-okta-inbound"></a>

Untuk menambahkan Okta sebagai penyedia identitas dan server otorisasi untuk mengakses AgentCore Gateway dan Runtime, Anda harus:
+ Konfigurasikan URL penemuan dari penyewa Okta Anda. Ini membantu AgentCore Identity mendapatkan metadata yang terkait dengan server otorisasi OAuth dan kunci verifikasi token Anda.
+ Masukkan `aud` klaim yang valid untuk token. Ini membantu memvalidasi token yang berasal dari IDP Anda dan memungkinkan akses untuk token yang berisi klaim yang diharapkan.

 **Untuk mengonfigurasi Okta untuk otentikasi masuk** 

1. Buka konsol pengembang Okta.

1. Di bilah navigasi kiri, pilih **Aplikasi**.

1. Pilih **Buat Integrasi Aplikasi**.

1. Pilih **OIDC - OpenID Connect sebagai metode** login untuk aplikasi Anda.

1. Pilih **Aplikasi Web** sebagai jenis aplikasi Anda.

1. Berikan nama untuk aplikasi Anda.

1. Pilih **Kode Otorisasi** **Kredenal and/or Klien** tergantung pada kebutuhan Anda.

1. Untuk **URI Sign-in pengalihan**, tambahkan titik akhir aplikasi Anda yang akan menerima token Okta.

1. Sesuaikan bagian **Tugas** seperlunya tergantung pada kebutuhan Anda.

1. Pilih **Simpan**.

1. Buat API Okta untuk mewakili aplikasi Anda:
   + Di bilah navigasi kiri, pilih **Keamanan**.
   + Buka **API** dan pilih **Add Authorization Server**.
   + Ikuti alur untuk membuat server otorisasi yang didedikasikan untuk penyewa Okta Anda.
   + Setelah server otorisasi dibuat, pilih tab **Kebijakan Akses** pada halaman ikhtisar untuk mengonfigurasi kebijakan akses yang sesuai.
   + Tentukan cakupan kustom yang diperlukan untuk server otorisasi yang diperlukan untuk aplikasi Anda.

1. Buat URL penemuan untuk penyewa Okta Anda:

   ```
   https://your-tenant.okta.com/oauth2/your-authorization-server
   ```

1. Konfigurasikan Inbound Auth dengan nilai-nilai berikut:
   +  **URL Discovery:** URL yang dibangun pada langkah sebelumnya
   +  **Audiens yang Diizinkan:** Nilai audiens yang Anda berikan saat membuat API di langkah 11

Untuk lebih jelasnya, lihat [dokumentasi Okta](https://developer.okta.com/docs/concepts/oauth-openid/).

### Tambahkan klaim client\_id ke klaim token akses
<a name="identity-idp-okta-client-id-claim"></a>

Okta secara default tidak termasuk `client_id` sebagai klaim standar dalam token mereka. Untuk mengisi klaim dalam token, Anda perlu menyesuaikan klaim melalui server otorisasi yang Anda gunakan untuk mengeluarkan token.

 **Untuk menambahkan klaim client\_id ke token akses** 

1. Di bilah navigasi kiri, pilih **Keamanan**. Buka **API** dan pilih server otorisasi yang ingin Anda gunakan untuk aplikasi Anda.

1. Di halaman detail untuk server otorisasi, pilih tab **Klaim** dan pilih **Tambah Klaim**.

1. **Beri nama klaim baru **client\_id** dan atur nilainya ke App.clientID.**

1. Setel **Sertakan dalam jenis token** ke **Access Token**.

1. Pilih **Simpan**.

Untuk lebih jelasnya, lihat [dokumentasi Okta](https://developer.okta.com/docs/guides/customize-tokens-returned-from-okta/main/).

## Ke luar
<a name="identity-idp-okta-outbound"></a>

**catatan**  
AgentCore Identitas mengeluarkan URL callback OAuth2 unik untuk setiap penyedia kredensi yang Anda buat. URL panggilan balik unik memungkinkan pengikatan sesi, yang melindungi pertukaran kode otorisasi OAuth2 terhadap pemutaran ulang dan CSRF-style serangan lintas penyedia dengan memastikan respons otorisasi hanya dapat ditukarkan terhadap penyedia kredensi tertentu yang memulainya. Karena URL unik per penyedia, Anda tidak akan mengetahuinya sampai **setelah** Anda menelepon`CreateOauth2CredentialProvider`. Buat aplikasi Okta OIDC Anda terlebih dahulu, lalu kembali ke konsol pengembang Okta untuk mendaftarkan URL callback setelah AgentCore Identity mengeluarkannya.

 **Langkah 1: Buat aplikasi Okta OIDC** 

Ikuti prosedur di bagian [Inbound](#identity-idp-okta-inbound) untuk membuat aplikasi Okta OIDC dan server otorisasi Anda. Saat diminta untuk **Sign-in mengarahkan URI** di pengaturan aplikasi, biarkan bidang kosong untuk saat ini - Anda akan menambahkan URL panggilan balik unik di Langkah 3.

 **Langkah 2: Buat penyedia kredensi AgentCore Identitas** 

Untuk mengonfigurasi Okta sebagai penyedia sumber daya keluar di AgentCore Identity, gunakan yang berikut ini:

```
{
  "name": "Okta",
  "credentialProviderVendor": "OktaOauth2",
  "oauth2ProviderConfigInput" : {
    "includedOauth2ProviderConfig": {
      "clientId": "your-client-id",
      "clientSecret": "your-client-secret",
      "authorizationEndpoint": "https://your-tenant.okta.com/oauth2/your-authorization-server/v1/authorize",
      "tokenEndpoint": "https://your-tenant.okta.com/oauth2/your-authorization-server/v1/token",
      "issuer": "https://your-tenant.okta.com/oauth2/your-authorization-server"
    }
  }
}
```

Untuk menggunakan [pertukaran token on-behalf-of Okta OAuth 2.0](https://developer.okta.com/docs/guides/set-up-token-exchange/main/), gunakan penyedia khusus untuk konfigurasi lanjutan. Untuk detailnya, lihat [pertukaran On-behalf-of token dengan AgentCore Identity](on-behalf-of-token-exchange.md).

```
{
  "name": "Okta",
  "credentialProviderVendor": "CustomOauth2",
  "oauth2ProviderConfigInput": {
    "customOauth2ProviderConfig": {
      "clientAuthenticationMethod": "CLIENT_SECRET_BASIC",
      "clientId": "your-client-id",
      "clientSecret": "your-client-secret",
      "oauthDiscovery": {
        "authorizationServerMetadata": {
          "authorizationEndpoint": "https://your-tenant.okta.com/oauth2/your-authorization-server/v1/authorize",
          "tokenEndpoint": "https://your-tenant.okta.com/oauth2/your-authorization-server/v1/token",
          "issuer": "https://your-tenant.okta.com/oauth2/your-authorization-server"
        }
      },
      "onBehalfOfTokenExchangeConfig": {
        "grantType": "TOKEN_EXCHANGE",
        "tokenExchangeGrantTypeConfig": {
          "actorTokenContent": "NONE"
        }
      }
    }
  }
}
```

[CreateOauth2CredentialProvider](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CreateOauth2CredentialProvider.html)Responsnya mencakup `callbackUrl` bidang. URL ini unik untuk penyedia kredensi ini dan terlihat seperti:`https://bedrock-agentcore.us-east-1.amazonaws.com/identities/oauth2/callback/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX`. Simpan nilai ini untuk langkah selanjutnya.

 **Langkah 3: Daftarkan URL panggilan balik unik dengan Okta** 

Kembali ke konsol pengembang Okta dan tambahkan URL panggilan balik unik ke URI **Sign-in pengalihan** aplikasi Anda.

1. Masuk ke konsol pengembang Okta dan buka aplikasi OIDC yang Anda buat di Langkah 1.

1. Buka tab **Umum** dan edit pengaturan **LOGIN**.

1. Tambahkan `callbackUrl` nilai yang dikembalikan oleh `CreateOauth2CredentialProvider` untuk **Sign-in mengarahkan URI**.

1. Pilih **Simpan**.