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 detikstatus
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.