OAuth V2 politikasını iptal et

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

politika simgesi

Genel Bakış

Bir geliştirici uygulama kimliği, uygulama son kullanıcı kimliği veya her ikisi ile 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 bir jeton biçimi aşağıdaki gibidir:

{
  "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.

Apigee, varsayılan olarak jetona son kullanıcı kimliğini dahil etmez. Apigee'yi şunları içerecek şekilde yapılandırabilirsiniz: OAuthv2 politikasına <AppEndUser> öğesini ekleyerek son kullanıcı kimliğini değiştirin:

<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ğiyle iptal et

Geliştirici uygulama kimliğiyle ilişkilendirilmiş OAuth2 erişim jetonlarını iptal edin. Apigee tarafından oluşturulan tüm OAuth2 erişim jetonları, ilişkili geliştirici uygulamasının kimliğini içerir. bunu da belirtelim. Daha sonra jetonları bu uygulama kimliğine göre iptal edebilirsiniz.

  • Belirli bir geliştiriciye ait uygulama kimliklerinin listesini almak için Developer apps API'yi kullanın.

  • Developer apps API'yi de kullanabilirsiniz bir uygulamayla ilgili ayrıntıları almak için.

Uygulama 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 edin. Bu jetondur jetonların verildiği kullanıcının kimliğiyle ilişkilidir.

Varsayılan olarak, OAuth erişim jetonunda son kullanıcı kimliği için bir alan yoktur. İptal etmeyi etkinleştirmek için: Son kullanıcı kimliğine göre OAuth 2.0 erişim jetonları kullanıyorsanız OAuthv2 politikasını kullanıcı kimliğini içerecek şekilde yapılandırmanız gerekir. yukarıda gösterildiği gibi jetona ekleyin.

Bir uygulamanın son kullanıcı kimliğini almak için Developer Apps API.

Örnekler

Aşağıdaki örneklerde, OAuth2 erişim jetonlarını iptal etmek için OAuth V2'yi iptal 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 şurada <AppId> öğesini kullanın: politikanızı ihlal eder.

Aşağıdaki örnekte, app_id:

<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy">
  <DisplayName>Revoke OAuth v2.0-1</DisplayName>
  <AppId ref="request.queryparam.app_id"></AppId>
</RevokeOAuthV2>

Geliştirici uygulamasının kimliğine göre politika, erişim jetonunu iptal eder.

Zaman damgasından önce iptal et

Erişim jetonlarını belirli bir tarih ve saatten önce oluşturulmuş geliştirici uygulama kimliğine göre iptal etmek için: politikanızda <RevokeBeforeTimestamp> öğesini kullanın. <RevokeBeforeTimestamp>. UTC dönem saatini milisaniye cinsinden belirtir. Bu tarihten önce gönderilen tüm jetonlar iptal edilir.

Aşağıdaki örnek, 1 Temmuz 2019'dan önce oluşturulan bir geliştirici uygulaması için erişim jetonlarını iptal eder:

<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, değeri temsil eden 64 bitlik (uzun) bir tam sayı 1 Ocak 1970 UTC tarihinde gece yarısından bu yana geçen milisaniye sayısı.


Öğ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> özellikler

<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çermelidir. Bu değer, 255 karakteri aşmalıdır.

İsteğe bağlı olarak, politikayı<DisplayName> yönetim arayüzü proxy düzenleyicisinde farklı bir doğal dil adı kullanabilir.

Yok Zorunlu
continueOnError

Bir politika başarısız olduğunda hata döndürmesi için false olarak ayarlayın. Bu beklenen bir durumdur çoğu politika için geçerli olur.

Akış yürütmenin bir politikadan sonra bile devam etmesi için true olarak ayarlayın başarısız olur.

false İsteğe bağlı
enabled

Politikayı uygulamak için true olarak ayarlayın.

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

true İsteğe bağlı
async

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

false Kullanımdan kaldırıldı

&lt;DisplayName&gt; öğe

Politikayı name özelliğine ek olarak farklı bir doğal dil adına sahip yönetim arayüzü proxy düzenleyicisi.

<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

&lt;AppId&gt; öğe

İptal edilecek jetonların geliştirici uygulaması kimliğini belirtir. uygulama kimliği veya değişmez uygulama kimliği.

<AppId>appIdString</AppId>

or:

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

request.formparam.app_id (x-www-form-url olarak kodlanıp istekte belirtilir. gövde)

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.

<Basamaklı> öğe

true ve geleneksel opak erişim jetonunuz varsa yenileme jetonu ve erişim jetonu <AppId> veya <EndUserId> eşleşme. false ise yalnızca erişim jetonu iptal edilir ve yenileme jetonunda bir değişiklik olmaz. Aynı davranış geçerlidir yalnızca opak erişim jetonları içindir.

<Cascade>false<Cascade>
Varsayılan

false

Varlık

İsteğe bağlı

Tür Boole
Geçerli değerler true veya false

&lt;EndUserId&gt; öğe

İptal edilecek jetonun uygulama son kullanıcı kimliğini belirtir. kullanıcı kimliği veya düz jeton dizesi.

<EndUserId>userIdString</EndUserId>

or:

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

request.formparam.enduser_id (x-www-form-url olarak kodlanıp istekte belirtilir. gövde)

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 sabit değer dizesi.

&lt;RevokeBeforeTimestamp&gt; öğe

Zaman damgasından önce verilen jetonları iptal edin. Bu öğe, <AppId> ile çalışır ve jetonları belirli bir tarihten önce iptal etmenize olanak tanımak için <EndUserId>. Varsayılan değer, politikanın yürütüleceği 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 Gece yarısından bu yana geçen milisaniye sayısını temsil eden 64 bit (uzun) tam sayı, 1 Ocak 1970 UTC.
Geçerli değerler

Zaman damgası içeren bir akış değişkeni veya değişmez zaman damgası. Zaman damgası, gelecekte 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 döndürülen hata kodları ve hata mesajlarının yanı sıra Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Hata kuralları geliştirirken bu bilgilerin farkında olmanız önemlidir. hoşuma gitmesi için bir fırsattır. Daha fazla bilgi için Bilmeniz gerekenler Politika hataları ve Kullanım sorun.

Çalışma zamanı hataları

Bu hatalar, politika yürütüldüğünde ortaya çıkabilir. Aşağıda gösterilen hata adları dizedir fault.name değişkenine atanır. Hatayı Göster değişkenler 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 AppdId ve 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, 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 listelendiği gibi 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"
      }
   }
}

Örnek hata kuralı

<FaultRule name="RevokeOAuthV2 Faults">
    <Step>
        <Name>AM-InvalidTimestamp</Name>
    </Step>
    <Condition>(fault.name = "InvalidFutureTimestamp")</Condition>
</FaultRule>

İlgili konular