Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. info
Bu bölümde, OAuth 2.0 erişim jetonlarının son kullanıcı kimliğine, uygulama kimliğine veya her ikisine göre nasıl alınacağı ve iptal edileceği açıklanmaktadır. Son kullanıcı kimliği özelliği, bu konuda açıklandığı şekilde özel kurulum gerektirir. Son kullanıcı, API'yi çağıran uygulamanın kullanıcısıdır.
Son kullanıcı kimliği erişimi ne zaman etkinleştirilmelidir?
Bazen kullanıcı kimliğini bir erişim jetonunda depolamak yararlı olabilir. Son kullanıcı kimliği erişim özelliğini yalnızca iyi bir kullanım alanınız varsa etkinleştirin. Örneğin:
- Web siteniz veya uygulamanızda, kullanıcıların hangi üçüncü taraf uygulamalarına yetki verdiklerini görebildiği ve bu uygulamalara erişimi iptal etme seçeneği sunan bir özellik.
- Yetkili bir kullanıcının belirli bir geliştirici uygulamasıyla ilişkili tüm erişim jetonlarını iptal etmesine olanak tanıyan bir özellik.
OAuth erişim jetonları hakkında
Uygulama kimlikleri, OAuth erişim jetonuna otomatik olarak eklenir. Bu nedenle, aşağıda açıklandığı şekilde bir kuruluş için jeton erişimini etkinleştirdikten sonra erişim jetonlarını uygulama kimliğine göre iptal edebilirsiniz.
OAuth 2.0 erişim jetonlarını son kullanıcı kimliğine göre almak ve iptal etmek için erişim jetonlarında bir son kullanıcı kimliği bulunmalıdır. Aşağıdaki prosedürde, mevcut bir jetona nasıl son kullanıcı kimliği ekleneceği açıklanmaktadır.
Edge, varsayılan olarak bir OAuth 2.0 erişim jetonu oluşturduğunda jeton aşağıdaki biçimde olur:
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", //--in seconds "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", //--in seconds "refresh_count" : "0" }
Aşağıdakileri göz önünde bulundurun:
- application_name alanı, jetonla ilişkili uygulamanın UUID'sini içerir. OAuth 2.0 erişim jetonlarının uygulama kimliğine göre alınmasını ve iptal edilmesini etkinleştirirseniz kullandığınız uygulama kimliği budur.
- access_token alanı, OAuth 2.0 erişim jetonu değerini içerir.
Varsayılan OAuth erişim jetonunda son kullanıcı kimliği alanı yoktur. OAuth 2.0 erişim jetonlarının son kullanıcı kimliğine göre alınmasını ve iptal edilmesini etkinleştirmek için OAuth 2.0 politikasını, aşağıdaki prosedürde açıklandığı gibi jetona kullanıcı kimliğini dahil edecek şekilde yapılandırmanız gerekir. Yalnızca OAuth 2.0 erişim jetonlarını uygulama kimliğine göre almak ve iptal etmek istiyorsanız son kullanıcı kimliğine göre erişimi etkinleştirmeniz gerekmediğini unutmayın.
Son kullanıcı kimliğini jeton oluşturma uç noktasına iletirsiniz. Son kullanıcının kimliğini sorgu parametresi, form parametresi veya bir başlıkta (bu konunun ilerleyen bölümlerinde açıklandığı gibi) iletebilirsiniz. Edge'i, son kullanıcı kimliğini jetona dahil edecek şekilde yapılandırdıktan sonra bu kimlik aşağıdaki gibi app_enduser alanı olarak eklenir:
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "app_enduser" : "6ZG094fgnjNf02EK", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", //--in seconds "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", //--in seconds "refresh_count" : "0" }
Bu alma ve iptal işlemlerini gerçekleştiren API çağrılarını nasıl yapacağınızı öğrenmek için aşağıdaki Smart Docs'a bakın:
- OAuth2 erişim jetonunu son kullanıcıya veya uygulama kimliğine göre iptal etme
- Son Kullanıcı veya Uygulama Kimliğine göre OAuth2 erişim jetonu alma
Kullanıcı kimliğine ve uygulama kimliğine göre OAuth 2.0 jetonlarına erişimi etkinleştirme
Kullanıcı kimliğine ve uygulama kimliğine göre OAuth 2.0 jetonlarına erişimi etkinleştirme şekliniz, Edge'i nasıl dağıttığınıza bağlıdır:
Bulut tabanlı dağıtım
Edge'in bulut tabanlı dağıtımı, yapılandırma işleminin çoğunun Apigee tarafından yönetildiği anlamına gelir. Yalnızca OAuth 2.0 politikasını, kullanıcı kimliğini erişim jetonuna ekleyecek şekilde yapılandırmaktan sorumlusunuz. Daha fazla bilgi için aşağıdaki prosedüre bakın.
Private Cloud dağıtımı için Edge
Private Cloud (şirket içi) için Apigee Edge'de yapılandırmadan tamamen siz sorumlusunuz. Daha fazla bilgi için İşlemler ve Yapılandırma başlıklı makaleyi inceleyin.
Apigee hybrid
Kullanıcı kimliğine göre OAuth 2.0 jetonlarına erişim varsayılan olarak etkindir. Yalnızca OAuth 2.0 politikasını, kullanıcı kimliğini erişim jetonuna ekleyecek şekilde yapılandırmaktan sorumlusunuz. Daha fazla bilgi için aşağıdaki prosedürün 5. adımına bakın.
Bulutta erişimi etkinleştirme
1. adım: Bir kuruluşun bu özelliği desteklemesini
Bu özellik, desteklemek istediğiniz her kuruluş için etkinleştirilmelidir.
Kuruluşunuzu güncellemeleri için Apigee Edge Destek Ekibi ile iletişime geçin.
2. adım: opsadmin ve orgadmin rollerine oauth2 kaynak izinleri verin
Yalnızca orgadmin ve opsadmin rollerinize, son kullanıcı kimliğine veya uygulama kimliğine göre oauth2
kaynağına yönelik bu alma (get
) ve iptal etme (put
) çağrılarını yapma izni verilmelidir.
oauth2
kaynağı için get
ve put
izinlerine sahip rolleri görmek üzere Kaynak için İzin Al API çağrısını kullanabilirsiniz.
Herhangi bir izin eklemeniz veya kaldırmanız gerekirse güncellemeleri yapmaları için Apigee Edge Destek Ekibi ile iletişime geçin.
3. adım: Mevcut OAuth 2.0 erişim jetonlarını Cassandra düğümlerinize kopyalayın
Apigee Destek Ekibi tarafından gerçekleştirilir: Bu görevde, etkilenen kuruluşlardaki mevcut OAuth 2.0 erişim jetonlarının kopyaları kopyalanıp Cassandra düğümlerinizde depolanır. Bu prosedür, Apigee Edge kapsüllerinizin her biri için Cassandra düğümlerinde gerçekleştirilir. Bu, mevcut ve yeni oluşturulan tüm OAuth 2.0 erişim jetonlarınızda API çağrılarının alınmasına ve iptal edilmesine olanak tanır.
4. Adım: Son kullanıcı kimliklerini içeren erişim jetonları oluşturmak için bir OAuth 2.0 politikası yapılandırın
Erişim jetonları oluşturmak için kullanılan OAuth 2.0 politikasını, jetona son kullanıcı kimliğini dahil edecek şekilde yapılandırın. Erişim jetonlarına son kullanıcı kimliklerini ekleyerek son kullanıcı kimliğine göre alma ve iptal etme işlemlerini gerçekleştirebilirsiniz.
Politikayı, erişim jetonuna son kullanıcı kimliği içerecek şekilde yapılandırmak için son kullanıcı kimliğini içeren giriş değişkenini belirtmeniz gerekir. Değişkeni belirtmek için <AppEndUser> etiketini kullanın.
Aşağıdaki GenerateAccessTokenClient adlı OAuth 2.0 politikası, bir OAuth 2.0 erişim jetonu oluşturur. <AppEndUser> etiketinin kalın olarak eklendiğini unutmayın:
<OAuthV2 async="false" continueOnError="false" enabled="true" name="GenerateAccessTokenClient"> <DisplayName>OAuth 2.0.0 1</DisplayName> <ExternalAuthorization>false</ExternalAuthorization> <Operation>GenerateAccessToken</Operation> <SupportedGrantTypes> <GrantType>client_credentials</GrantType> </SupportedGrantTypes> <GenerateResponse enabled="true"/> <GrantType>request.queryparam.grant_type</GrantType> <AppEndUser>request.header.appuserID</AppEndUser> <ExpiresIn>960000</ExpiresIn> </OAuthV2>
Ardından, kullanıcı kimliğini appuserID üst bilgisi olarak göndererek OAuth 2.0 erişim jetonunu oluşturmak için aşağıdaki cURL komutunu kullanabilirsiniz:
curl -H "appuserID:6ZG094fgnjNf02EK" / https://myorg-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials / -X POST / -d 'client_id=k3nJyFJIA3p62TKIkLO6OJNi87GYXFmP&client_secret=gk58jK5lIp943AY4'
Bu örnekte, appuserID istek üst bilgisi olarak iletilir. İstekler kapsamındaki bilgileri birçok şekilde iletebilirsiniz. Örneğin, alternatif olarak şunları yapabilirsiniz:
- Form parametresi değişkeni kullanın: request.formparam.appuserID
- Son kullanıcı kimliğini sağlayan bir akış değişkeni kullanın