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ı

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 faults. 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 Occurs when
steps.jwt.AlgorithmInTokenNotPresentInConfiguration 401 Occurs when the verification policy has multiple algorithms.
steps.jwt.AlgorithmMismatch 401 The algorithm specified in the Generate policy did not match the one expected in the Verify policy. The algorithms specified must match.
steps.jwt.FailedToDecode 401 The policy was unable to decode the JWT. The JWT is possibly corrupted.
steps.jwt.GenerationFailed 401 The policy was unable to generate the JWT.
steps.jwt.InsufficientKeyLength 401 For a key less than 32 bytes for the HS256 algorithm, less than 48 bytes for the HS386 algortithm, and less than 64 bytes for the HS512 algorithm.
steps.jwt.InvalidClaim 401 For a missing claim or claim mismatch, or a missing header or header mismatch.
steps.jwt.InvalidCurve 401 The curve specified by the key is not valid for the Elliptic Curve algorithm.
steps.jwt.InvalidJsonFormat 401 Invalid JSON found in the header or payload.
steps.jwt.InvalidToken 401 This error occurs when the JWT signature verification fails.
steps.jwt.JwtAudienceMismatch 401 The audience claim failed on token verification.
steps.jwt.JwtIssuerMismatch 401 The issuer claim failed on token verification.
steps.jwt.JwtSubjectMismatch 401 The subject claim failed on token verification.
steps.jwt.KeyIdMissing 401 The Verify policy uses a JWKS as a source for public keys, but the signed JWT does not include a kid property in the header.
steps.jwt.KeyParsingFailed 401 The public key could not be parsed from the given key information.
steps.jwt.NoAlgorithmFoundInHeader 401 Occurs when the JWT contains no algorithm header.
steps.jwt.NoMatchingPublicKey 401 The Verify policy uses a JWKS as a source for public keys, but the kid in the signed JWT is not listed in the JWKS.
steps.jwt.SigningFailed 401 In GenerateJWT, for a key less than the minimum size for the HS384 or HS512 algorithms
steps.jwt.TokenExpired 401 The policy attempts to verify an expired token.
steps.jwt.TokenNotYetValid 401 The token is not yet valid.
steps.jwt.UnhandledCriticalHeader 401 A header found by the Verify JWT policy in the crit header is not listed in KnownHeaders.
steps.jwt.UnknownException 401 An unknown exception occurred.
steps.jwt.WrongKeyType 401 Wrong type of key specified. For example, if you specify an RSA key for an Elliptic Curve algorithm, or a curve key for an RSA algorithm.

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause Fix
InvalidNameForAdditionalClaim The deployment will fail if the claim used in the child element <Claim> of the <AdditionalClaims> element is one of the following registered names: kid, iss, sub, aud, iat, exp, nbf, or jti.
InvalidTypeForAdditionalClaim If the claim used in the child element <Claim> of the <AdditionalClaims> element is not of type string, number, boolean, or map, the deployment will fail.
MissingNameForAdditionalClaim If the name of the claim is not specified in the child element <Claim> of the <AdditionalClaims> element, the deployment will fail.
InvalidNameForAdditionalHeader This error ccurs when the name of the claim used in the child element <Claim> of the <AdditionalClaims> element is either alg or typ.
InvalidTypeForAdditionalHeader If the type of claim used in the child element <Claim> of the <AdditionalClaims> element is not of type string, number, boolean, or map, the deployment will fail.
InvalidValueOfArrayAttribute This error occurs when the value of the array attribute in the child element <Claim> of the <AdditionalClaims> element is not set to true or false.
InvalidConfigurationForActionAndAlgorithm If the <PrivateKey> element is used with HS Family algorithms or the <SecretKey> element is used with RSA Family algorithms, the deployment will fail.
InvalidValueForElement If the value specified in the <Algorithm> element is not a supported value, the deployment will fail.
MissingConfigurationElement This error will occur if the <PrivateKey> element is not used with RSA family algorithms or the <SecretKey> element is not used with HS Family algorithms.
InvalidKeyConfiguration If the child element <Value> is not defined in the <PrivateKey> or <SecretKey> elements, the deployment will fail.
EmptyElementForKeyConfiguration If the ref attribute of the child element <Value> of the <PrivateKey> or <SecretKey> elements is empty or unspecified, the deployment will fail.
InvalidVariableNameForSecret This error occurs if the flow variable name specified in the ref attribute of the child element <Value> of the <PrivateKey> or <SecretKey> elements does not contain the private prefix (private.).
InvalidSecretInConfig This error occurs if the child element <Value> of the <PrivateKey> or <SecretKey> elements does not contain the private prefix (private.).
InvalidTimeFormat If the value specified in the<NotBefore> element does not use a supported format, the deployment will fail.

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>