Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Ne?
Yapılandırılabilir bir hak talebi grubu içeren imzalı bir JWT oluşturur. JWT daha sonra arka uç hedeflerine aktarılan ya da başka şekillerde kullanılan Ayrıntılı bilgi için JWS ve JWT politikalarına genel bakış sayfasına göz atın.
Video
İmzalanmış bir JWT'nin nasıl oluşturulacağını öğrenmek için kısa bir video izleyin.
Örnekler
HS256 ile imzalanmış bir JWT oluşturun algoritma
Bu örnek politika, yeni bir JWT oluşturur ve HS256 algoritmasını kullanarak imzalar. HS256 referansları hem imza hem de doğrulama için paylaşılan bir sırla.
Bu politika işlemi tetiklendiğinde Edge, JWT başlığını ve yükünü kodlar, ardından dijital olarak JWT'yi imzalar. Politikaya nasıl istekte bulunabileceğiniz de dahil olmak üzere eksiksiz bir örnek için yukarıdaki videoyu izleyin.
Buradaki politika yapılandırması, JWT spesifikasyonu (1 saatlik geçerlilik süresi ve ek bir talep dahil). Şunları yapabilirsiniz: istediğiniz kadar ek hak talebi ekleyebilirsiniz. Şu konuyla ilgili ayrıntılar için Element referansına bakın: her öğe için gereklilik ve seçenekleri sunar.
<GenerateJWT name="JWT-Generate-HS256"> <DisplayName>JWT Generate HS256</DisplayName> <Algorithm>HS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <SecretKey> <Value ref="private.secretkey"/> <Id>1918290</Id> </SecretKey> <ExpiresIn>1h</ExpiresIn> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name="show">And now for something completely different.</Claim> </AdditionalClaims> <OutputVariable>jwt-variable</OutputVariable> </GenerateJWT>
Oluşturulan JWT, şu başlığa sahip olacaktır ...
{ "typ" : "JWT", "alg" : "HS256", "kid" : "1918290" }
... ve şuna benzer içeriklere sahip bir yük olacaktır:
{ "sub" : "monty-pythons-flying-circus", "iss" : "urn://apigee-edge-JWT-policy-test", "aud" : "show", "iat" : 1506553019, "exp" : 1506556619, "jti" : "BD1FF263-3D25-4593-A685-5EC1326E1F37", "show": "And now for something completely different." }
iat, exp ve jti taleplerinin değeri değişiklik gösterir.
RS256 ile imzalanmış bir JWT oluşturma algoritma
Bu örnek politika, yeni bir JWT oluşturur ve RS256 algoritmasını kullanarak imzalar. Oluşturuluyor RS256 imzası, PEM kodlu biçimde sağlanması gereken bir RSA özel anahtarını temel alır. Politikaya nasıl istekte bulunabileceğiniz de dahil olmak üzere eksiksiz bir örnek için yukarıdaki videoyu izleyin.
Bu politika işlemi tetiklendiğinde Edge, hak talepleri de dahil olmak üzere JWT'yi kodlar ve dijital olarak imzalar. JWT'nin bölümleri ve bunların nasıl şifrelenip imzalandığı hakkında bilgi edinmek için RFC7519'a bakın.
<GenerateJWT name="JWT-Generate-RS256"> <Algorithm>RS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <PrivateKey> <Value ref="private.privatekey"/> <Password ref="private.privatekey-password"/> <Id ref="private.privatekey-id"/> </PrivateKey> <Subject>apigee-seattle-hatrack-montage</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>urn://c60511c0-12a2-473c-80fd-42528eb65a6a</Audience> <ExpiresIn>60m</ExpiresIn> <Id/> <AdditionalClaims> <Claim name="show">And now for something completely different.</Claim> </AdditionalClaims> <OutputVariable>jwt-variable</OutputVariable> </GenerateJWT>
Temel öğeleri ayarlama
JWT'yi oluşturmak için kullanılan anahtarı belirtmek için kullandığınız öğeler seçilen algoritmaya bağlıdır. aşağıdaki tabloda gösterildiği gibi):
Algoritma | Temel öğeler | |
---|---|---|
HS{256/384/512}* | <SecretKey> <Value ref="private.secretkey"/> <Id>1918290</Id> </SecretKey> |
|
RS/PS/ES{256/384/512}* | <PrivateKey> <Value ref="private.privatekey"/> <Password ref="private.privatekey-password"/> <Id ref="private.privatekey-id"/> </PrivateKey>
|
|
*Temel şartlar hakkında daha fazla bilgi için İmza şifreleme algoritmaları hakkında. |
JWT oluştur için öğe referansı
Politika referansında, JWT oluştur politikasının öğeleri ve özellikleri açıklanır.
Not: Yapılandırma, şifrelemeye bağlı olarak biraz farklılık gösterir. belirlemektir. Aşağıdaki örnekler için Örnekler'e bakın: yapılandırmalarına yardımcı olur.
Şu özellikler üst düzey öğeye uygula
<GenerateJWT name="JWT" 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 |
<Algorithm>
<Algorithm>algorithm-here</Algorithm>
Jetonu imzalamak için kullanılacak şifreleme algoritmasını belirtir.
Varsayılan | Yok |
Bulunma | Zorunlu |
Tür | Dize |
Geçerli değerler | HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512 |
<Audience>
<Audience>audience-here</Audience> or: <Audience ref='variable_containing_audience'/>
Politika, belirtilen değere ayarlanmış aud talebi içeren bir JWT oluşturur değer. Bu hak talebi, JWT'nin hedeflendiği alıcıları tanımlar. Bu, RFC7519'da belirtilen kayıtlı hak talepleri için geçerlidir.
Varsayılan | Yok |
Bulunma | İsteğe bağlı |
Tür | Dizi (virgülle ayrılmış değerler listesi) |
Geçerli değerler | Kitleyi tanımlayan herhangi bir şey. |
<AdditionalClaims/Claim>
<AdditionalClaims> <Claim name='claim1'>explicit-value-of-claim-here</Claim> <Claim name='claim2' ref='variable-name-here'/> <Claim name='claim3' ref='variable-name-here' type='boolean'/> </AdditionalClaims> or: <AdditionalClaims ref='claim_payload'/>
JWT yükünde ek hak talebi adı/değer çiftleri belirtebilmenizi sağlar. Tekliflerinizi otomatikleştirmek ve optimize etmek için dize, sayı, boole, harita veya dizi biçiminde olabilir. Harita, bir ad/değer kümesidir çiftler.
Varsayılan | Yok |
Bulunma | İsteğe bağlı |
Geçerli değerler | Ek bir hak talebi için kullanmak istediğiniz herhangi bir değer. Tekliflerinizi otomatikleştirmek ve optimize etmek için dize, sayı, boole, harita veya dizi biçiminde olabilir. |
<Claim>
öğesi şu özellikleri alır:
- name - (Zorunlu) Hak talebinin adı.
- ref - (İsteğe bağlı) Bir akış değişkeninin adı. Varsa politika, değişkeninin hak talebi olarak kabul edildiğini gösterir. Hem bir ref özelliği hem de açık bir hak talebi değeri belirtilirse açık değer varsayılan değerdir ve başvurulan akış değişkeni çözümlenmemişse kullanılır.
- type - (İsteğe bağlı) Şunlardan biri: dize (varsayılan), sayı, boole veya harita
- dizi - (İsteğe bağlı) Değerin bir tür dizisi olup olmadığını belirtmek için true olarak ayarlayın. Varsayılan: false (yanlış) değerini alır.
<Claim>
öğesini eklediğinizde, hak talebi adları
politikayı yapılandırın. Alternatif olarak talep adlarını belirtmek için bir JSON nesnesi aktarabilirsiniz.
JSON nesnesi değişken olarak geçirildiğinden, oluşturulan JWT'deki talep adları çalışma zamanında belirlenir.
Örneğin:
<AdditionalClaims ref='json_claims'/>
json_claims
değişkeninin şu biçimde bir JSON nesnesi içerdiği durumda:
{ "sub" : "person@example.com", "iss" : "urn://secure-issuer@example.com", "non-registered-claim" : { "This-is-a-thing" : 817, "https://example.com/foobar" : { "p": 42, "q": false } } }
Oluşturulan JWT, JSON nesnesindeki tüm talepleri içerir.
<AdditionalHeaders/Claim>
<AdditionalHeaders> <Claim name='claim1'>explicit-value-of-claim-here</Claim> <Claim name='claim2' ref='variable-name-here'/> <Claim name='claim3' ref='variable-name-here' type='boolean'/> <Claim name='claim4' ref='variable-name' type='string' array='true'/> </AdditionalHeaders>
Ek talep adını/değer çiftlerini JWT'nin başlığına yerleştirir.
Varsayılan | Yok |
Bulunma | İsteğe bağlı |
Geçerli değerler | Ek bir hak talebi için kullanmak istediğiniz herhangi bir değer. Tekliflerinizi otomatikleştirmek ve optimize etmek için dize, sayı, boole, harita veya dizi biçiminde olabilir. |
<Claim>
öğesi şu özellikleri alır:
- name - (Zorunlu) Hak talebinin adı.
- ref - (İsteğe bağlı) Bir akış değişkeninin adı. Varsa politika, değişkeninin hak talebi olarak kabul edildiğini gösterir. Hem bir ref özelliği hem de açık bir hak talebi değeri belirtilirse açık değer varsayılan değerdir ve başvurulan akış değişkeni çözümlenmemişse kullanılır.
- type - (İsteğe bağlı) Şunlardan biri: dize (varsayılan), sayı, boole veya harita
- dizi - (İsteğe bağlı) Değerin bir tür dizisi olup olmadığını belirtmek için true olarak ayarlayın. Varsayılan: false (yanlış) değerini alır.
<CriticalHeaders>
<CriticalHeaders>a,b,c</CriticalHeaders> or: <CriticalHeaders ref=’variable_containing_headers’/>
Kritik üstbilgi olan crit'i JWT başlığına ekler. crit başlığı JWT alıcısı tarafından bilinmesi ve tanınması gereken bir başlık adları dizisidir. Örneğin:
{ “typ: “...”, “alg” : “...”, “crit” : [ “a”, “b”, “c” ], }
Çalışma zamanında, VerifyJWT politikası crit başlığını inceler.
crit başlığında listelenen her öğe için <KnownHeaders>
öğesinin
VerifyJWT politikası bu başlığı da listeler. VerifyJWT politikasının crit'te bulduğu herhangi bir başlık
aynı zamanda <KnownHeaders>
içinde de listelenmeyen bir veri kümesi, VerifyJWT politikasının başarısız olmasına neden olur.
Varsayılan | Yok |
Bulunma | İsteğe bağlı |
Tür | Virgülle ayrılmış dize dizisi |
Geçerli değerler | Bir dizi veya diziyi içeren bir değişkenin adı. |
<CustomClaims>
Not: Şu anda yeni bir Kullanıcı arayüzü aracılığıyla JWT politikası oluşturun. Bu öğe işlevsel olmadığı için yoksayıldı. Doğru öğesi <AdditionalClaims>. Kullanıcı arayüzü daha sonra doğru öğeleri eklemek üzere güncellenmelidir.
<ExpiresIn>
<ExpiresIn>time-value-here</ExpiresIn>
JWT'nin kullanım ömrünü milisaniye, saniye, dakika, saat veya gün cinsinden belirtir.
Varsayılan | N/A |
Bulunma | İsteğe bağlı |
Tür | Tamsayı |
Geçerli değerler |
Değeri içeren bir akış değişkenine ait değer veya bu değişkene başvuru. Zaman birimleri için şu şekilde belirtilir:
Örneğin, |
<Id>
<Id>explicit-jti-value-here</Id> -or- <Id ref='variable-name-here'/> -or- <Id/>
Belirli jti hak talebiyle bir JWT oluşturur. Hem metin değeri hem de ref özelliği aynı olduğunda boşsa politika, rastgele bir UUID içeren bir jti oluşturur. JWT kimliği (jti) talebi, JWT'nin benzersiz tanımlayıcısıdır. jti hakkında daha fazla bilgi için RFC7519'a bakın.
Varsayılan | Yok |
Bulunma | İsteğe bağlı |
Tür | Dize veya referans. |
Geçerli değerler | Bir dize veya kimliği içeren bir akış değişkeninin adı. |
<IgnoreUnresolvedVariables>
<IgnoreUnresolvedVariables>true|false</IgnoreUnresolvedVariables>
Başvurulan herhangi bir değişken belirtildiğinde politikanın hata vermesini istiyorsanız false (yanlış) değerine ayarlayın bu politikada çözülemez. Çözümlenemeyen değişkenleri boş dize olarak ele almak için doğru değerine ayarlanır (boş).
Varsayılan | Yanlış |
Bulunma | İsteğe bağlı |
Tür | Boole |
Geçerli değerler | doğru veya yanlış |
<Issuer>
<Issuer ref='variable-name-here'/> <Issuer>issuer-string-here</Issuer>
Politika,iss adında ve değeri ayarlanmış bir hak talebi içeren JWT oluşturur. . JWT'yi veren kuruluşu tanımlayan bir hak talebi. Bu, RFC7519'da belirtilen kayıtlı hak talepleri grubudur.
Varsayılan | Yok |
Bulunma | İsteğe bağlı |
Tür | Dize veya referans |
Geçerli değerler | Tümü |
<NotBefore>
<!-- Specify an absolute time. --> <NotBefore>2017-08-14T11:00:21-07:00</NotBefore> -or- <!-- Specify a time relative to when the token is generated. --> <NotBefore>6h</NotBefore>
Jetonun geçerli olacağı zamanı belirtir. Jeton, belirtilen zamana kadar geçersiz. Mutlak zaman değeri veya jetonun oluşturulduğu zamana bağlı bir saat belirtebilirsiniz.
Varsayılan | Yok |
Bulunma | İsteğe bağlı |
Tür | Dize |
Geçerli değerler | Aşağıdaki bilgilere bakın. |
Mutlak zaman değerleri için NotBefore öğesi için geçerli zaman değerleri
Ad | Biçim | Örnek |
sıralanabilir | yyyy-MM-dd'T'HH:mm:ss.SSSZ |
2017-08-14T11:00:21.269-0700 |
RFC 1123 | EEE, dd MMM yyyy HH:mm:ss zzz |
14 Ağustos 2017 Pazartesi 11:00:21 PDT |
RFC 850 | EEEE, dd-MMM-yy HH:mm:ss zzz |
14 Ağustos - 17 Ağustos Pazartesi 11:00:21 PDT |
ANCI-C | EEE MMM d HH:mm:ss yyyy |
14 Ağustos Pzt 11:00:21 2017 |
Göreli zaman değerleri için bir tam sayı ve bir dönem belirtin. Örneğin:
- 10 saniye
- 60 dk.
- 12 s
<OutputVariable>
<OutputVariable>jwt-variable</OutputVariable>
Bu politika tarafından oluşturulan JWT'nin nereye yerleştirileceğini belirtir. Varsayılan olarak
akış değişkeni jwt.POLICYNAME.generated_jwt
.
Varsayılan | jwt.POLICYNAME.generated_jwt |
Bulunma | İsteğe bağlı |
Tür | Dize (akış değişkeni adı) |
<PrivateKey/Id>
<PrivateKey> <Id ref="flow-variable-name-here"/> </PrivateKey> or <PrivateKey> <Id>your-id-value-here</Id> </PrivateKey>
JWT başlığına eklenecek anahtar kimliğini (çocuk) belirtir. Yalnızca kullanım ile ilgili bir mesaj oluşturun.
Varsayılan | Yok |
Bulunma | İsteğe bağlı |
Tür | Dize |
Geçerli değerler | Akış değişkeni veya dizesi |
<PrivateKey/Password>
<PrivateKey> <Password ref="private.privatekey-password"/> </PrivateKey>
Gerekirse politikanın özel anahtarın şifresini çözmek için kullanması gereken şifreyi belirtin. Şunu kullanın: ref özelliğini kullanabilirsiniz. Yalnızca kullanım ile ilgili bir mesaj oluşturun.
Varsayılan | Yok |
Bulunma | İsteğe bağlı |
Tür | Dize |
Geçerli değerler |
Akış değişkeni referansı.
Not: Bir akış değişkeni belirtmeniz gerekir. Edge, geçersiz bir a
şifrenin şifrelenmemiş metin olarak belirtildiği politika yapılandırması. Akış değişkeni
"private" ön ekine sahip olmalıdır. Örneğin, |
<PrivateKey/Value>
<PrivateKey> <Value ref="private.variable-name-here"/> </PrivateKey>
JWT'yi imzalamak için kullanılan PEM kodlu özel anahtarı belirtir. anahtarın içine yerleştirin. Yalnızca algoritma RS256/RS384/RS512 değerlerinden biri olduğunda kullanın. PS256/PS384/PS512 veya ES256/ES384/ES512.
Varsayılan | Yok |
Bulunma | RS256 algoritmasını kullanarak bir JWT oluşturmak için gereklidir. |
Tür | Dize |
Geçerli değerler |
PEM kodlu RSA özel anahtar değerini temsil eden bir dize içeren akış değişkeni.
Not: Akış değişkeninin ön eki "private" olmalıdır. Örneğin,
|
<SecretKey/Id>
<SecretKey> <Id ref="flow-variable-name-here"/> </SecretKey> or <SecretKey> <Id>your-id-value-here</Id> </SecretKey>
HMAC ile imzalanmış bir JWT'nin JWT başlığına eklenecek anahtar kimliğini (kid) belirtir algoritmasından faydalanırsınız. Yalnızca algoritma HS256/HS384/HS512'den biri olduğunda kullanın.
Varsayılan | Yok |
Bulunma | İsteğe bağlı |
Tür | Dize |
Geçerli değerler | Akış değişkeni veya dizesi |
<SecretKey/Value>
<SecretKey> <Value ref="private.your-variable-name"/> </SecretKey>
HMAC algoritmasıyla jetonları doğrulamak veya imzalamak için kullanılan gizli anahtarı sağlar. Yalnızca kullanım olması gerekir. ref özelliğini kullanın anahtarı bir akış değişkeninde geçirecek.
Edge, HS256/HS384/HS512 algoritmaları için minimum bir anahtar gücü uygular. Minimum anahtar uzunluğu HS256 için 32 bayt, HS384 için 48 bayt ve HS512 için 64 bayttır. Daha düşük güçlü bir anahtar kullanılması çalışma zamanı hatasına neden olur.
Varsayılan | Yok |
Bulunma | HMAC algoritmaları için gereklidir. |
Tür | Dize |
Geçerli değerler |
Bir dizeye atıfta bulunan bir akış değişkeni
Not: Akış değişkeni ise "private" ön ekine sahip olmalıdır. Örneğin,
örnek, |
<Subject>
<Subject>subject-string-here</Subject>
<Subject ref="flow_variable" />
Örneğin:
<Subject ref="apigee.developer.email"/>
Politika, belirtilen değere ayarlanmış sub hak talebi içeren bir JWT oluşturur değeri.Bu iddia, JWT'nin konusunu tanımlar veya bu konuda bir açıklama yapar. Bu, RFC7519'da belirtilen standart bir hak talebi grubudur.
Varsayılan | Yok |
Bulunma | İsteğe bağlı |
Tür | Dize |
Geçerli değerler | Bir konuyu veya bir değere atıfta bulunan akış değişkenini benzersiz şekilde tanımlayan herhangi bir değer. |
Akış değişkenleri
JWT oluştur politikası, akış değişkenlerini ayarlamaz.
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.jwt.AlgorithmInTokenNotPresentInConfiguration |
401 | Doğrulama politikasında birden fazla algoritma olduğunda ortaya çıkar. |
steps.jwt.AlgorithmMismatch |
401 | Oluşturma politikasında belirtilen algoritma, Doğrulama politikasında beklenen algoritmayla eşleşmedi. Belirtilen algoritmalar eşleşmelidir. |
steps.jwt.FailedToDecode |
401 | Politika, JWT'nin kodu çözülemedi. JWT bozuk olabilir. |
steps.jwt.GenerationFailed |
401 | Politika, JWT'yi oluşturamadı. |
steps.jwt.InsufficientKeyLength |
401 | HS256 algoritmasında 32 bayttan, HS386 algoritmasında 48 bayttan ve HS512 algoritmasında 64 bayttan az olan bir anahtar. |
steps.jwt.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.jwt.InvalidCurve |
401 | Anahtar tarafından belirtilen eğri, Elips Biçimli Eğri algoritması için geçerli değildir. |
steps.jwt.InvalidJsonFormat |
401 | Başlıkta veya yükte geçersiz JSON bulundu. |
steps.jwt.InvalidToken |
401 | Bu hata, JWT imzası doğrulaması başarısız olduğunda ortaya çıkar. |
steps.jwt.JwtAudienceMismatch |
401 | Kitle hak talebi, jeton doğrulanamadı. |
steps.jwt.JwtIssuerMismatch |
401 | Kartı veren kuruluş talebi, jeton doğrulamasında başarısız oldu. |
steps.jwt.JwtSubjectMismatch |
401 | Konuyla ilgili hak talebi, jeton doğrulanamadı. |
steps.jwt.KeyIdMissing |
401 | Doğrulama politikası, ortak anahtarlar için kaynak olarak bir JWKS kullanır ancak imzalı JWT, başlıkta kid özelliği içermiyor. |
steps.jwt.KeyParsingFailed |
401 | Ortak anahtar, verilen anahtar bilgisinden ayrıştırılamadı. |
steps.jwt.NoAlgorithmFoundInHeader |
401 | JWT, herhangi bir algoritma başlığı içermiyorsa ortaya çıkar. |
steps.jwt.NoMatchingPublicKey |
401 | Doğrulama politikası, ortak anahtarlar için kaynak olarak JWKS kullanır ancak imzalı JWT'deki kid , JWKS'de listelenmiyor. |
steps.jwt.SigningFailed |
401 | GenerateJWT'de, HS384 veya HS512 algoritmaları için minimum boyuttan daha küçük bir anahtar için |
steps.jwt.TokenExpired |
401 | Politika, süresi dolmuş bir jetonu doğrulamaya çalışır. |
steps.jwt.TokenNotYetValid |
401 | Jeton henüz geçerli değil. |
steps.jwt.UnhandledCriticalHeader |
401 | crit başlığında JWT'yi Doğrula politikası tarafından bulunan üst bilgi, KnownHeaders bölgesinde listelenmiyor. |
steps.jwt.UnknownException |
401 | Bilinmeyen bir istisna oluştu. |
steps.jwt.WrongKeyType |
401 | Anahtar türü yanlış belirtilmiş. Örneğin, Elips Biçimli Eğri algoritması için RSA anahtarı veya RSA algoritması için eğri anahtarı belirtirseniz. |
Dağıtım hataları
Bu hatalar, bu politikayı içeren bir proxy dağıttığınızda ortaya çıkabilir.
Hata adı | Neden | Düzelt |
---|---|---|
InvalidNameForAdditionalClaim |
<AdditionalClaims> öğesinin <Claim> alt öğesinde kullanılan hak talebi şu kayıtlı adlardan biriyse dağıtım başarısız olur: kid , iss , sub , aud , iat , exp , nbf veya jti .
|
build |
InvalidTypeForAdditionalClaim |
<AdditionalClaims> öğesinin <Claim> alt öğesinde kullanılan hak talebi string , number , boolean veya map türünde değilse dağıtım başarısız olur.
|
build |
MissingNameForAdditionalClaim |
İddianın adı <AdditionalClaims> öğesinin <Claim> alt öğesinde belirtilmezse dağıtım başarısız olur.
|
build |
InvalidNameForAdditionalHeader |
Bu hata, <AdditionalClaims> öğesinin <Claim> alt öğesinde kullanılan iddianın adı alg veya typ olduğunda ortaya çıkar.
|
build |
InvalidTypeForAdditionalHeader |
<AdditionalClaims> öğesinin <Claim> alt öğesinde kullanılan hak talebi türü string , number , boolean veya map türünde değilse dağıtım başarısız olur.
|
build |
InvalidValueOfArrayAttribute |
Bu hata, <AdditionalClaims> öğesinin <Claim> alt öğesindeki dizi özelliğinin değeri true veya false olarak ayarlanmadığında ortaya çıkar.
|
build |
InvalidConfigurationForActionAndAlgorithm |
<PrivateKey> öğesi HS Family algoritmalarıyla veya <SecretKey> öğesi RSA Family algoritmalarıyla kullanılıyorsa dağıtım başarısız olur.
|
build |
InvalidValueForElement |
<Algorithm> öğesinde belirtilen değer desteklenen bir değer değilse dağıtım başarısız olur.
|
build |
MissingConfigurationElement |
<PrivateKey> öğesi, RSA ailesi algoritmaları veya <SecretKey> öğesi HS Family algoritmaları ile kullanılmazsa bu hata oluşur.
|
build |
InvalidKeyConfiguration |
<Value> alt öğesi <PrivateKey> veya <SecretKey> öğelerinde tanımlanmazsa dağıtım başarısız olur.
|
build |
EmptyElementForKeyConfiguration |
<PrivateKey> veya <SecretKey> öğelerinin <Value> alt öğesinin ref özelliği boşsa ya da belirtilmemişse dağıtım başarısız olur.
|
build |
InvalidVariableNameForSecret |
Bu hata, <PrivateKey> veya <SecretKey> öğelerinin <Value> alt öğesinin ref özelliğinde belirtilen akış değişkeni adı (private.) özel ön ekini içermiyorsa ortaya çıkar.
|
build |
InvalidSecretInConfig |
Bu hata, <PrivateKey> veya <SecretKey> öğelerinin <Value> alt öğesi (private.) özel ön ekini içermiyorsa ortaya çıkar.
|
build |
InvalidTimeFormat |
<NotBefore> öğesinde belirtilen değer desteklenen bir biçimi kullanmıyorsa dağıtım başarısız olur.
|
build |
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" |
JWT.failed |
Tüm JWT politikaları, hata durumunda aynı değişkeni ayarlar. | JWT.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="JWT Policy Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "TokenExpired")</Condition> </Step> <Condition>JWT.failed=true</Condition> </FaultRule> </FaultRules>