Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Genel bakış
Geliştirici uygulama kimliği veya uygulama son kullanıcı kimliğiyle ya da her ikisiyle ilişkilendirilmiş 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 jetonlar 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 uygulaması kimliğini içerir.
Varsayılan olarak Apigee, son kullanıcı kimliğini jetona dahil etmez. OAuthv2 politikasına <AppEndUser>
öğesini ekleyerek Apigee'yi son kullanıcı kimliğini dahil edecek ş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.
Daha sonra son kullanıcı kimliği, app_enduser
öğesindeki jetona 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" }
Geliştirici uygulama kimliğine göre iptal et
Geliştirici uygulaması kimliğiyle ilişkili OAuth2 erişim jetonlarını iptal etme 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, bu uygulama kimliğine dayalı jetonları iptal edebilirsiniz.
Belirli bir geliştiriciye ait 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.
Uygulamanın son kullanıcı kimliğine göre iptal et
Belirli bir uygulama son kullanıcısının kimliğiyle ilişkili OAuth2 erişim jetonlarını iptal etme 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 için bir alan yoktur. OAuth 2.0 erişim jetonlarının son kullanıcı kimliğiyle iptal edilmesini etkinleştirmek için OAuthv2 politikasını, yukarıda gösterildiği gibi kullanıcı kimliğini jetona dahil edecek şekilde yapılandırmanız gerekir.
Uygulamanın son kullanıcı kimliğini almak için Developer apps API'yi kullanın.
Sana Özel
Aşağıdaki örneklerde, OAuth2 erişim jetonlarını iptal etmek için OAuth V2'yi İptal Etme 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, app_id
adlı bir sorgu parametresinde erişim jetonunun geliştirici uygulama kimliğinin 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ğine göre erişim jetonunu iptal eder.
Zaman damgasından önce iptal et
Belirli bir tarih ve saatten önce oluşturulmuş geliştirici uygulaması kimliğine göre erişim jetonlarını 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 tarihinde gece yarısından itibaren geçen milisaniye sayısını temsil eden 64 bit (uzun) bir tam sayı alır.
Öğe Referansı
Öğe referansı, CancelOAuthV2 politikasının öğelerini ve özelliklerini açıklar.
<?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>
<CancelOAuthV2> ö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, politikayı yönetim kullanıcı arayüzü proxy düzenleyicisinde farklı bir doğal dil adıyla etiketlemek için |
Yok | Gerekli |
continueOnError |
Bir politika başarısız olduğunda hata döndürülmesi için Bir politika başarısız olduktan sonra bile akış yürütülmesinin devam etmesi için |
false | İsteğe bağlı |
enabled |
Politikayı uygulamak için Politikayı devre dışı bırakmak için |
true | İsteğe bağlı |
async |
Bu özellik kullanımdan kaldırıldı. |
false | Kullanımdan kaldırıldı |
<DisplayName> öğesi
Politikayı, yönetim kullanıcı arayüzü proxy düzenleyicisinde 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 çıkarırsanız politikanın |
---|---|
Varlık | İsteğe bağlı |
Tür | Dize |
<AppId> öğesi
İptal edilecek jetonların geliştirici uygulaması kimliğini belirtir. Uygulama kimliğini veya uygulama kimliğini içeren bir değişken iletin.
<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 harflerden oluşan bir dize. |
<Cascade> öğesi
true
ise ve geleneksel bir 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ştirilmez. Aynı davranış yalnızca opak erişim jetonları için geçerlidir.
<Cascade>false<Cascade>
Varsayılan |
false |
---|---|
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 değişmez jeton dizesi iletin.
<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 |
User-ID dizesi içeren akış değişkeni veya harflerden oluşan bir dize. |
<CancelBeforeTimestamp> öğesi
Zaman damgasından önce verilen jetonları iptal edin. Bu öğe, jetonları belirli bir saatten önce iptal etmenizi sağlamak için <AppId>
ve <EndUserId>
ile çalışır.
Varsayılan değer, politikanın uygulandığı zamandır.
<RevokeBeforeTimestamp>timeStampString</RevokeBeforeTimestamp> or: <RevokeBeforeTimestamp ref="request.queryparam.revoke_since_timestamp"></RevokeBeforeTimestamp>
Varsayılan |
Politikanın uygulandığı zaman damgası. |
---|---|
Varlık |
İsteğe bağlı |
Tür | 1 Ocak 1970 UTC tarihinde gece yarısından bu yana geçen milisaniye sayısını temsil eden 64 bit (uzun) tam sayı. |
Geçerli değerler |
Zaman damgası içeren bir akış değişkeni veya zaman damgası. Zaman damgası gelecekte olamaz ve 1 Ocak 2014'ten önce olamaz. |
Akış değişkenleri
CancelOAuthV2 politikası akış değişkenlerini ayarlamaz.
Hata referansı
Bu bölümde, bu politika bir hatayı tetiklediğinde Edge tarafından ayarlanan hata kodları ile hata mesajları ve döndürülen hata mesajları ile Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Bu bilgiyi, hataları ele almak için hata kuralları geliştirip geliştirmediğinizi bilmeniz önemlidir. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler ve Hataları işleme bölümlerine bakın.
Çalışma zamanı hataları
Politika yürütüldüğünde bu hatalar ortaya çıkabilir. Aşağıda gösterilen hata adları, bir hata meydana geldiğinde 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 için kullanıcı arayüzünde bildirilen 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 Çalışma zamanı 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, hataya neden olan politikanın kullanıcı tarafından belirtilen adıdır. | oauthV2.GetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name, hataya neden olan 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, hataya neden olan 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" } } }
Hata kuralı örneği
<FaultRule name="RevokeOAuthV2 Faults"> <Step> <Name>AM-InvalidTimestamp</Name> </Step> <Condition>(fault.name = "InvalidFutureTimestamp")</Condition> </FaultRule>