Menyesuaikan Token dan Kode Otorisasi

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

Tentang Metadata Token

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

Saat membuat artefak OAuth ini, Edge 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 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

Kadang-kadang, melampirkan {i>metadata<i} khusus ke token akses akan berguna. 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 Edge, 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 menentukan nama atribut khusus, dan nilai yang harus diambil. Sebagai contoh, berikut adalah konfigurasi kebijakan yang menghasilkan token, dan menyertakan 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 informasi selengkapnya tentang opsi display Menampilkan atau menyembunyikan atribut khusus dalam respons.

Mendapatkan Atribut Khusus di Runtime

Saat ada panggilan ke OAuthV2/VerifyAccessToken, Apigee Edge memverifikasi token dengan mencarinya di penyimpanan token. Apigee Edge kemudian mengisi yang berisi informasi tentang token. Ini mencakup:

  • organization_name
  • developer.id
  • developer.app.name
  • client_id
  • grant_type
  • token_type
  • access_token
  • issued_at
  • berakhir_dalam //--dalam detik
  • status
  • cakupan
  • 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.

Menyetel dan Memperbarui Atribut Khusus di Runtime

Dalam beberapa situasi, Anda mungkin ingin Proxy API memperbarui metadata yang terkait dengan token akses saat runtime ketika panggilan API sedang diproses di Apigee Edge. 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.

Anda juga dapat menggunakan Edge API untuk memperbarui atribut khusus yang dilampirkan ke sebuah token. Melihat API dokumentasi untuk dokumentasi Update OAuth 2.0 Access Token.