Temel Kimlik Doğrulama politikası

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

Ne?

Şu kimlikler için basit Temel Kimlik Doğrulaması kullanmanızı sağlar: yeni bir yol sağlar. Politika bir kullanıcı adı ve şifre alır, Base64 bunları kodlar ve değişkene dönüştürülebilir. Elde edilen değer Basic Base64EncodedString biçimindedir. Bu değeri genellikle şunun gibi bir HTTP üstbilgisine yazarsınız: Yetkilendirme üstbilgisi.

Bu politika, Base64 kodlamalı bir dizede depolanan kimlik bilgilerinin kullanıcı adına şifresini çözmenizi de sağlar. ve şifre.

Video: Bu video, bir kullanıcı adını ve kullanıcı adını Base64 olarak şifresini girin.

Video: Bu video, base64 kodlu bir kullanıcı adının ve şifresini girin.

Örnekler

Giden kodlama

<BasicAuthentication name="ApplyBasicAuthHeader">
   <DisplayName>ApplyBasicAuthHeader</DisplayName>
   <Operation>Encode</Operation>
   <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
   <User ref="BasicAuth.credentials.username" />
   <Password ref="BasicAuth.credentials.password" />
   <AssignTo createNew="false">request.header.Authorization</AssignTo>
</BasicAuthentication>

Yukarıdaki örnek politika yapılandırmasında, kodlanacak kullanıcı adı ve şifre şunlardır: +ref <User> ve <Password> öğeleri. Değişkenler emin olun. Genellikle, değişkenler bir anahtar/değer çiftinden okuyabilirsiniz. Anahtar Değer Eşlemesi'ne göz atın. İşlemler politikası.

Bu yapılandırma, &lt;AssignTo&gt; öğesi için arka uç sunucusuna gönderilen giden istek mesajına eklenmesi gerekir:

Authorization: Basic TXlVc2VybmFtZTpNeVBhc3N3b3Jk

<User> ve <Password> değerleri birleştirildi önce iki nokta üst üste kullanın.

Aşağıdaki girişe sahip bir anahtar/değer eşlemeniz olduğunu unutmayın:

{
  "encrypted" : true,
  "entry" : [ {
    "name" : "username",
    "value" : "MyUsername"
  }, {
    "name" : "password",
    "value" : "MyPassword"
  } ],
  "name" : "BasicAuthCredentials"
}
      

Aşağıdaki KeyValuemapOperations politikalarını BasicAuthentication politikasından önce ekleyin <User> ve Google Etiket Yöneticisi'nin değerlerini <Password> öğelerini anahtar/değer deposundan alıp credentials.username ve credentials.password değişkenleri.

<KeyValueMapOperations name="getCredentials" mapIdentifier="BasicAuthCredentials">
  <Scope>apiproxy</Scope>
  <Get assignTo="credentials.username" index='1'>
    <Key>
      <Parameter>username</Parameter>
    </Key>
  </Get>
  <Get assignTo="credentials.password" index='1'>
    <Key>
      <Parameter>password</Parameter>
    </Key>
  </Get>
</KeyValueMapOperations>
      

Gelen kod çözme

<BasicAuthentication name="DecodeBaseAuthHeaders">
   <DisplayName>Decode Basic Authentication Header</DisplayName>
   <Operation>Decode</Operation>
   <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
   <User ref="request.header.username" />
   <Password ref="request.header.password" />
   <Source>request.header.Authorization</Source>
</BasicAuthentication>

Bu politika örneğinde, politika kullanıcı adı ve şifrenin kodunu Authorization &lt;Source&gt; öğesi tarafından belirtildiği şekliyle HTTP üstbilgisi. Base64 Kodlanmış dize Basic Base64EncodedString. biçiminde olmalıdır

Politika, kodu çözülmüş kullanıcı adını request.header.username değişkenine yazar ve kodu çözülmüş şifreyi request.header.password değişkenine ekleyin.


Temel Kimlik Doğrulama politikası hakkında

Politikanın iki çalışma modu vardır:

  • Kodlama: Base64, aşağıdaki dizinde depolanan bir kullanıcı adını ve şifreyi kodlar: değişkenler
  • Kod Çöz: Kullanıcı adının ve şifrenin şifresini Base64 olarak kodlanmış dize

Kullanıcı adı ve şifre genellikle anahtar/değer deposunda saklanır ve daha sonra anahtar/değer deposunu oluşturur. Anahtar/değer deposu kullanma hakkında ayrıntılar için Anahtar/Değer Eşleme İşlemleri bölümüne bakın. politikasına tabidir.

Öğe referansı

Öğe referansı, BasicAuthentication'ın öğelerini ve özelliklerini açıklar. politikası.

<BasicAuthentication async="false" continueOnError="false" enabled="true" name="Basic-Authentication-1">
   <DisplayName>Basic Authentication 1</DisplayName>
   <Operation>Encode</Operation>
   <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
   <User ref="request.queryparam.username" />
   <Password ref="request.queryparam.password" />
   <AssignTo createNew="false">request.header.Authorization</AssignTo>
   <Source>request.header.Authorization</Source> 
</BasicAuthentication>

&lt;BasicAuthentication&gt; özellikler

<BasicAuthentication async="false" continueOnError="false" enabled="true" name="Basic-Authentication-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;Operation&gt; öğe

Base64 politikasının kimlik bilgilerini kodlayıp çözmeyeceğini belirler.

<Operation>Encode</Operation>
Varsayılan: Yok
Bulunma: Zorunlu
Tür:

Dize.

Geçerli değerler şunlardır:

  • Kodla
  • Decode

&lt;IgnoreUnresolvedVariables&gt; öğe

