Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerini görüntüleyin.

Ne
Son kilometre güvenliği için basit Temel Kimlik Doğrulama'yı kullanabilmenizi sağlar. Politika bir kullanıcı adı ile şifre alır, Base64 bunları şifreler ve elde edilen değeri bir değişkene yazar. Elde edilen değer Basic
Base64EncodedString
biçimindedir. Bu değeri genellikle Yetkilendirme başlığı gibi bir HTTP üst bilgisine yazarsınız.
Politika ayrıca Base64 kodlamalı bir dizede depolanan kimlik bilgilerinin şifresini bir kullanıcı adı ve şifre ile çözmenizi de sağlar.
Video: Bu video, Temel Kimlik Doğrulama politikasını kullanarak kullanıcı adı ve şifrenin Base64 olarak nasıl kodlanacağını göstermektedir.
Video: Bu video, Temel Kimlik Doğrulama politikasını kullanarak Base64 kodlamalı kullanıcı adı ve şifrelerin kodunu çözmeyi göstermektedir.
Sana Özel
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, <User>
ve <Password>
öğelerinde ref
özellikleri tarafından belirtilen değişkenlerden türetilir. Değişkenler, bu politika yürütülmeden önce ayarlanmalıdır. Değişkenler genellikle bir anahtar/değer eşlemesinden okunan değerlerle doldurulur. Anahtar/Değer Eşlemesi İşlemleri politikasını inceleyin.
Bu yapılandırma, <assignTo> öğesi tarafından belirtilen Yetkilendirme adlı HTTP üst bilgisiyle sonuçlanır ve arka uç sunucusuna gönderilen giden istek iletisine eklenir:
Authorization: Basic TXlVc2VybmFtZTpNeVBhc3N3b3Jk
<User>
ve <Password>
değerleri, Base64 kodlamasından önce iki nokta üst üste ile kullanılır.
Aşağıdaki girişe sahip bir anahtar/değer çiftinizin olduğunu düşünün:
{ "encrypted" : true, "entry" : [ { "name" : "username", "value" : "MyUsername }, { "name" : "password", "value" : "MyPassword } ], "name" : "BasicAuthCredentials" }
<User>
ve <Password>
öğelerinizin değerlerini anahtar/değer deposundan ayıklayıp credentials.username
ve credentials.password
değişkenlerine doldurmak için aşağıdaki KeyValueMapOperations politikalarını BasicAuthentication politikasından önce ekleyin.
<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 kodu çö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, <Source> öğesinde belirtildiği gibi kullanıcı adı ve şifrenin Authorization
HTTP üst bilgisini çözer. Base64 olarak kodlanmış dize, Basic Base64EncodedString.
biçiminde olmalıdır
Politika, kodu çözülmüş kullanıcı adını request.header.username değişkenine ve şifresi çözülmüş şifreyi request.header.password değişkenine yazar.
Temel Kimlik Doğrulama politikası hakkında
Politikanın iki çalışma modu vardır:
- Kodlama: Base64, değişkenlerde depolanan kullanıcı adını ve şifreyi kodlar
- Kod çözme: Kullanıcı adı ve şifrenin Base64 kodlamalı bir dizeden çözülmesi
Kullanıcı adı ve şifre genellikle anahtar/değer deposunda depolanır ve daha sonra çalışma zamanında anahtar/değer deposundan okunur. Anahtar/değer deposunun kullanımıyla ilgili ayrıntılar için Anahtar/Değer Eşlemesi İşlemleri politikasını inceleyin.
Öğe referansı
Öğe referansı, BasicAuthentication politikasının öğelerini ve özelliklerini açıklar.
<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>
<TemelKimlik Doğrulama> özellikleri
<BasicAuthentication async="false" continueOnError="false" enabled="true" name="Basic-Authentication-1">
Aşağıdaki tabloda, tüm politika üst öğelerinde yaygın olarak kullanılan özellikler açıklanmaktadır:
Özellik | Açıklama | Varsayılan | Varlık |
---|---|---|---|
name |
Politikanın dahili adı. İsteğe bağlı olarak, politikayı yönetim kullanıcı arayüzü proxy düzenleyicisinde farklı, doğal bir dille etiketlemek için |
Yok | Zorunlu |
continueOnError |
Bir politika başarısız olduğunda hata döndürmek için Bir politika başarısız olsa bile akış yürütmenin devam etmesi için |
yanlış | İsteğe bağlı |
enabled |
Politikayı uygulamak için Politikayı devre dışı bırakmak için |
true | İsteğe bağlı |
async |
Bu özellik kullanımdan kaldırıldı. |
yanlış | Kullanımdan kaldırıldı |
<DisplayName> öğesi
Yönetim kullanıcı arayüzü proxy'sinde politikayı farklı bir doğal dil adıyla etiketlemek için name
özelliğine ek olarak kullanın.
<DisplayName>Policy Display Name</DisplayName>
Varsayılan |
Yok Bu öğeyi çıkarırsanız politikanın |
---|---|
Varlık | İsteğe bağlı |
Type | Dize |
<İşlem> öğesi
Base64 politikasının kimlik bilgilerini kodlayıp çözmediğini belirler.
<Operation>Encode</Operation>
Varsayılan: | Yok |
Bulunma: | Zorunlu |
Tür: |
Dize. Geçerli değerler şunlardır:
|
<ignoreUnresolvedVariables> öğesi
true
olarak ayarlandığında, bir değişken çözülemezse politika bir hata göndermez. Temel kimlik doğrulama politikası bağlamında kullanıldığında bu ayar genellikle false
olarak ayarlanır. Bunun nedeni, belirtilen değişkenlerde bir kullanıcı adı veya şifrenin bulunamaması durumunda genellikle hatanın döndürülmesidir.
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
Varsayılan: | true |
Bulunma: | İsteğe bağlı |
Tür: |
Boole |
<User> öğesi
- Kodlama için kullanıcı adını içeren değişkeni belirtmek üzere
<User>
öğesini kullanın. Kullanıcı adı ve şifre değerleri, Base64 kodlamasından önce iki nokta üst üste ile kullanılır. - Kodu çözmek 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 |
---|---|---|---|
hakem |
Politikanın kullanıcı adını dinamik olarak okuduğu (kodlama) veya kullanıcı adını (kod çözme) yazdığı değişken. |
Yok | Zorunlu |
<Password> öğesi
- Kodlama için şifreyi içeren değişkeni belirtmek üzere
<Password>
öğesini kullanın. - 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 |
---|---|---|---|
hakem |
Politikanın dinamik olarak şifreyi okuduğu (kodlama) veya parola yazması (kod çözme) değişkeni. |
Yok | Zorunlu |
<assignTo> öğesi
Bu politika tarafından oluşturulan kodlanmış veya kod çözülmüş değerle ayarlanacak hedef değişkeni belirtir.
Aşağıdaki örnekte politika, iletinin Authorization
üst bilgisini oluşturulan değere ayarlamalıdır:
<AssignTo createNew="false">request.header.Authorization</AssignTo>
Varsayılan: | Yok |
Bulunma: | Zorunlu |
Tür: |
Dize |
Özellikler
Özellik | Açıklama | Varsayılan | Varlık |
---|---|---|---|
Yeni Oluştur | Değişken zaten ayarlanmışsa politikanın değişkenin üzerine yazılıp yazılmayacağını belirler.
"false" olduğunda değişkenin atanması, yalnızca değişken şu anda ayarlanmadan bırakılırsa (null) gerçekleşir. "true" (doğru) değerine ayarlandığında, değişkene atama her zaman gerçekleşir. Bu özelliği genellikle "false" (varsayılan) olarak ayarlarsınız. |
yanlış | İsteğe bağlı |
<Source> öğesi
Kod çözme için Base64 olarak kodlanmış dizeyi içeren değişken Basic
Base64EncodedString
biçimindedir. Örneğin, Yetkilendirme başlığına karşılık gelen request.header.Authorization
belirtin.
<Source>request.header.Authorization</Source>
Varsayılan: | Yok |
Bulunma: | Kod çö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
(true değeriyle)
Hata referansı
Bu bölümde, döndürülen hata kodları ve hata mesajları ile bu politika bir hatayı tetiklediğinde Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Bu bilgiler, hataları ele alacak hata kuralları geliştirip geliştirmediğinizi bilmeniz önemlidir. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler ve Hataları işleme hakkında bilgi edinin.
Ç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 olarak kodlanmış dize geçerli bir değer içermediğinde veya başlık hatalı biçimlendirilmiş bir kod çözme işleminde (ör. "Temel" ile başlamaz). | build |
steps.basicauthentication.UnresolvedVariable |
500 | Kod çözme veya kodlama için gerekli kaynak değişkenleri mevcut değil. Bu hata yalnızca IgnoreUnresolvedVariables yanlışsa ortaya çıkabilir. |
build |
Dağıtım hataları
Bu hatalar, bu politikayı içeren bir proxy dağıttığınızda oluşabilir.
Hata adı | Şu durumda gerçekleşir: | Düzelt |
---|---|---|
UserNameRequired |
Adlandırılmış işlem için <User> öğesi mevcut olmalıdır. |
build |
PasswordRequired |
Adlandırılmış işlem için <Password> öğesi mevcut olmalıdır. |
build |
AssignToRequired |
Adlandırılmış işlem için <AssignTo> öğesi mevcut olmalıdır. |
build |
SourceRequired |
Adlandırılmış işlem için <Source> öğesi mevcut olmalıdır. |
build |
Hata değişkenleri
Bu değişkenler, bir çalışma zamanı hatası oluştuğunda ayarlanır. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler bölümüne bakın.
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 parçasıdır. | fault.name Matches "UnresolvedVariable" |
BasicAuthentication.policy_name.failed |
policy_name, hatayı tetikleyen 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>