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

Genel Bakış
Geliştirici uygulama kimliği veya uygulama son kullanıcı kimliği ya da her ikisi ile ilişkili OAuth2 erişim jetonlarını iptal eder.
OAuth 2.0 erişim jetonu oluşturmak için OAuthv2 politikasını kullanın. Apigee tarafından oluşturulan jeton aşağıdaki biçimdedir:
{ "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" }
application_name
öğesi, jetonla ilişkilendirilmiş geliştirici uygulama kimliğini içerir.
Apigee, varsayılan olarak jetona son kullanıcı kimliğini dahil etmez. OAuthv2 politikasına <AppEndUser>
öğesini ekleyerek Apigee'yi son kullanıcı kimliğini içerecek şekilde yapılandırabilirsiniz:
<OAuthV2 name="GenerateAccessTokenClient"> <Operation>GenerateAccessTokenV/Operation> ... <AppEndUser>request.queryparam.app_enduser</AppEndUser> </OAuthV2>
Bu örnekte, son kullanıcı kimliğini app_enduser
adlı bir sorgu parametresinde OAuthv2 politikasına iletin.
Ardından son kullanıcı kimliği, app_enduser
öğesindeki jetona dahil edilir:
{ "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" }
Geliştirici uygulama kimliğine göre iptal etme
Geliştirici uygulama kimliğiyle ilişkili OAuth2 erişim jetonlarını iptal edin. Apigee tarafından oluşturulan tüm OAuth2 erişim jetonları, jetonla ilişkili geliştirici uygulamasının kimliğini içerir. Ardından, ilgili uygulama kimliğine göre jetonları iptal edebilirsiniz.
Belirli bir geliştiricinin uygulama kimliklerinin listesini almak için Developer apps API'yi kullanın.
Bir uygulamayla ilgili ayrıntıları almak için Developer apps API'yi de kullanabilirsiniz.
Uygulama son kullanıcı kimliğine göre iptal etme
Belirli bir uygulamanın son kullanıcı kimliğiyle ilişkili OAuth2 erişim jetonlarını iptal edin. Bu, jetonların verildiği kullanıcının kimliğiyle ilişkili jetondur.
Varsayılan olarak, 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 iptal edilmesini etkinleştirmek için OAuthv2 politikasını, yukarıda gösterildiği gibi jetona kullanıcı kimliğini dahil edecek şekilde yapılandırmanız gerekir.
Uygulama son kullanıcı kimliği almak için Developer apps API'yi kullanın.
Örnekler
Aşağıdaki örneklerde, OAuth2 erişim jetonlarını iptal etmek için OAuth V2 iptal politikası kullanılmaktadır.
Geliştirici uygulama kimliği
Erişim jetonlarını geliştirici uygulama kimliğine göre iptal etmek için politikanızda <AppId>
öğesini kullanın.
Aşağıdaki örnekte, erişim jetonunun geliştirici uygulama kimliğinin app_id
adlı bir sorgu parametresinde bulunması beklenir:
<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy"> <DisplayName>Revoke OAuth v2.0-1</DisplayName> <AppId ref="request.queryparam.app_id"></AppId> </RevokeOAuthV2>
Politika, geliştirici uygulamasının kimliğini temel alarak erişim jetonunu iptal eder.
Zaman damgasından önce iptal etme
Belirli bir tarih ve saatten önce oluşturulan erişim jetonlarını geliştirici uygulama kimliğine göre iptal etmek için politikanızda <RevokeBeforeTimestamp>
öğesini kullanın. <RevokeBeforeTimestamp>
UTC sıfır zamanını milisaniye cinsinden belirtir. Bu tarihten önce verilen tüm jetonlar iptal edilir.
Aşağıdaki örnekte, 1 Temmuz 2019'dan önce oluşturulan bir geliştirici uygulamasının erişim jetonları iptal edilmektedir:
<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy"> <DisplayName>Revoke OAuth v2.0-1</DisplayName> <AppId ref="request.queryparam.app_id"></AppId> <RevokeBeforeTimestamp>1561939200000</RevokeBeforeTimestamp> </RevokeOAuthV2>
<RevokeBeforeTimestamp>
öğesi, 1 Ocak 1970 UTC'de gece yarısından bu yana geçen milisaniye sayısını temsil eden 64 bitlik (uzun) bir tam sayı alır.
Öğe Referansı
Öğe referansında, RevokeOAuthV2 politikasının öğeleri ve özellikleri açıklanmaktadır.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RevokeOAuthV2 continueOnError="false" enabled="true" name="GetOAuthV2Info-1"> <DisplayName>Get OAuth v2.0 Info 1</DisplayName> <AppId ref="variable"></AppId> <EndUserId ref="variable"></EndUserId> <RevokeBeforeTimestamp ref="variable"></RevokeBeforeTimestamp> <Cascade>false</Cascade> </RevokeOAuthV2>
<RevokeOAuthV2> özellikleri
<RevokeOAuthV2 continueOnError="false" enabled="true" name="Revoke-OAuth-v20-1">
Aşağıdaki tabloda, tüm politika üst öğelerinde ortak olan özellikler açıklanmaktadır:
Özellik | Açıklama | Varsayılan | Varlık |
---|---|---|---|
name |
Politikanın dahili adı. İsteğe bağlı olarak, yönetim kullanıcı arayüzü proxy düzenleyicisinde politikayı farklı bir doğal dil adıyla etiketlemek için |
Yok | Zorunlu |
continueOnError |
Bir politika başarısız olduğunda hata döndürmek için Bir politika başarısız olsa bile akış yürütmesinin devam etmesi için |
yanlış | İsteğe bağlı |
enabled |
Politikayı zorunlu kılmak için Politikayı devre dışı bırakmak için |
doğru | İsteğe bağlı |
async |
Bu özelliğin desteği sonlandırılmıştır. |
yanlış | Kullanımdan kaldırıldı |
<DisplayName> öğesi
Yönetim kullanıcı arayüzü proxy düzenleyicisinde politikayı farklı bir doğal dil adıyla etiketlemek için name
özelliğine ek olarak kullanın.
<DisplayName>Policy Display Name</DisplayName>
Varsayılan |
Yok Bu öğeyi atlarsanız politikanın |
---|---|
Varlık | İsteğe bağlı |
Tür | Dize |
<AppId> öğesi
İptal edilecek jetonların geliştirici uygulama kimliğini belirtir. Uygulama kimliğini içeren bir değişken veya gerçek bir uygulama kimliği gönderin.
<AppId>appIdString</AppId> or: <AppId ref="request.queryparam.app_id"></AppId>
Varsayılan |
|
---|---|
Varlık |
İsteğe bağlı |
Tür | Dize |
Geçerli değerler |
Uygulama kimliği dizesi içeren bir akış değişkeni veya gerçek dize. |
<Cascade> öğesi
true
ise ve geleneksel opak erişim jetonunuz varsa <AppId>
veya <EndUserId>
eşleşirse hem yenileme jetonu hem de erişim jetonu iptal edilir.
false
ise
yalnızca erişim jetonu iptal edilir ve yenileme jetonu değişmez. Aynı davranış yalnızca opak erişim jetonları için geçerlidir.
<Cascade>false<Cascade>
Varsayılan |
yanlış |
---|---|
Varlık |
İsteğe bağlı |
Tür | Boole |
Geçerli değerler | true veya false |
<EndUserId> öğesi
İptal edilecek jetonun uygulama son kullanıcı kimliğini belirtir. Kullanıcı kimliğini içeren bir değişken veya gerçek bir jeton dizesi gönderin.
<EndUserId>userIdString</EndUserId> or: <EndUserId ref="request.queryparam.access_token"></EndUserId>
Varsayılan |
|
---|---|
Varlık |
İsteğe bağlı |
Tür | Dize |
Geçerli değerler |
Kullanıcı kimliği dizesi içeren bir akış değişkeni veya gerçek dize. |
<RevokeBeforeTimestamp> öğesi
Zaman damgasından önce verilen jetonları iptal edin. Bu öğe, jetonları belirli bir zamandan önce iptal etmenize olanak tanımak için <AppId>
ve <EndUserId>
ile çalışır.
Varsayılan değer, politikanın yürütüldüğü zamandır.
<RevokeBeforeTimestamp>timeStampString</RevokeBeforeTimestamp> or: <RevokeBeforeTimestamp ref="request.queryparam.revoke_since_timestamp"></RevokeBeforeTimestamp>
Varsayılan |
Politikanın yürütüldüğü zaman damgası. |
---|---|
Varlık |
İsteğe bağlı |
Tür | 1 Ocak 1970 UTC'de gece yarısından bu yana geçen milisaniye sayısını temsil eden 64 bitlik (uzun) tam sayı. |
Geçerli değerler |
Zaman damgası içeren bir akış değişkeni veya gerçek zaman damgası. Zaman damgası gelecekte olamaz ve 1 Ocak 2014'ten önce olamaz. |
Akış değişkenleri
RevokeOAuthV2 politikası, akış değişkenlerini ayarlamaz.
Hata referansı
Bu bölümde, döndürülen hata kodları ve hata mesajları ile bu politika bir hata tetiklediğinde Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Hataları ele almak için hata kuralları geliştiriyorsanız bu bilgileri bilmeniz önemlidir. Daha fazla bilgi edinmek için Politika hataları hakkında bilmeniz gerekenler ve Hataları ele alma başlıklı makaleleri inceleyin.
Çalışma zamanı hataları
Bu hatalar, politika yürütüldüğünde ortaya çıkabilir. Aşağıda gösterilen hata adları, bir hata oluştuğunda fault.name
değişkenine atanan dizelerdir. Daha fazla bilgi için aşağıdaki Hata değişkenleri bölümüne bakın.
Hata kodu | HTTP durumu | Neden |
---|---|---|
steps.oauth.v2.InvalidFutureTimestamp |
500 | Zaman damgası gelecekte olamaz. |
steps.oauth.v2.InvalidEarlyTimestamp |
500 | Zaman damgası 1 Ocak 2014'ten önce olamaz. |
steps.oauth.v2.InvalidTimestamp |
500 | Zaman damgası geçersiz. |
steps.oauth.v2.EmptyAppAndEndUserId |
500 | Hem AppdId hem de EndUserId boş olamaz. |
Dağıtım hataları
Dağıtım hataları hakkında bilgi edinmek için kullanıcı arayüzünde raporlanan mesaja bakın.
Hata değişkenleri
Bu değişkenler, bu politika çalışma zamanında bir hata tetiklediğinde ayarlanır.
Değişkenler | Konum | Örnek |
---|---|---|
fault.name="fault_name" |
fault_name, yukarıdaki Yazılım hataları tablosunda listelenen hatanın adıdır. Hata adı, hata kodunun son kısmıdır. | fault.name Matches "IPDeniedAccess" |
oauthV2.policy_name.failed |
policy_name, hatayı atan politikanın kullanıcı tarafından belirtilen adıdır. | oauthV2.GetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name, hatayı atan politikanın kullanıcı tarafından belirtilen adıdır. | oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id |
oauthV2.policy_name.fault.cause |
policy_name, hatayı atan politikanın kullanıcı tarafından belirtilen adıdır. | oauthV2.GetTokenInfo.cause = ClientID is Invalid |
Örnek hata yanıtı
{ "fault":{ "faultstring":"Timestamp is in the future.", "detail":{ "errorcode":"steps.oauth.v2.InvalidFutureTimestamp" } } }
Örnek hata kuralı
<FaultRule name="RevokeOAuthV2 Faults"> <Step> <Name>AM-InvalidTimestamp</Name> </Step> <Condition>(fault.name = "InvalidFutureTimestamp")</Condition> </FaultRule>