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, <AssignTo> öğ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
<Source> öğ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>
<BasicAuthentication> ö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ı. İsteğe bağlı olarak, politikayı |
Yok | Zorunlu |
continueOnError |
Bir politika başarısız olduğunda hata döndürmesi için Akış yürütmenin bir politikadan sonra bile 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 özelliğin desteği sonlandırıldı. |
false | Kullanımdan kaldırıldı |
<DisplayName> öğ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 |
---|---|
Varlık | İsteğe bağlı |
Tür | Dize |
<Operation> öğ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:
|
<IgnoreUnresolvedVariables> öğ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 |
<User> öğ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 |
<Password> öğ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 |
<AssignTo> öğ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ı |
<Source> öğ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)
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. | build |
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. |
build |
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. |
build |
PasswordRequired |
Adlandırılmış işlem için <Password> öğesi bulunmalıdır. |
build |
AssignToRequired |
Adlandırılmış işlem için <AssignTo> öğesi bulunmalıdır. |
build |
SourceRequired |
Adlandırılmış işlem için <Source> öğesi bulunmalıdır. |
build |
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>