Menyesuaikan Token dan Kode Otorisasi

Halaman ini berlaku untuk Apigee dan Apigee hybrid.

Lihat Dokumentasi Apigee Edge.

Tentang token dan metadata kode otorisasi

Apigee membuat token akses OAuth, token refresh, dan kode otorisasi, serta menyalurkannya ke aplikasi yang diautentikasi. Pada waktu pembuatan, Apigee menyimpan token dan kode tersebut. Kemudian, saat Apigee menerima permintaan API masuk yang membawa token atau kode ini, Apigee menggunakan informasi yang disimpan untuk mengotorisasi permintaan.

Saat membuat artefak OAuth ini, Apigee juga melampirkan metadata ke token atau kode. Sebagai Misalnya, token akses dikaitkan dengan pasangan nama/nilai yang menentukan waktu habis masa berlaku, aplikasi dan developer terkait, serta informasi lainnya.

Representasi JSON dari token akses Apigee terlihat seperti berikut:

{
  "issued_at" : "1372170159093",
  "application_name" : "ccd1803b-b557-4520-bd62-ddd3abf8e501",
  "scope" : "READ",
  "status" : "approved",
  "api_product_list" : "[Product1,Product2]",
  "api_product_list_json" : ["Product1", "Product2"],
  "expires_in" : "3599", //--in seconds
  "developer.email" : "joe@weathersample.com",
  "organization_id" : "0",
  "refresh_token" : "82XMXgDyHTpFyXOaApj8C2AGIPnN2IZe",
  "client_id" : "deAVedE0W9Z9U35PAMaAJYphBJCGdrND",
  "access_token" : "shTUmeI1geSKin0TODcGLXBNe9vp",
  "organization_name" : "apifactory",
  "refresh_count" : "0"
}

Menambahkan atribut khusus ke token OAuth dan kode otorisasi

Terkadang ada baiknya untuk melampirkan {i>metadata<i} khusus ke token akses. Misalnya, Anda mungkin ingin untuk menambahkan nama pengguna, keanggotaan grup, atau peran untuk pengguna, ID pelanggan, ID sesi, atau informasi arbitrer lainnya ke token. Di Apigee, data ini disebut "custom atribut." Selanjutnya, ketika token diverifikasi dalam cakupan permintaan API, data disediakan untuk proxy API melalui variabel konteks. Proxy API dapat membuat otorisasi atau keputusan perutean terperinci berdasarkan data khusus yang dilampirkan pada sebelumnya yang benar.

Untuk melampirkan data arbitrer ke token, gunakan elemen <Attributes> di kebijakan OAuthV2. Anda dapat tentukan nama dan nilai atribut khusus. Sebagai contoh, berikut adalah konfigurasi kebijakan yang membuat token dan menambahkan atribut khusus yang disebut "tenant_list" ke token:

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
  <ExpiresIn>600000</ExpiresIn>
  <GenerateResponse />
  <SupportedGrantTypes>
    <GrantType>client_credentials</GrantType>
  </SupportedGrantTypes>
  <GrantType>request.queryparam.grant_type</GrantType>
  <Attributes> 
    <Attribute name="tenant_list" ref="tenant_list_retrieved_from_external_service" display="false"/>
  </Attributes>
</OAuthV2>

Anda bisa menetapkan beberapa atribut khusus, dan bisa melampirkannya secara implisit ke kode otorisasi (<Operation>GenerateAuthorizationCode</Operation>) atau token (<Operation>GenerateAccessToken</Operation>) pada saat pembuatan teks.

Jika display ditetapkan ke true (default), atribut khusus akan yang ditampilkan dalam respons, tempatnya dapat dilihat oleh aplikasi, atau diteruskan ke pengguna akhir. Jika display ditetapkan ke false, atribut khusus disimpan dalam data disimpan, tetapi tidak dikembalikan dalam pesan respons. Dalam kedua kasus tersebut, data kustom tersedia kebijakan dalam Proxy API, setelah token diverifikasi.

Untuk mengetahui informasi selengkapnya tentang opsi display, lihat Menampilkan atau menyembunyikan atribut khusus dalam respons.

Mendapatkan atribut token akses khusus saat runtime

Saat ada panggilan ke OAuthV2/VerifyAccessToken, Apigee memverifikasi token dengan mencarinya di penyimpanan token. Apigee kemudian mengisi yang berisi informasi tentang token. Fitur tersebut meliputi:

  • organization_name
  • developer.id
  • developer.app.name
  • client_id
  • grant_type
  • token_type
  • access_token
  • issued_at
  • expires_in //--dalam detik
  • status
  • scope
  • apiproduct.name*

Jika ada atribut khusus pada token, atribut khusus tersebut tersedia di variabel konteks dengan nama accesstoken.{custom_attribute}. Misalnya, misalkan token dikeluarkan dari kebijakan yang ditunjukkan di atas. Setelah memverifikasi token tersebut, akan ada menjadi variabel konteks tambahan bernama accesstoken.tenant_list, yang berisi pada saat token dibuat.

Kebijakan atau kondisi dapat merujuk ke variabel tersebut dan memodifikasi perilaku berdasarkan nilai yang disimpan di dalamnya.

Menetapkan dan memperbarui atribut khusus di durasi

Dalam beberapa situasi, Anda mungkin ingin Proxy API memperbarui metadata yang terkait dengan token akses saat runtime ketika panggilan API sedang diproses di Apigee. Untuk melakukannya, Apigee menyediakan kebijakan untuk mendapatkan dan menetapkan atribut token. Untuk informasi selengkapnya, lihat Dapatkan Info OAuth V2 policy dan Set OAuth Kebijakan Info V2.

Dalam setiap kebijakan ini, elemen AccessToken harus merujuk ke variabel yang berisi token akses.