Menyesuaikan Token dan Kode Otorisasi

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Tentang Metadata Token

Apigee Edge menghasilkan token akses OAuth, token refresh, dan kode otorisasi, serta mengeluarkannya ke aplikasi yang diautentikasi. Pada waktu pembuatan, Edge menyimpan token dan kode tersebut. Kemudian, saat Edge menerima permintaan API masuk yang memuat token atau kode ini, Edge akan menggunakan informasi yang disimpan untuk mengizinkan permintaan tersebut.

Saat membuat artefak OAuth, Edge juga akan melampirkan metadata ke token atau kode. 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 Edge 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

Terkadang, melampirkan metadata khusus ke token akses adalah hal yang berguna. Misalnya, Anda mungkin ingin menambahkan nama pengguna, keanggotaan grup, atau peran untuk pengguna, ID pelanggan, ID sesi, atau informasi arbitrer lainnya ke token. Di Apigee Edge, data ini disebut "atribut khusus". Setelah itu, setelah token diverifikasi dalam cakupan permintaan API, data tersebut akan tersedia untuk proxy API melalui variabel konteks. Proxy API dapat membuat keputusan otorisasi atau perutean yang terperinci berdasarkan data kustom yang disertakan pada token.

Untuk melampirkan data arbitrer ke token, gunakan elemen <Attributes> dalam kebijakan OAuthV2. Anda dapat menentukan nama atribut khusus dan nilai yang harus diambil. Misalnya, berikut adalah konfigurasi kebijakan yang menghasilkan token, dan melampirkan 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 dapat menentukan beberapa atribut khusus, dan dapat melampirkannya secara implisit ke kode otorisasi (<Operation>GenerateAuthorizationCode</Operation>) atau token (<Operation>GenerateAccessToken</Operation>) pada saat pembuatan.

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

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

Mendapatkan Atribut Kustom di Runtime

Saat ada panggilan ke OAuthV2/VerifyAccessToken, Apigee Edge akan memverifikasi token dengan mencarinya di penyimpanan token. Apigee Edge kemudian mengisi kumpulan variabel konteks yang berisi informasi tentang token. Di antaranya meliputi:

  • organization_name
  • developer.id
  • developer.app.name
  • client_id
  • grant_type
  • token_type
  • access_token
  • issued_at
  • kedaluwarsa_in //--dalam detik
  • status
  • cakupan
  • namaproduk.api*

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

Selanjutnya, kebijakan atau kondisi dapat merujuk ke variabel tersebut dan mengubah perilaku berdasarkan nilai yang tersimpan di dalamnya.

Menetapkan dan Mengupdate Atribut Kustom di Runtime

Dalam beberapa situasi, Anda mungkin ingin Proxy API mengupdate metadata yang terkait dengan token akses saat runtime ketika panggilan API sedang diproses di Apigee Edge. Untuk membantu melakukan hal ini, Apigee menyediakan kebijakan untuk mendapatkan dan menyetel atribut token. Untuk mengetahui informasi selengkapnya, baca Mendapatkan kebijakan Info OAuth V2 dan Menetapkan kebijakan Info OAuth V2.

Di setiap kebijakan tersebut, elemen AccessToken harus merujuk ke variabel yang berisi token akses.

Anda juga dapat menggunakan Edge API untuk mengupdate atribut khusus yang dilampirkan ke token. Lihat dokumentasi API untuk metode Mengupdate Token Akses OAuth 2.0.