Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Ne?
JWS'de imzayı doğrulamadan JWS üstbilgisinin kodunu çözer ve her başlığı bir akış değişkenidir. Bu politika en çok VerifyJWS politikasıyla uyumlu olarak kullanıldığında işe yarar. JWS'deki bir üstbilginin değerinin bilinmesi gerektiğinden JWS'nin imzası doğrulanmalıdır.
Bir JWS'nin yükü aşağıdaki gibi eklenmiş bir yüke sahip olabilir:
header.payload.signature
Alternatif olarak, JWS, ayrılmış yük adı verilen yükü atlayarak şu biçimde olabilir:
header..signature
DecodeJWS politikası yalnızca JWS'nin başlık kısmının kodunu çözdüğünden her iki biçimde de çalışır. DecodeJWS politikası ayrıca JWS'yi imzalamak için kullanılan algoritmadan bağımsız olarak çalışır.
Ayrıntılı tanıtım için JWS ve JWT politikalarına genel bakış sayfasına göz atın. ve JWS biçimine genel bakış.
Video
JWT'nin kodunu nasıl çözeceğinizi öğrenmek için kısa bir video izleyin. Bu video, JWT'ye özgü birçok kavram JWS'de aynıdır.
Örnek: Bir JWS'nin kodunu çözme
Aşağıda gösterilen politika, var.JWS akış değişkeninde bulunan bir JWS'nin kodunu çözer. Bu değişkeni mevcut olmalı ve uygulanabilir (denetlenebilir) bir JWS içermelidir. Politika, JWS'yi şuradan alabilir: kullanabilirsiniz.
<DecodeJWS name="JWS-Decode-HS256"> <DisplayName>JWS Verify HS256</DisplayName> <Source>var.JWS</Source> </DecodeJWS>
JWS'nin başlık bölümündeki her başlık için politika, şu ada sahip bir akış değişkeni ayarlar:
jws.policy-name.header.header-name
JWS'ye eklenmiş bir yük varsa jws.policy-name.header.payload
yüke eklenir. Çıkarılan yük için payload
boş olur.
Bu politika tarafından ayarlanan değişkenlerin tam listesi için Akış değişkenleri bölümüne bakın.
JWS Kodunu Çözme için öğe referansı
Politika referansında, JWS Kodunu Çözme politikasının öğeleri ve özellikleri açıklanmaktadır.
Şu özellikler üst düzey öğeye uygula
<DecodeJWS name="JWS" continueOnError="false" enabled="true" async="false">
Aşağıdaki özellikler tüm politika üst öğeleri için ortaktır.
Özellik | Açıklama | Varsayılan | Bulunma |
---|---|---|---|
ad |
Politikanın dahili adı. Adda kullanabileceğiniz karakterler aşağıdakilerle sınırlıdır:
A-Z0-9._\-$ % Bununla birlikte, Edge yönetim arayüzü,
alfasayısal olmayan karakterlerin otomatik olarak kaldırılması gibi kısıtlamalara tabidir.
İsteğe bağlı olarak, |
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 |
false | İsteğe bağlı |
etkin |
Politikayı uygulamak için true olarak ayarlayın.
"Kapat" için |
true | İsteğe bağlı |
eş zamansız | Bu özelliğin desteği sonlandırıldı. | false | Kullanımdan kaldırıldı |
<DisplayName>
<DisplayName>Policy Display Name</DisplayName>
Yönetim kullanıcı arayüzü proxy düzenleyicisinde politikayı etiketlemek için ad özelliğine ek olarak kullanın doğal bir dille değiştirin.
Varsayılan | Bu öğeyi çıkarırsanız politikanın ad özelliğinin değeri kullanılır. |
Bulunma | İsteğe bağlı |
Tür | Dize |
<Source>
<Source>JWS-variable</Source>
Varsa politikanın JWS'yi bulmayı beklediği akış değişkenini belirtir. çözer.
Varsayılan | request.header.authorization (Önemli bilgiler için yukarıdaki nota bakın.
varsayılan değer hakkında). |
Bulunma | İsteğe bağlı |
Tür | Dize |
Geçerli değerler | Edge akış değişkeni adı |
Akış değişkenleri
Başarı üzerine kurulan JWS'yi Doğrulama ve JWS'nin Kodunu Çöz politikaları, bağlam değişkenlerini görürsünüz:
jws.{policy_name}.{variable_name}
Örneğin, politika adı verify-jws
ise politika,
JWS'de belirtilen algoritmayı kullanın:
jws.verify-jws.header.algorithm
Değişken adı | Açıklama |
---|---|
decoded.header.name |
Yükteki bir başlığın JSON ile ayrıştırılabilir değeri. Bir değişken
yükteki her başlıktan oluşur. header.name akış değişkenlerini de kullanabilirsiniz
bir başlığa erişmek için kullanılması önerilen değişkendir. |
header.algorithm |
JWS'de kullanılan imzalama algoritması. Örneğin, RS256, HS384 vb. Daha fazla bilgi için (Algorithm) Header Parametresi bölümüne bakın. |
header.kid |
JWS oluşturulurken eklenirse Anahtar Kimliği. Ayrıca bkz. "JSON Web Anahtarı Seti Kullanma (JWKS)" JWT ve JWS'de politikalara genel bakış makalesini inceleyebilirsiniz. Daha fazla bilgi için (Anahtar Kimliği) Başlık Parametresi bölümüne bakın. |
header.type |
Başlık türü değeri. Daha fazla bilgi için (Tür) Başlık Parametresi bölümünü inceleyin. |
header.name |
Adlandırılmış başlığın değeri (standart veya ek). Bunlardan biri JWS'nin başlık bölümündeki her ek üstbilgiyi kullanmayın. |
header-json |
JSON biçiminde üstbilgi. |
payload |
JWS'ye eklenmiş bir yük varsa JWS yükü. Ayrı bir yük için bu değişken boştur. |
valid |
VerifyJWS'te, imza doğrulandığında bu değişken "true" (doğru) olacaktır ve
geçerli zaman, jetonun süresi dolmadan önce ve jeton notBefore değerinden sonraysa
olduğundan emin olun. Aksi takdirde false (yanlış) değerini alır.
DecodeJWS'de bu değişken ayarlanmaz. |
Hata referansı
Bu bölümde, bu politika bir hatayı tetiklediğinde Edge tarafından ayarlanan hata kodları ile hata mesajları ve döndürülen hata mesajları ile Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Bu bilgiyi, hataları ele almak için hata kuralları geliştirip geliştirmediğinizi bilmeniz önemlidir. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler ve Hataları işleme bölümlerine bakın.
Çalışma zamanı hataları
Politika yürütüldüğünde bu hatalar ortaya çıkabilir.
Hata kodu | HTTP durumu | Gerçekleşme zamanı: |
---|---|---|
steps.jws.FailedToDecode |
401 | Politika, JWS'nin kodu çözülemedi. JWS büyük olasılıkla bozuktur. |
steps.jws.FailedToResolveVariable |
401 | Politikanın <Source> öğesinde belirtilen akış değişkeni mevcut olmadığında ortaya çıkar. |
steps.jws.InvalidClaim |
401 | Eksik hak talebi veya hak talebi uyuşmazlığı ya da eksik başlık veya başlık uyuşmazlığı için. |
steps.jws.InvalidJsonFormat |
401 | JWS üstbilgisinde geçersiz JSON bulundu. |
steps.jws.InvalidJws |
401 | Bu hata, JWS imzası doğrulaması başarısız olduğunda oluşur. |
steps.jws.InvalidPayload |
401 | JWS yükü geçersiz. |
steps.jws.InvalidSignature |
401 | <DetachedContent> atlanır ve JWS'de ayrı bir içerik yükü bulunur. |
steps.jws.MissingPayload |
401 | JWS yükü eksik. |
steps.jws.NoAlgorithmFoundInHeader |
401 | JWS, algoritma başlığını çıkardığında ortaya çıkar. |
steps.jws.UnknownException |
401 | Bilinmeyen bir istisna oluştu. |
Dağıtım hataları
Bu hatalar, bu politikayı içeren bir proxy dağıttığınızda ortaya çıkabilir.
Hata adı | Gerçekleşme zamanı: |
---|---|
InvalidAlgorithm |
Geçerli değerler şunlardır: RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512. |
|
Diğer olası dağıtım hataları. |
Hata değişkenleri
Bu değişkenler, çalışma zamanı hatası oluştuğunda ayarlanır. Daha fazla bilgi için Bilmeniz gerekenler hakkında daha fazla bilgi edinin.
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 "TokenExpired" |
JWS.failed |
Tüm JWS politikaları, hata durumunda aynı değişkeni ayarlar. | jws.JWS-Policy.failed = true |
Örnek hata yanıtı
Hata giderme için en iyi uygulama, hatanın errorcode
kısmını yakalamaktır
tıklayın. Değişebileceği için faultstring
içindeki metne güvenmeyin.
Örnek hata kuralı
<FaultRules> <FaultRule name="JWS Policy Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "TokenExpired")</Condition> </Step> <Condition>JWS.failed=true</Condition> </FaultRule> </FaultRules>