Jetonları ve Yetkilendirme Kodlarını Özelleştirme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Jeton Meta Verileri Hakkında

Apigee Edge; OAuth erişim jetonları, yenileme jetonları ve yetkilendirme kodları oluşturur ve bunları kimliği doğrulanmış uygulamalara dağıtır. Edge, oluşturma sırasında bu jetonları ve kodları depolar. Daha sonra Edge bu jetonları veya kodları içeren gelen API isteklerini aldığında, istekleri yetkilendirmek için depolanan bilgileri kullanır.

Edge bu OAuth yapılarını oluşturduğunda jetona veya koda da meta veri ekler. Örneğin bir erişim jetonu, geçerlilik süresini, ilişkili uygulama ile geliştiriciyi ve diğer bilgileri tanımlayan ad/değer çiftleriyle ilişkilendirilir.

Edge erişim jetonunun JSON gösterimi aşağıdaki gibi görünür:

{
  "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"
}

OAuth Jetonlarına Özel Özellikler Ekleme

Bazen bir erişim jetonuna özel meta veriler eklemek kullanışlı olabilir. Örneğin, bir jetona kullanıcı adı, grup üyelikleri veya kullanıcı için roller, müşteri kimliği, oturum tanımlayıcısı ya da rastgele başka bilgiler eklemek isteyebilirsiniz. Apigee Edge'de bu verilere "özel özellikler" adı verilir. Ardından, jeton bir API isteği kapsamında doğrulandığında, bu veriler bağlam değişkenleri aracılığıyla API proxy'sine sunulur. API Proxy'leri, jetona ekli özel verilere göre ayrıntılı yetkilendirme veya yönlendirme kararları verebilir.

Jetona rastgele veriler eklemek için OAuthV2 politikasındaki <Attributes> öğesini kullanın. Özel özelliğin adını ve alması gereken değeri belirtebilirsiniz. Örneğin, jeton oluşturan ve jetona "tenant_list" adlı özel bir özellik ekleyen bir politika yapılandırması aşağıda verilmiştir:

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

Birden fazla özel özellik belirtebilir ve bunları oluşturma sırasında bir yetkilendirme koduna (<Operation>GenerateAuthorizationCode</Operation>) veya jetona (<Operation>GenerateAccessToken</Operation>) dolaylı olarak ekleyebilirsiniz.

display, true (varsayılan) olarak ayarlandığında özel özellikler yanıtta döndürülür ve uygulama tarafından görüntülenebilir veya son kullanıcıya aktarılabilir. display, false olarak ayarlandığında özel özellikler veri deposunda depolanır ancak yanıt mesajında döndürülmez. Her iki durumda da özel veriler, jeton doğrulandıktan sonra API Proxy'sindeki politikalar tarafından kullanılabilir.

display seçeneği hakkında daha fazla bilgi için Yanıtta özel özellikleri görüntüleme veya gizleme bölümüne bakın.

Çalışma Zamanında Özel Özellikler Alma

OAuthV2/VerifyAccessToken çağrısı olduğunda Apigee Edge, jetonu jeton deposunda arayarak doğrular. Daha sonra Apigee Edge, jeton hakkında bilgi içeren bir dizi bağlam değişkeni doldurur. Bunlardan bazıları:

  • organization_name
  • developer.id
  • developer.app.name
  • client_id
  • grant_type
  • token_type
  • access_token
  • issued_at
  • //--saniye içinde
  • durum
  • kapsam
  • apiürün.adı*

Jetonda herhangi bir özel özellik varsa bu özel özellikler accesstoken.{custom_attribute} adlı bir bağlam değişkeninde kullanıma sunulur. Örneğin, yukarıda gösterilen politikadan bir jeton verildiğini varsayalım. Bu tür bir jeton doğrulandıktan sonra jetonun oluşturulduğu sırada depolanan değeri içeren accesstoken.tenant_list adlı ek bir içerik değişkeni olur.

Politikalar veya koşullar daha sonra bu değişkenlere başvurabilir ve davranışı, içinde depolanan değerlere göre değiştirebilir.

Çalışma Zamanında Özel Özellikleri Ayarlama ve Güncelleme

Bazı durumlarda, Apigee Edge'de bir API çağrısı işlenirken API Proxy'nizin çalışma zamanında erişim jetonuyla ilişkili meta verileri güncellemesini istersiniz. Apigee, bu konuda yardımcı olmak için jeton özelliklerini alma ve ayarlamayla ilgili politikalar sunar. Daha fazla bilgi için OAuth V2 Bilgi Politikası alma ve OAuth V2 Bilgi Politikası oluşturma başlıklı makalelere göz atın.

Bu politikaların her birinde AccessToken öğesi, erişim jetonunu içeren bir değişkene başvurmalıdır.

Bir jetona ekli özel özellikleri güncellemek için Edge API'lerini de kullanabilirsiniz. OAuth 2.0 Erişim Jetonunu Güncelleme yöntemiyle ilgili API belgelerine bakın.