Halaman ini berlaku untuk Apigee dan Apigee Hybrid.
Baca dokumentasi Apigee Edge.
Tentang metadata token dan kode otorisasi
Apigee menghasilkan token akses OAuth, token refresh, dan kode otorisasi, serta memberikannya ke aplikasi yang diautentikasi. Pada waktu pembuatan, Apigee menyimpan token dan kode tersebut. Kemudian, saat Apigee menerima permintaan API masuk yang memuat token atau kode ini, Apigee menggunakan informasi yang tersimpan untuk mengizinkan permintaan tersebut.
Saat membuat artefak OAuth ini, Apigee juga 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 Apigee akan 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
Kadang-kadang ada gunanya menambahkan metadata khusus ke token akses. 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, data ini disebut "atribut khusus". Selanjutnya, 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 khusus yang dilampirkan pada token.
Untuk melampirkan data arbitrer ke token, gunakan elemen <Attributes>
dalam kebijakan OAuthV2. Anda dapat menentukan nama dan nilai atribut khusus. Misalnya, berikut adalah
konfigurasi kebijakan yang menghasilkan token dan melampirkan atribut khusus bernama "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, yang mungkin dapat dilihat oleh aplikasi, atau diteruskan ke pengguna akhir.
Jika display
ditetapkan 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
, lihat
Menampilkan atau menyembunyikan atribut khusus dalam respons.
Mendapatkan atribut token akses kustom saat runtime
Saat ada panggilan ke OAuthV2/VerifyAccessToken
, Apigee akan memverifikasi token dengan mencarinya di penyimpanan token. Apigee kemudian akan mengisi serangkaian variabel konteks 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 detikstatus
scope
apiproduct.name*
Jika ada atribut khusus pada token, atribut khusus tersebut akan 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 dengan nama accesstoken.tenant_list
, yang berisi nilai yang disimpan pada saat token dibuat.
Selanjutnya, kebijakan atau ketentuan dapat merujuk ke variabel ini dan mengubah perilaku berdasarkan nilai yang tersimpan di dalamnya.
Menetapkan dan memperbarui atribut khusus saat 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. Untuk membantu mengatasi hal ini, Apigee menyediakan kebijakan untuk mendapatkan dan menyetel atribut token. Untuk mengetahui informasi selengkapnya, lihat Mendapatkan kebijakan Info OAuth V2 dan Menetapkan kebijakan Info OAuth V2.
Di setiap kebijakan ini, elemen AccessToken
harus merujuk pada variabel yang berisi token akses.