OAuth V2 politikasını iptal et

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

politika simgesi

Genel Bakış

Bir geliştirici uygulama kimliği veya uygulama son kullanıcı kimliği ya da her ikisiyle de 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 jetonlar 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"
}

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. Apigee'yi, OAuthv2 politikasına <AppEndUser> öğesini ekleyerek 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. Son kullanıcı kimliği daha sonra 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

Bir geliştirici uygulaması 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, bu 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 uygulama hakkında ayrıntılı bilgi edinmek için Developer apps API'yi de kullanabilirsiniz.

Uygulama son kullanıcı kimliğine göre iptal etme

Belirli bir uygulama son kullanıcısının 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 için bir 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 kullanıcı kimliğini jetona 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 politikasını iptal etme kullanılır.

Geliştirici uygulama kimliği

Geliştirici uygulaması kimliğine göre erişim jetonlarını 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ı bekleniyor:

<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 kullanarak erişim jetonunu iptal eder.

Zaman damgasından önce iptal et

Belirli bir tarih ve saatten önce oluşturulan erişim jetonlarını geliştirici uygulaması kimliğine göre iptal etmek için politikanızda <RevokeBeforeTimestamp> öğesini kullanın. <RevokeBeforeTimestamp> milisaniye cinsinden bir UTC sıfır zamanı belirtir. O zamandan önce verilen tüm jetonlar iptal edilir.

Aşağıdaki örnekte, 1 Temmuz 2019'dan önce oluşturulan bir geliştirici uygulaması için 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 tarihinden 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ı. name özelliğinin değeri harf, rakam, boşluk, kısa çizgi, alt çizgi ve nokta içerebilir. Bu değer 255 karakteri aşamaz.

İsteğe bağlı olarak, yönetim kullanıcı arayüzü proxy düzenleyicisindeki politikayı farklı bir doğal dil adıyla etiketlemek için <DisplayName> öğesini kullanın.

Yok Zorunlu
continueOnError

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

Bir politika başarısız olsa bile akış yürütme işleminin devam etmesi için true olarak ayarlayın.

yanlış İsteğe bağlı
enabled

Politikayı zorunlu kılmak için true olarak ayarlayın.

Politikayı devre dışı bırakmak için false olarak ayarlayın. Politika, akışa ekli kalsa bile zorunlu kılınmaz.

doğru İsteğe bağlı
async

Bu özelliğin desteği sonlandırıldı.

yanlış Kullanımdan kaldırıldı

<DisplayName> öğesi

Yönetim kullanıcı arayüzü proxy düzenleyicisindeki politikayı farklı ve doğal dilde bir adla etiketlemek için name özelliğine ek olarak kullanılır.

<DisplayName>Policy Display Name</DisplayName>
Varsayılan

Yok

Bu öğeyi atlarsanı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 uygulama kimliğini belirtir. Uygulama kimliğini içeren bir değişkeni veya sabit bir uygulama kimliğini iletin.

<AppId>appIdString</AppId>

or:

<AppId ref="request.queryparam.app_id"></AppId>
Varsayılan

request.formparam.app_id (x-www-form-urlencoded ve istek gövdesinde belirtilmiş)

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 değişmez dize.

<Cascade> öğesi

true 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ş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 değişmez dize belirteci iletin.

<EndUserId>userIdString</EndUserId>

or:

<EndUserId ref="request.queryparam.access_token"></EndUserId>
Varsayılan

request.formparam.enduser_id (x-www-form-urlencoded ve istek gövdesinde belirtilmiş)

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 değişmez dize.

<RevokeBeforeTimestamp> öğesi

Zaman damgasından önce verilen jetonları iptal edin. Bu öğe, belirli bir zamandan önce jetonları iptal etmenize olanak tanımak için <AppId> ve <EndUserId> ile birlikte ç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 tarihinden bu yana gece yarısından itibaren geçen milisaniye sayısını gösteren 64 bitlik (uzun) tam sayı.
Geçerli değerler

Zaman damgası içeren bir akış değişkeni veya değişmez 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, bu politika bir hatayı tetiklediğinde döndürülen hata kodları ve hata mesajları ile Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Bu bilgiler, hataları işlemek için hata kuralları geliştiriyorsanız bilmeniz gereken önemli bilgilerdir. 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ülürken oluşabilir. 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 bildirilen mesaja bakın.

Hata değişkenleri

Bu değişkenler, bu politika çalışma zamanında bir hatayı tetiklediğinde ayarlanır.

Değişkenler Konum Örnek
fault.name="fault_name" fault_name, yukarıdaki Çalışma zamanı hataları tablosunda listelenen hata adıdır. Hata adı, hata kodunun son kısmıdır. fault.name Matches "IPDeniedAccess"
oauthV2.policy_name.failed policy_name, hatayı veren politikanın kullanıcı tarafından belirtilen adıdır. oauthV2.GetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name, hatayı veren 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ı veren 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>

İlgili konular