Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Cosa
Genera un JWT firmato, con un insieme di attestazioni configurabili. Il JWT può quindi essere restituito trasmessi a destinazioni di backend o utilizzati in altri modi. Per un'introduzione dettagliata, consulta la panoramica delle norme JWS e JWT.
Video
Guarda un breve video per scoprire come generare un JWT firmato.
Esempi
Genera un JWT firmato con HS256. algoritmo
Questo criterio di esempio genera un nuovo JWT e lo firma utilizzando l'algoritmo HS256. Si basa su HS256 su un secret condiviso sia per la firma che per la verifica della firma.
Quando viene attivata questa azione del criterio, Edge codifica l'intestazione JWT e il payload, quindi digitalmente firma il JWT. Guarda il video riportato sopra per un esempio completo, incluso come presentare una richiesta per violazione delle norme.
La configurazione dei criteri qui creerà un JWT con un insieme di attestazioni standard come definito la specifica JWT, inclusa una scadenza di 1 ora, nonché una richiesta aggiuntiva. Puoi includere tutte le rivendicazioni aggiuntive che desideri. Consulta la sezione di riferimento dell'elemento per maggiori dettagli in requisiti e opzioni per ogni elemento di questa norma di esempio.
<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>
Il JWT risultante avrà questa intestazione...
{ "typ" : "JWT", "alg" : "HS256", "kid" : "1918290" }
... e avranno un payload con contenuti simili a questo:
{ "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." }
Il valore delle rivendicazioni iat, exp e jti può variare.
Genera un JWT firmato con RS256 algoritmo
Questo criterio di esempio genera un nuovo JWT e lo firma utilizzando l'algoritmo RS256. La generazione di un La firma RS256 si basa su una chiave privata RSA, che deve essere fornita in formato con codifica PEM. Guarda il video riportato sopra per un esempio completo, incluso come presentare una richiesta per violazione delle norme.
Quando viene attivata questa azione del criterio, Edge codifica e firma digitalmente il JWT, incluse le attestazioni. Per saperne di più sulle parti di un JWT e su come vengono criptate e firmate, consulta RFC7519.
<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>
Impostare gli elementi chiave
Gli elementi che utilizzi per specificare la chiave usata per generare il JWT dipendono dall'algoritmo scelto, come illustrato nella tabella seguente:
Algoritmo | Elementi principali | |
---|---|---|
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> Gli elementi |
|
* Per ulteriori informazioni sui requisiti principali, consulta Informazioni sugli algoritmi di crittografia della firma. |
Riferimento elemento per Genera JWT
La guida di riferimento al criterio descrive gli elementi e gli attributi del criterio Genera JWT.
Nota:la configurazione varierà leggermente a seconda della crittografia. l'algoritmo utilizzato. Fai riferimento agli esempi per esempi che dimostrano configurazioni per casi d'uso specifici.
Attributi che applica all'elemento di primo livello
<GenerateJWT name="JWT" continueOnError="false" enabled="true" async="false">
I seguenti attributi sono comuni a tutti gli elementi principali del criterio.
Attributo | Descrizione | Predefinita | Presenza |
---|---|---|---|
nome |
Il nome interno del criterio. I caratteri utilizzabili nel nome sono limitati a:
A-Z0-9._\-$ % . Tuttavia, l'interfaccia utente di gestione perimetrale applica
come la rimozione automatica di caratteri non alfanumerici.
Se vuoi, puoi usare l'elemento |
N/D | Obbligatorio |
continueOnError |
Imposta il valore su false per restituire un errore quando un criterio non viene eseguito. Si tratta di un comportamento previsto
per la maggior parte dei criteri.
Imposta su |
falso | Facoltativo |
abilitata |
Imposta il valore su true per applicare il criterio.
Imposta su |
true | Facoltativo |
asinc | Questo attributo è obsoleto. | falso | Deprecato |
<DisplayName>
<DisplayName>Policy Display Name</DisplayName>
Da utilizzare, in aggiunta all'attributo name, per etichettare il criterio nell'editor proxy dell'interfaccia utente di gestione con un nome diverso in linguaggio naturale.
Predefinita | Se ometti questo elemento, viene utilizzato il valore dell'attributo nome del criterio. |
Presenza | Facoltativo |
Tipo | Stringa |
<Algorithm>
<Algorithm>algorithm-here</Algorithm>
Specifica l'algoritmo di crittografia per firmare il token.
Predefinita | N/D |
Presenza | Obbligatorio |
Tipo | Stringa |
Valori validi | HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512 |
<Audience>
<Audience>audience-here</Audience> or: <Audience ref='variable_containing_audience'/>
Il criterio genera un JWT contenente un'attestazione aud impostata sul valore specificato valore. Questa dichiarazione identifica i destinatari a cui è destinato il JWT. Questo è uno dei rivendicazioni registrate menzionate in RFC7519.
Predefinita | N/D |
Presenza | Facoltativo |
Tipo | Array (un elenco di valori separati da virgole) |
Valori validi | Qualsiasi elemento che identifichi il pubblico. |
<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'/>
Ti consente di specificare ulteriori coppie nome/valore di rivendicazione nel payload del JWT. Puoi specificare la dichiarazione in modo esplicito come stringa, un numero, un valore booleano, una mappa o un array. Una mappa è semplicemente un insieme di nomi/valori in coppia.
Predefinita | N/D |
Presenza | Facoltativo |
Valori validi | Qualsiasi valore che vuoi utilizzare per una rivendicazione aggiuntiva. Puoi specificare la dichiarazione in modo esplicito come stringa, un numero, un valore booleano, una mappa o un array. |
L'elemento <Claim>
utilizza i seguenti attributi:
- name - (Obbligatorio) Il nome della rivendicazione.
- ref - (Facoltativo) Il nome di una variabile di flusso. Se presente, il criterio utilizzerà il valore di questo come la dichiarazione. Se vengono specificati sia un attributo ref sia un valore di dichiarazione esplicito, il valore esplicito è il valore predefinito e viene utilizzato se la variabile del flusso di riferimento non è risolta.
- type: (facoltativo) uno dei seguenti: string (predefinito), numero, booleano o mappa
- array - (Facoltativo) Imposta su true per indicare se il valore è un array di tipi. Valore predefinito: false.
Se includi l'elemento <Claim>
, i nomi delle rivendicazioni vengono impostati in modo statico quando
e configurare il criterio. In alternativa, puoi passare un oggetto JSON per specificare i nomi delle attestazioni.
Poiché l'oggetto JSON viene passato come variabile, i nomi delle attestazioni nel JWT generato vengono determinati in fase di runtime.
Ad esempio:
<AdditionalClaims ref='json_claims'/>
Dove la variabile json_claims
contiene un oggetto JSON nel formato:
{ "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 } } }
Il JWT generato include tutte le attestazioni nell'oggetto JSON.
<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>
Consente di inserire le altre coppie nome/valore della rivendicazione nell'intestazione del JWT.
Predefinita | N/D |
Presenza | Facoltativo |
Valori validi | Qualsiasi valore che vuoi utilizzare per una rivendicazione aggiuntiva. Puoi specificare la dichiarazione in modo esplicito come stringa, un numero, un valore booleano, una mappa o un array. |
L'elemento <Claim>
utilizza i seguenti attributi:
- name - (Obbligatorio) Il nome della rivendicazione.
- ref - (Facoltativo) Il nome di una variabile di flusso. Se presente, il criterio utilizzerà il valore di questo come la dichiarazione. Se vengono specificati sia un attributo ref sia un valore di dichiarazione esplicito, il valore esplicito è il valore predefinito e viene utilizzato se la variabile del flusso di riferimento non è risolta.
- type: (facoltativo) uno dei seguenti: string (predefinito), numero, booleano o mappa
- array - (Facoltativo) Imposta su true per indicare se il valore è un array di tipi. Valore predefinito: false.
<CriticalHeaders>
<CriticalHeaders>a,b,c</CriticalHeaders> or: <CriticalHeaders ref=’variable_containing_headers’/>
Aggiunge l'intestazione critica, crit, all'intestazione JWT. Intestazione crit è un array di nomi di intestazione che devono essere noti e riconosciuti dal ricevitore JWT. Ad esempio:
{ “typ: “...”, “alg” : “...”, “crit” : [ “a”, “b”, “c” ], }
In fase di runtime, il criterio VerifyJWT esamina l'intestazione crit.
Per ogni elemento elencato nell'intestazione crit, viene verificato che l'elemento <KnownHeaders>
del criterio VerifyJWT elenca anche quell'intestazione. Qualsiasi intestazione trovata dal criterio VerifyJWT in crit
che non è elencato anche in <KnownHeaders>
, causa l'errore del criterio VerifyJWT.
Predefinita | N/D |
Presenza | Facoltativo |
Tipo | Matrice di stringhe separate da virgole |
Valori validi | Una matrice o il nome di una variabile che contiene l'array. |
<CustomClaims>
Nota: al momento, viene inserito un elemento CustomClaim quando aggiungi una nuova il criterio GeneraJWT tramite l'interfaccia utente. Questo elemento non è funzionale e viene ignorato. Il corretto invece è <AdditionalClaims>. L'interfaccia utente aggiornarli per inserire gli elementi corretti in un secondo momento.
<ExpiresIn>
<ExpiresIn>time-value-here</ExpiresIn>
Specifica la durata del JWT in millisecondi, secondi, minuti, ore o giorni.
Predefinita | N/A |
Presenza | Facoltativo |
Tipo | Numero intero |
Valori validi |
Un valore o un riferimento a una variabile di flusso contenente il valore. Le unità di tempo possono essere specificato come segue:
Ad esempio, |
<Id>
<Id>explicit-jti-value-here</Id> -or- <Id ref='variable-name-here'/> -or- <Id/>
Genera un JWT con la specifica dichiarazione jti. Quando il valore text e l'attributo ref sono entrambi vuoto, il criterio genererà un jti contenente un UUID casuale. L'attestazione dell'ID JWT (jti) è un identificatore univoco del JWT. Per ulteriori informazioni su jti, consulta RFC7519.
Predefinita | N/D |
Presenza | Facoltativo |
Tipo | Stringa o riferimento. |
Valori validi | Una stringa o il nome di una variabile di flusso contenente l'ID. |
<IgnoreUnresolvedVariables>
<IgnoreUnresolvedVariables>true|false</IgnoreUnresolvedVariables>
Imposta il valore false se vuoi che il criterio generi un errore quando viene specificata una variabile di riferimento. del criterio non è risolvibile. Imposta il valore su true per trattare le variabili irrisolvibili come stringhe vuote (nullo).
Predefinita | Falso |
Presenza | Facoltativo |
Tipo | Booleano |
Valori validi | true o false |
<Issuer>
<Issuer ref='variable-name-here'/> <Issuer>issuer-string-here</Issuer>
Il criterio genera un JWT contenente un'attestazione denominata iss,con un valore impostato al valore specificato. Una dichiarazione che identifica l'emittente del JWT. Questo è uno dei insieme registrato di rivendicazioni menzionate in RFC7519.
Predefinita | N/D |
Presenza | Facoltativo |
Tipo | Stringa o riferimento |
Valori validi | Qualsiasi |
<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>
Specifica l'ora in cui il token diventa valido. Il token non è valido fino all'ora specificata. Puoi specificare un valore di tempo assoluto o un'ora relativa a quando viene generato il token.
Predefinita | N/D |
Presenza | Facoltativo |
Tipo | Stringa |
Valori validi | Consulta quanto riportato di seguito. |
Valori di tempo validi per l'elemento NotBefore per valori di tempo assoluti
Nome | Formato | Esempio |
ordinabile | 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 |
Lun 14 ago 2017 11:00:21 PDT |
RFC 850 | EEEE, dd-MMM-yy HH:mm:ss zzz |
Lunedì, 14-ago-17 11:00:21 PDT |
ANCI-C | EEE MMM d HH:mm:ss yyyy |
Lun 14 ago 11:00:21 2017 |
Per i valori di tempo relativi, specifica un numero intero e un periodo di tempo, ad esempio:
- 10 sec
- 60 min
- 12 ore
<OutputVariable>
<OutputVariable>jwt-variable</OutputVariable>
Specifica dove posizionare il JWT generato da questo criterio. Per impostazione predefinita, viene posizionata
la variabile di flusso jwt.POLICYNAME.generated_jwt
.
Predefinita | jwt.POLICYNAME.generated_jwt |
Presenza | Facoltativo |
Tipo | Stringa (nome variabile di flusso) |
<PrivateKey/Id>
<PrivateKey> <Id ref="flow-variable-name-here"/> </PrivateKey> or <PrivateKey> <Id>your-id-value-here</Id> </PrivateKey>
Specifica l'ID chiave (kid) da includere nell'intestazione JWT. Utilizza solo quando l'algoritmo è uno di RS256/RS384/RS512, PS256/PS384/PS512 o ES256/ES384/ES512.
Predefinita | N/D |
Presenza | Facoltativo |
Tipo | Stringa |
Valori validi | Una stringa o una variabile di flusso |
<PrivateKey/Password>
<PrivateKey> <Password ref="private.privatekey-password"/> </PrivateKey>
Specifica la password che il criterio deve utilizzare per decriptare la chiave privata, se necessario. Utilizza la ref per passare la chiave in una variabile di flusso. Utilizza solo quando l'algoritmo è uno di RS256/RS384/RS512, PS256/PS384/PS512 o ES256/ES384/ES512.
Predefinita | N/D |
Presenza | Facoltativo |
Tipo | Stringa |
Valori validi |
Un riferimento alla variabile di flusso.
Nota: devi specificare una variabile di flusso. Edge rifiuterà come non valido un
in cui la password è specificata in testo non crittografato. La variabile di flusso
deve avere il prefisso "private". Ad esempio, |
<PrivateKey/Value>
<PrivateKey> <Value ref="private.variable-name-here"/> </PrivateKey>
Specifica una chiave privata con codifica PEM utilizzata per firmare il JWT. Utilizza l'attributo ref per passare chiave in una variabile di flusso. Utilizzare solo se l'algoritmo è uno di RS256/RS384/RS512, PS256/PS384/PS512 o ES256/ES384/ES512.
Predefinita | N/D |
Presenza | Necessario per generare un JWT utilizzando l'algoritmo RS256. |
Tipo | Stringa |
Valori validi |
Una variabile di flusso contenente una stringa che rappresenta un valore di chiave privata RSA con codifica PEM.
Nota: la variabile di flusso deve avere il prefisso "private". Ad esempio:
|
<SecretKey/Id>
<SecretKey> <Id ref="flow-variable-name-here"/> </SecretKey> or <SecretKey> <Id>your-id-value-here</Id> </SecretKey>
Specifica l'ID chiave (kid) da includere nell'intestazione JWT di un JWT firmato con un HMAC dell'algoritmo. Da utilizzare solo se l'algoritmo è uno dei seguenti: HS256/HS384/HS512.
Predefinita | N/D |
Presenza | Facoltativo |
Tipo | Stringa |
Valori validi | Una stringa o una variabile di flusso |
<SecretKey/Value>
<SecretKey> <Value ref="private.your-variable-name"/> </SecretKey>
Fornisce la chiave segreta utilizzata per verificare o firmare i token con un algoritmo HMAC. Utilizza solo quando l'algoritmo è uno di HS256/HS384/HS512. Utilizza l'attributo ref per passare la chiave in una variabile di flusso.
Edge applica una forza minima della chiave per gli algoritmi HS256/HS384/HS512. La lunghezza minima della chiave per HS256 è di 32 byte, per HS384 è di 48 byte e per HS512 è di 64 byte. L'utilizzo di una chiave a potenza inferiore causa un errore di runtime.
Predefinita | N/D |
Presenza | Obbligatorio per gli algoritmi HMAC. |
Tipo | Stringa |
Valori validi |
Una variabile di flusso che fa riferimento a una stringa
Nota: se una variabile di flusso deve avere il prefisso "private". Per
esempio: |
<Subject>
<Subject>subject-string-here</Subject>
<Subject ref="flow_variable" />
Ad esempio:
<Subject ref="apigee.developer.email"/>
Il criterio genera un JWT contenente una rivendicazione sub, impostata sul valore specificato value.Questa dichiarazione identifica o fa una dichiarazione in merito all'oggetto del JWT. Questo è uno dei insieme standard di attestazioni citate in RFC7519.
Predefinita | N/D |
Presenza | Facoltativo |
Tipo | Stringa |
Valori validi | Qualsiasi valore che identifica in modo univoco un soggetto o una variabile di flusso che fa riferimento a un valore. |
Variabili di flusso
Il criterio Genera JWT non imposta le variabili di flusso.
Messaggi di errore
Questa sezione descrive i codici e i messaggi di errore restituiti e le variabili di errore impostate da Edge quando questo criterio attiva un errore. Queste informazioni sono importanti per sapere se si stanno sviluppando regole di errore per gestire gli errori. Per scoprire di più, consulta gli articoli Cosa devi sapere sugli errori relativi alle norme e Gestione degli errori.
Errori di runtime
Questi errori possono verificarsi quando il criterio viene eseguito.
Codice di errore | Stato HTTP | Si verifica quando |
---|---|---|
steps.jwt.AlgorithmInTokenNotPresentInConfiguration |
401 | Si verifica quando il criterio di verifica ha più algoritmi. |
steps.jwt.AlgorithmMismatch |
401 | L'algoritmo specificato nel criterio di generazione non corrisponde a quello previsto nel criterio di verifica. Gli algoritmi specificati devono corrispondere. |
steps.jwt.FailedToDecode |
401 | Il criterio non è stato in grado di decodificare il JWT. Il JWT potrebbe essere danneggiato. |
steps.jwt.GenerationFailed |
401 | Il criterio non è stato in grado di generare il JWT. |
steps.jwt.InsufficientKeyLength |
401 | Per una chiave di dimensioni inferiori a 32 byte per l'algoritmo HS256, a meno di 48 byte per l'algoritmo HS386 e a meno di 64 byte per l'algoritmo HS512. |
steps.jwt.InvalidClaim |
401 | Per una rivendicazione mancante o mancata corrispondenza di una rivendicazione oppure una mancata corrispondenza di intestazione o intestazione. |
steps.jwt.InvalidCurve |
401 | La curva specificata dalla chiave non è valida per l'algoritmo Curva ellittica. |
steps.jwt.InvalidJsonFormat |
401 | JSON non valido trovato nell'intestazione o nel payload. |
steps.jwt.InvalidToken |
401 | Questo errore si verifica quando la verifica della firma JWT non va a buon fine. |
steps.jwt.JwtAudienceMismatch |
401 | La rivendicazione del segmento di pubblico non è riuscita alla verifica del token. |
steps.jwt.JwtIssuerMismatch |
401 | La rivendicazione dell'emittente non è andata a buon fine durante la verifica del token. |
steps.jwt.JwtSubjectMismatch |
401 | La rivendicazione dell'oggetto non è andata a buon fine durante la verifica del token. |
steps.jwt.KeyIdMissing |
401 | Il criterio di verifica utilizza un JWKS come origine per le chiavi pubbliche, ma il JWT firmato non include una proprietà kid nell'intestazione. |
steps.jwt.KeyParsingFailed |
401 | Impossibile analizzare la chiave pubblica a partire dalle informazioni sulla chiave specificate. |
steps.jwt.NoAlgorithmFoundInHeader |
401 | Si verifica quando il JWT non contiene un'intestazione dell'algoritmo. |
steps.jwt.NoMatchingPublicKey |
401 | Il criterio di verifica utilizza un JWKS come origine per le chiavi pubbliche, ma il kid nel JWT firmato non è elencato nel JWKS. |
steps.jwt.SigningFailed |
401 | In CreateJWT, per una chiave inferiore alla dimensione minima per gli algoritmi HS384 o HS512 |
steps.jwt.TokenExpired |
401 | Il criterio tenta di verificare un token scaduto. |
steps.jwt.TokenNotYetValid |
401 | Il token non è ancora valido. |
steps.jwt.UnhandledCriticalHeader |
401 | Un'intestazione trovata dal criterio JWT di verifica nell'intestazione crit non è
elencata in KnownHeaders . |
steps.jwt.UnknownException |
401 | Si è verificata un'eccezione sconosciuta. |
steps.jwt.WrongKeyType |
401 | Tipo di chiave specificato errato. Ad esempio, se specifichi una chiave RSA per un algoritmo Elliptic Curve o una chiave curva per un algoritmo RSA. |
Errori di deployment
Questi errori possono verificarsi quando esegui il deployment di un proxy contenente questo criterio.
Nome errore | Causa | Correggi |
---|---|---|
InvalidNameForAdditionalClaim |
Il deployment non andrà a buon fine se la dichiarazione utilizzata nell'elemento secondario <Claim>
dell'elemento <AdditionalClaims> è uno dei seguenti nomi registrati:
kid , iss , sub , aud , iat ,
exp , nbf o jti .
|
build |
InvalidTypeForAdditionalClaim |
Se la dichiarazione utilizzata nell'elemento secondario <Claim>
dell'elemento <AdditionalClaims> non è di tipo string , number ,
boolean o map , il deployment non andrà a buon fine.
|
build |
MissingNameForAdditionalClaim |
Se il nome della richiesta non è specificato nell'elemento secondario <Claim>
dell'elemento <AdditionalClaims> , il deployment non andrà a buon fine.
|
build |
InvalidNameForAdditionalHeader |
Questo errore si verifica quando il nome dell'attestazione utilizzata nell'elemento secondario <Claim>
dell'elemento <AdditionalClaims> è alg o typ .
|
build |
InvalidTypeForAdditionalHeader |
Se il tipo di attestazione utilizzato nell'elemento secondario <Claim>
dell'elemento <AdditionalClaims> non è di tipo string , number ,
boolean o map , il deployment non andrà a buon fine.
|
build |
InvalidValueOfArrayAttribute |
Questo errore si verifica quando il valore dell'attributo array nell'elemento secondario <Claim>
dell'elemento <AdditionalClaims> non è impostato su true o false .
|
build |
InvalidConfigurationForActionAndAlgorithm |
Se l'elemento <PrivateKey> viene utilizzato con gli algoritmi della famiglia HS o l'elemento <SecretKey> con gli algoritmi della famiglia RSA, il deployment non andrà a buon fine.
|
build |
InvalidValueForElement |
Se il valore specificato nell'elemento <Algorithm> non è supportato, il deployment non andrà a buon fine.
|
build |
MissingConfigurationElement |
Questo errore si verifica se l'elemento <PrivateKey> non viene utilizzato con gli algoritmi della famiglia RSA o se l'elemento <SecretKey> non viene utilizzato con gli algoritmi della famiglia HS.
|
build |
InvalidKeyConfiguration |
Se l'elemento secondario <Value> non è definito negli elementi <PrivateKey> o <SecretKey> , il deployment non andrà a buon fine.
|
build |
EmptyElementForKeyConfiguration |
Se l'attributo ref dell'elemento secondario <Value> degli elementi <PrivateKey> o <SecretKey> è vuoto o non specificato, il deployment non andrà a buon fine.
|
build |
InvalidVariableNameForSecret |
Questo errore si verifica se il nome della variabile di flusso specificato nell'attributo ref dell'elemento
secondario <Value> degli elementi <PrivateKey>
o <SecretKey> non contiene il prefisso privato (private.) .
|
build |
InvalidSecretInConfig |
Questo errore si verifica se l'elemento secondario <Value> degli elementi <PrivateKey>
o <SecretKey> non contiene il prefisso privato (private.) .
|
build |
InvalidTimeFormat |
Se il valore specificato nell'elemento <NotBefore> non utilizza un formato supportato, il deployment non andrà a buon fine.
|
build |
Variabili di errore
Queste variabili vengono impostate quando si verifica un errore di runtime. Per ulteriori informazioni, vedi Cosa devi sapere sugli errori relativi alle norme.
Variabili | Dove | Esempio |
---|---|---|
fault.name="fault_name" |
fault_name è il nome dell'errore, come elencato nella precedente tabella Errori di runtime. Il nome dell'errore è l'ultima parte del codice di errore. | fault.name Matches "TokenExpired" |
JWT.failed |
Tutti i criteri JWT impostano la stessa variabile in caso di errore. | JWT.failed = true |
Esempio di risposta di errore
Per la gestione degli errori, la best practice è il trap della parte errorcode
dell'errore
la risposta corretta. Non fare affidamento sul testo in faultstring
, perché potrebbe cambiare.
Esempio di regola di errore
<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>