JJT politikası oluştur

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>

<Password> ve <Id> öğeleri isteğe bağlıdır.

*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, <displayname></displayname> öğesini şunun için kullanın: yönetim arayüzü proxy düzenleyicisindeki politikayı farklı, doğal bir dille etiketleyin dokunun.

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 true olarak ayarlayın başarısız olur.

false İsteğe bağlı
etkin Politikayı uygulamak için true olarak ayarlayın.

"Kapat" için false olarak ayarlandı politika. Politika uygulanmayacak bir akışa bağlı kalsa bile uygulanabilir.

true İsteğe bağlı
eş zamansız Bu özelliğin desteği sonlandırıldı. false Kullanımdan kaldırıldı

&lt;DisplayName&gt;

<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

&lt;Algorithm&gt;

<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

&lt;Audience&gt;

<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.

&lt;AdditionalClaims/Claim&gt;

<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.

&lt;AdditionalHeaders/Claim&gt;

<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.

&lt;CriticalHeaders&gt;

<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ı.

&lt;CustomClaims&gt;

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 &lt;AdditionalClaims&gt;. Kullanıcı arayüzü daha sonra doğru öğeleri eklemek üzere güncellenmelidir.

&lt;ExpiresIn&gt;

<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:

  • ms = milisaniye (varsayılan)
  • s = saniye
  • e = dakika
  • y = saat
  • d = gün

Örneğin, ExpiresIn=10d, şuna eşdeğerdir: ExpiresIn 864000'ler.

&lt;Id&gt;

<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ı.

&lt;IgnoreUnresolvedVariables&gt;

<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ış

&lt;Issuer&gt;

<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ü

&lt;NotBefore&gt;

<!-- 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

&lt;OutputVariable&gt;

<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ı)

&lt;PrivateKey/Id&gt;

<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

&lt;PrivateKey/Password&gt;

<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, private.mypassword

&lt;PrivateKey/Value&gt;

<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, private.mykey.

&lt;SecretKey/Id&gt;

<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

&lt;SecretKey/Value&gt;

<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, private.mysecret

&lt;Subject&gt;

<Subject>subject-string-here</Subject>
veya
<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.
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.
MissingNameForAdditionalClaim İddianın adı <AdditionalClaims> öğesinin <Claim> alt öğesinde belirtilmezse dağıtım başarısız olur.
InvalidNameForAdditionalHeader Bu hata, <AdditionalClaims> öğesinin <Claim> alt öğesinde kullanılan iddianın adı alg veya typ olduğunda ortaya çıkar.
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.
InvalidValueOfArrayAttribute Bu hata, <AdditionalClaims> öğesinin <Claim> alt öğesindeki dizi özelliğinin değeri true veya false olarak ayarlanmadığında ortaya çıkar.
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.
InvalidValueForElement <Algorithm> öğesinde belirtilen değer desteklenen bir değer değilse dağıtım başarısız olur.
MissingConfigurationElement <PrivateKey> öğesi, RSA ailesi algoritmaları veya <SecretKey> öğesi HS Family algoritmaları ile kullanılmazsa bu hata oluşur.
InvalidKeyConfiguration <Value> alt öğesi <PrivateKey> veya <SecretKey> öğelerinde tanımlanmazsa dağıtım başarısız olur.
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.
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.
InvalidSecretInConfig Bu hata, <PrivateKey> veya <SecretKey> öğelerinin <Value> alt öğesi (private.) özel ön ekini içermiyorsa ortaya çıkar.
InvalidTimeFormat <NotBefore> öğesinde belirtilen değer desteklenen bir biçimi kullanmıyorsa dağıtım başarısız olur.

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ı

JWT Politikası Hata Kodları

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>