true olarak ayarlandığında, değişken çözüme ulaştırıldı. Temel Kimlik Doğrulama politikası bağlamında kullanıldığında bu ayar genellikle false; parola, belirtilen değişkenlerde bulunamıyor.

<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
Varsayılan: true
Bulunma: İsteğe bağlı
Tür:

Boole

&lt;User&gt; öğe

  • Kodlama için değişkeni belirtmek üzere <User> öğesini kullanın emin olun. Kullanıcı adı ve şifre değerleri her URL'den önce iki nokta üst üste ile Base64 kodlaması.
  • Kod çözme için, kodu çözülmüş kullanıcı adının yazıldığı değişkeni belirtin.
<User ref="request.queryparam.username" /> 
Varsayılan: Yok
Bulunma: Zorunlu
Tür:

Yok

Özellikler

Özellik Açıklama Varsayılan Varlık
referans

Politikanın, kullanıcı adını (kodlama) dinamik olarak okuduğu veya yazdığı değişken kullanıcı adı (kod çözme).

Yok Zorunlu

&lt;Password&gt; öğe

  • Kodlama için değişkeni belirtmek üzere <Password> öğesini kullanın girmeniz gerekir.
  • Kod çözme için kodu çözülmüş şifrenin yazıldığı değişkeni belirtin.
<Password ref="request.queryparam.password" />
Varsayılan: Yok
Bulunma: Zorunlu
Tür:

Yok

Özellikler

Özellik Açıklama Varsayılan Varlık
referans

Politikanın dinamik olarak şifreyi okuduğu (kodlama) veya yazdığı değişken parolayı çözebilir.

Yok Zorunlu

&lt;AssignTo&gt; öğe

Bu değişkenin oluşturduğu kodlanmış veya kodu çözülmüş değerle ayarlanacak hedef değişkeni belirtir politikası.

Aşağıdaki örnekte, politikanın Authorization ayarını yapması gerektiği belirtilmektedir iletinin başlığını oluşturulan değere dönüştür:

<AssignTo createNew="false">request.header.Authorization</AssignTo>
Varsayılan: Yok
Bulunma: Zorunlu
Tür:

Dize

Özellikler

Özellik Açıklama Varsayılan Varlık
createNew Değişkenin değişken olması durumunda politikanın üzerine yazması gerekip gerekmediğini belirler. ayarlandı.

"False" (yanlış) olduğunda, değişkene atama yalnızca değişken şu anda ayarlanmamış (null).

"true" (doğru) olduğunda, değişkene atama her zaman gerçekleşir.

Bu özelliği genellikle "false" olarak ayarlarsınız. (varsayılan).

false İsteğe bağlı

&lt;Source&gt; öğe

Kod çözme için, Base64 olarak kodlanmış dizeyi içeren değişken Basic Base64EncodedString formu. Örneğin, Yetkilendirme başlığına karşılık gelen request.header.Authorization değerini belirtin.

<Source>request.header.Authorization</Source>
Varsayılan: Yok
Bulunma: Kodu Çözme işlemi için gereklidir.
Tür:

Yok

Akış değişkenleri

Politika başarısız olduğunda aşağıdaki akış değişkeni ayarlanır:

  • BasicAuthentication.{policy_name}.failed (doğru değeriyle)
ziyaret edin.

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.

Hata kodu HTTP durumu Neden Düzelt
steps.basicauthentication.InvalidBasicAuthenticationSource 500 Gelen Base64 kodlu dize geçerli bir değer içermediğinde veya başlık hatalı biçimlendirildiğinde (ör. "Basic" ile başlamadığında) kod çözme işleminde.
steps.basicauthentication.UnresolvedVariable 500 Kod çözme veya kodlama için gerekli kaynak değişkenler mevcut değildir. Bu hata yalnızca IgnoreUnresolvedVariables false (yanlış) değerine ayarlandığında ortaya çıkar.

Dağıtım hataları

Bu politikayı içeren bir proxy dağıttığınızda bu hatalar oluşabilir.

Hata adı Şu durumlarda ortaya çıkar: Düzelt
UserNameRequired Adlandırılmış işlem için <User> öğesi bulunmalıdır.
PasswordRequired Adlandırılmış işlem için <Password> öğesi bulunmalıdır.
AssignToRequired Adlandırılmış işlem için <AssignTo> öğesi bulunmalıdır.
SourceRequired Adlandırılmış işlem için <Source> öğesi bulunmalıdır.

Hata değişkenleri

Bu değişkenler, çalışma zamanında hata oluştuğunda ayarlanır. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler başlıklı makaleyi inceleyin.

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 "UnresolvedVariable"
BasicAuthentication.policy_name.failed policy_name, hatayı atan politikanın kullanıcı tarafından belirtilen adıdır. BasicAuthentication.BA-Authenticate.failed = true

Örnek hata yanıtı

{  
   "fault":{  
      "detail":{  
         "errorcode":"steps.basicauthentication.UnresolvedVariable"
      },
      "faultstring":"Unresolved variable : request.queryparam.password"
   }
}

Örnek hata kuralı

<FaultRule name="Basic Authentication Faults">
    <Step>
        <Name>AM-UnresolvedVariable</Name>
        <Condition>(fault.name Matches "UnresolvedVariable") </Condition>
    </Step>
    <Step>
        <Name>AM-AuthFailedResponse</Name>
        <Condition>(fault.name = "InvalidBasicAuthenticationSource")</Condition>
    </Step>
    <Condition>(BasicAuthentication.BA-Authentication.failed = true) </Condition>
</FaultRule>

Şemalar

İlgili konular

Anahtar/Değer Eşlemesi İşlemler politikası