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ı
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle errors. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
Fault code | HTTP status | Cause | Fix |
---|---|---|---|
steps.basicauthentication.InvalidBasicAuthenticationSource |
500 | On a decode when the incoming Base64 encoded string does not contain a valid value or the header is malformed (e.g., does not start with "Basic"). | build |
steps.basicauthentication.UnresolvedVariable |
500 | The required source variables for the decode or encode are not present. This error can
only occur if IgnoreUnresolvedVariables is false. |
build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
Error name | Occurs when | Fix |
---|---|---|
UserNameRequired |
The <User> element must be present for the named operation. |
build |
PasswordRequired |
The <Password> element must be present for the named operation. |
build |
AssignToRequired |
The <AssignTo> element must be present for the named operation. |
build |
SourceRequired |
The <Source> element must be present for the named operation. |
build |
Fault variables
These variables are set when a runtime error occurs. For more information, see What you need to know about policy errors.
Variables | Where | Example |
---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name Matches "UnresolvedVariable" |
BasicAuthentication.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | BasicAuthentication.BA-Authenticate.failed = true |
Example error response
{ "fault":{ "detail":{ "errorcode":"steps.basicauthentication.UnresolvedVariable" }, "faultstring":"Unresolved variable : request.queryparam.password" } }
Example fault rule
<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>