OAuth V2 politikasını iptal et

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

politika simgesi

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ı. name özelliğinin değeri harf, sayı, boşluk, kısa çizgi, alt çizgi ve nokta içerebilir. Bu değer 255 karakterden uzun olamaz.

İ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 <DisplayName> öğesini kullanın.

Yok Gerekli
continueOnError

Bir politika başarısız olduğunda hata döndürülmesi için false olarak ayarlayın. Bu, çoğu politika için beklenen davranıştır.

Bir politika başarısız olduktan sonra bile akış yürütülmesinin devam etmesi için true değerine ayarlayın.

false İsteğe bağlı
enabled

Politikayı uygulamak için true değerine ayarlayın.

Politikayı devre dışı bırakmak için false olarak ayarlayın. Bu politika, bir akışa bağlı kalsa bile uygulanmaz.

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 name özelliğinin değeri kullanılır.

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

request.formparam.app_id (istek gövdesinde kodlanmış ve belirtilen bir x-www-form-url)

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

request.formparam.enduser_id (istek gövdesinde kodlanmış ve belirtilen bir x-www-form-url)

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>

İlgili konular