GenerateJWS-Richtlinie

Diese Seite gilt für Apigee und Apigee Hybrid.

Apigee Edge-Dokumentation aufrufen

Richtliniensymbol

Was

Generiert ein signiertes JWS mit einem konfigurierbaren Satz von Anforderungen. Das JWT kann dann an Clients zurückgegeben, an Back-End-Ziele übertragen oder auf andere Weise genutzt werden. Eine detaillierte Einführung finden Sie unter Übersicht über JWS- und JWT-Richtlinien.

Informationen zu den Teilen einer JWS und deren Verschlüsselung und Signatur finden Sie unter RFC7515.

Diese Richtlinie ist eine erweiterbare Richtlinie, deren Verwendung je nach Apigee-Lizenz Auswirkungen auf die Kosten oder die Nutzung haben kann. Informationen zu Richtlinientypen und Auswirkungen auf die Nutzung finden Sie unter Richtlinientypen.

Video

In diesem kurzen Video erfahren Sie, wie Sie ein signiertes JWT generieren. Obwohl dieses Video speziell für die Generierung eines JWT gedacht ist, sind viele der Konzepte für JWS identisch.

Beispiele

Eine mit HS256 signierte JWS generieren

Diese Beispielrichtlinie generiert eine JWS, die mit dem HS256-Algorithmus signiert wurde. HS256 stützt sich auf ein gemeinsames Secret für die Signatur und die Verifizierung der Signatur. Diese JWS verwendet „angehängte” Inhalte, d. h., der codierte Header, die Nutzlast und die Signatur werden durch Punkte verkettet, um die endgültige JWS zu erzeugen:

[header].[payload].[signature]

Mit dem Element <Payload> geben Sie die nicht codierte JWS-Rohnutzlast an. In diesem Beispiel enthält eine Variable die Nutzlast. Wenn diese Richtlinienaktion ausgelöst wird, codiert Apigee den JWS-Header und die Nutzlast und fügt dann die codierte Signatur hinzu, um die JWS digital zu signieren.

Die folgende Richtlinienkonfiguration erstellt eine JWS aus einer Nutzlast, die in der Variablen my-payload enthalten ist, und speichert die resultierende JWS in der Variablen output-variable.

<GenerateJWS name="JWS-Generate-HS256">
    <DisplayName>JWS Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <Payload ref="my-payload"/>
    <OutputVariable>output-variable</OutputVariable>
</GenerateJWS>

Ein mit HS256 signiertes JWT generieren

In diesem Beispiel wird auch eine JWS mit angehängten Inhalten generiert, die mit dem HS256-Algorithmus signiert wurden. In diesem Fall ist die Nutzlast JSON. Wenn Sie den typ-Header auf JWT setzen, wird ein signiertes JWS ausgegeben, das auch ein signiertes JWT ist. (Referenz)

Die folgende Richtlinienkonfiguration erstellt eine JWS aus einer Nutzlast, die in der Variablen json-content enthalten ist, und speichert die resultierende JWS in der Variablen output-variable. Das Ergebnis ist nur dann ein signiertes JWT, wenn die Variable json-content eine JSON-Nutzlast enthält und die Attribute innerhalb dieser JSON-Nutzlast für JWT gültig sind. Das Attribut exp muss beispielsweise einen numerischen Wert enthalten, sofern vorhanden. Das Attribut aud, sofern vorhanden, muss ein String oder ein Array von Strings sein. Dies sind nur einige Beispiele für die Bedeutung von Data Governance. Weitere Informationen zu den gültigen Werten für JWT-Anforderungen finden Sie unter IETF RFC7519.

<GenerateJWS name="JWS-Generate-HS256-JWT">
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
    </SecretKey>
    <Payload ref="json-content"/>
    <AdditionalHeaders>
        <Claim name="typ">JWT</Claim>
    </AdditionalHeaders>
    <OutputVariable>output-variable</OutputVariable>
</GenerateJWS>

Getrennte JWS generieren

Diese Beispielrichtlinie generiert eine JWS mit getrenntem Inhalt, die mit dem RS256-Algorithmus signiert wird. Das Generieren einer RS256-Signatur benötigt einen privaten RSA-Schlüssel, der in PEM-codierter Form bereitgestellt werden muss.

Eine JWS mit getrenntem Inhalt lässt die Nutzlast der generierten JWS aus:

[header]..[signature]

Mit dem Element <Payload> geben Sie die nicht codierte JWS-Rohnutzlast an. Wenn diese Richtlinie ausgelöst wird, codiert Apigee den JWS-Header und die Nutzlast und verwendet sie anschließend zum Generieren der codierten Signatur. Die generierte JWS lässt die codierte Nutzlast jedoch aus der serialisierten JWS aus. Dies ist nützlich, wenn die signierten Inhalte groß oder binär sind (z. B. ein Bild oder eine PDF-Datei) oder beides. Um die Validierung zu ermöglichen, müssen beide Elemente, die JWS und die Nutzlast, die in dem signierten Inhalt enthalten war, an die überprüfende Partei übergeben werden. Wenn Sie die VerifyJWS-Richtlinie verwenden, um die JWS zu prüfen, können Sie die Variable mit der Nutzlast mit dem Element <DetachedContent> der VerifyJWS-Richtlinie angeben.

<GenerateJWS name="JWS-Generate-RS256">
    <DisplayName>JWS Generate RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <PrivateKey>
        <Value ref="private.privatekey"/>
        <Password ref="private.privatekey-password"/>
        <Id ref="private.privatekey-id"/>
    </PrivateKey>
    <Payload ref="my-payload"/>
    <DetachContent>true</DetachContent>
    <OutputVariable>output-variable</OutputVariable>
</GenerateJWS>

Schlüsselelemente festlegen

Welche Elemente Sie verwenden, um den Schlüssel zur Generierung der JWS anzugeben, hängt vom ausgewählten Algorithmus ab, wie in der folgenden Tabelle dargestellt:

Algorithmus Schlüsselelemente
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>

Die Elemente <Password> und <Id> sind optional.

* Weitere Informationen zu den Schlüsselanforderungen finden Sie unter Signaturverschlüsselungsalgorithmen.

Elementreferenz für GenerateJWS

Die Richtlinienreferenz beschreibt die Elemente und Attribute der GenerateJWS-Richtlinie.

Hinweis: Die Konfiguration variiert je nach verwendetem Verschlüsselungsalgorithmus. In den Beispielen finden Sie Beispiele für Konfigurationen von bestimmten Anwendungsfällen.

Attribute, die auf das oberste Element angewendet werden

<GenerateJWS name="JWS" continueOnError="false" enabled="true" async="false">

Die folgenden Attribute gelten für alle übergeordneten Richtlinienelemente.

Attribut Beschreibung Standard Präsenz
name Der interne Name der Richtlinie. Folgende Zeichen sind im Namen zulässig: A-Z0-9._\-$ %. Die Apigee-Benutzeroberfläche erzwingt jedoch zusätzliche Einschränkungen, z. B. das automatische Entfernen nicht alphanumerischer Zeichen.

Optional können Sie das Element <displayname></displayname> verwenden, um die Richtlinie im Proxy-Editor der Apigee-Benutzeroberfläche mit einem anderen Namen in der natürlichen Sprache zu versehen.

Erforderlich
continueOnError Legen Sie false fest, um einen Fehler zurückzugeben, wenn eine Richtlinie fehlschlägt. Dies ist für die meisten Richtlinien das erwartete Verhalten.

Legen Sie true fest, damit die Ablaufausführung auch nach dem Fehlschlagen einer Richtlinie fortgesetzt wird.

false Optional
Aktiviert Legen Sie true fest, um die Richtlinie zu erzwingen.

Legen Sie false fest, um die Richtlinie zu "deaktivieren". Die Richtlinie wird nicht erzwungen, selbst wenn sie mit einem Ablauf verknüpft ist.

true Optional
async Dieses Attribut wurde verworfen. false Veraltet

<DisplayName>

<DisplayName>Policy Display Name</DisplayName>

Wird zusätzlich zum Namensattribut verwendet, um die Richtlinie im Proxy-Editor der Apigee-Benutzeroberfläche mit einem anderen Namen in einer natürlichen Sprache zu versehen.

Standard Wenn Sie dieses Element weglassen, wird der Wert des Namensattributs der Richtlinie verwendet.
Präsenz Optional
Typ String

<Algorithm>

<Algorithm>algorithm-here</Algorithm>

Gibt den Verschlüsselungsalgorithmus zum Signieren des Tokens an.

Default
Präsenz Erforderlich
Typ String
Zulässige Werte HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512

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

Fügt die zusätzlichen Paare aus Anforderungsname/Wert in den Header für die JWS ein.

Default
Präsenz Optional
Zulässige Werte Jeder Wert, den Sie für eine zusätzliche Anforderung verwenden möchten. Sie können die Anforderung explizit als String, Zahl, booleschen Wert, Zuordnung oder Array angeben.

Das Element <Claim> verwendet die folgenden Attribute:

  • name: (erforderlich) der Name der Anforderung, auch als Parameter bezeichnet.
  • ref – (optional) Der Name einer Ablaufvariable. Falls vorhanden, verwendet die Richtlinie den Wert dieser Variable als Anforderung. Wenn sowohl ein ref-Attribut als auch ein expliziter Anforderungswert angegeben sind, ist der explizite Wert der Standardwert. Er wird verwendet, wenn die referenzierte Ablaufvariable nicht aufgelöst wird.
  • type – (optional) Kann String (Standard), Zahl, boolescher Wert oder Map sein
  • array – (optional) Legen Sie true fest, um anzugeben, dass der Wert ein Typarray ist. Standardeinstellung: false.

<CriticalHeaders>

<CriticalHeaders>a,b,c</CriticalHeaders>

or:

<CriticalHeaders ref="variable_containing_headers"/>

Fügt der JWS den kritischen Header crit hinzu. Der Header crit ist ein Array aus Headernamen, die bekannt sein und vom JWS-Empfänger erkannt werden müssen. Sie können mit diesem Konfigurationselement beispielsweise einen JWS-Header erstellen, der bei der Decodierung so aussieht:

{
  "typ": "...",
  "alg" : "...",
  "hyb" : "some-value-here",
  "crit" : [ "hyb" ],
}

Dieser JWS-Header bestätigt, dass der Header-Parameter hyb von entscheidender Bedeutung ist und jeder Empfänger der JWS die Bedeutung und den Wert dieses Parameters verstehen muss.

Gemäß IETF RFC 7515 sollte der Empfänger einer JWS die JWS als ungültig ablehnen, wenn der Empfänger einen oder mehrere Parameter, auf die im crit-Parameter verwiesen wird, nicht versteht. In Apigee entspricht diesem Verhalten die VerifyJWS-Richtlinie. Für jeden im crit-Parameter aufgeführten Parameter wird geprüft, ob das <KnownHeaders>-Element der VerifyJWS-Richtlinie diesen Parameter ebenfalls enthält. Jeder Header, den die VerifyJWS-Richtlinie in crit findet, aber nicht in der <KnownHeaders>-Liste aufgeführt ist, veranlasst die VerifyJWS-Richtlinie, die JWS abzulehnen.

Default
Präsenz Optional
Typ Durch Kommas getrenntes Array aus einem oder mehreren Strings
Zulässige Werte Entweder ein Array oder ein Verweis auf eine Variable, die das Array enthält.

<DetachContent>

<DetachContent>true|false</DetachContent>

Gibt an, ob die JWS mit einer getrennten Nutzlast (<DetachContent>true</DetachContent>) oder nicht (<DetachContent>false</DetachContent>) generiert werden soll.

Wenn Sie "false" angeben, hat die standardmäßig erstellte JWS folgendes Format:

[header].[payload].[signature]

Wenn Sie "true" festlegen, um eine JWS mit einer getrennten Nutzlast zu erstellen, wird die Nutzlast in der erzeugten JWS weggelassen. Sie hat das folgende Format:

[header]..[signature]

Bei einer JWS, die eine getrennte Nutzlast verwendet, können Sie die ursprüngliche, nicht codierte Nutzlast zusammen mit der serialisierten JWS an die prüfende Partei übergeben.

Default false
Präsenz Optional
Typ Boolean
Zulässige Werte "true" oder "false"

<IgnoreUnresolvedVariables>

<IgnoreUnresolvedVariables>true|false</IgnoreUnresolvedVariables>

Setzen Sie diesen Wert auf "false", wenn die Richtlinie einen Fehler ausgibt, falls eine in der Richtlinie angegebene Variable, auf die verwiesen wird, nicht auflösbar ist. Setzen Sie diesen Wert auf "true", um alle nicht aufgelösten Variablen als leeren String zu behandeln (null).

Standard false
Präsenz Optional
Typ Boolean
Zulässige Werte "true" oder "false"

<OutputVariable>

<OutputVariable>output-variable</OutputVariable>

Gibt den Namen der Kontextvariablen an, die die Richtlinie mit der generierten JWS festlegen soll. Standardmäßig wird die JWS von der Richtlinie in die Kontextvariable namens jws.POLICYNAME.generated_jws eingefügt.

Default jws.POLICYNAME.generated_jws
Präsenz Optional
Typ String (Name einer Ablaufvariablen)

<Payload>

<Payload ref="flow-variable-name-here" />

or

<Payload>payload-value</Payload>

Gibt die unformatierte nicht codierte JWS-Nutzlast an. Geben Sie eine Variable mit der Nutzlast oder einen String an.

Default
Präsenz Erforderlich
Typ String, Byte-Array, Stream oder eine andere Darstellung der nicht codierten JWS-Nutzlast.
Zulässige Werte Entweder eine Nachrichtenvorlage oder ein Verweis auf eine Variable, die die Nutzlast enthält.

<PrivateKey>-Element

Dies ist optional, und wird nur verwendet, wenn <Algorithm> eine der Optionen RS*, PS* oder ES* ist. Es gibt den privaten Schlüssel für Signieren sowie andere Informationen zum privaten Schlüssel an. Es wird verwendet, wenn der Algorithmus ein asymmetrischer Algorithmus ist.

<PrivateKey>
   <Value ref="private.privatekey"</Value>
</PrivateKey>
Standard:
Präsenz: Optional. Sie müssen jedoch genau eines der Elemente <PrivateKey> oder <SecretKey> angeben. Verwenden Sie das Element <PrivateKey>, wenn der Algorithmus RS*, PS* oder ES* ist, und verwenden Sie das Element <SecretKey>, wenn der Algorithmus HS* ist.
Typ:

<PrivateKey/Id>

<PrivateKey>
  <Id ref="flow-variable-name-here"/>
</PrivateKey>

or

<PrivateKey>
  <Id>your-id-value-here</Id>
</PrivateKey>

Gibt die Schlüssel-ID (kid) an, die im JWS-Header enthalten sein muss.

Default
Präsenz Optional
Typ String
Zulässige Werte Eine Ablaufvariable oder ein String

<PrivateKey/Password>

<PrivateKey>
  <Password ref="private.privatekey-password"/>
</PrivateKey>

Falls erforderlich, geben Sie das Passwort an, das die Richtlinie zum Entschlüsseln des privaten Schlüssels verwenden soll. Verwenden Sie das Attribut ref, um den Schlüssel in einer Ablaufvariable zu übergeben.

Default
Präsenz Optional
Typ String
Zulässige Werte

Eine Referenz für eine Ablaufvariable. Hinweis: Sie müssen eine Ablaufvariable mit dem Attribut ref angeben. Apigee lehnt Richtlinienkonfigurationen, in denen das Passwort im Klartext angegeben wird, als ungültig ab. Die Ablaufvariable muss das Präfix „private” haben. Zum Beispiele private.mypassword

<PrivateKey/Value>

<PrivateKey>
  <Value ref="private.variable-name-here"/>
</PrivateKey>

Gibt einen PEM-codierten privaten Schlüssel an, der zum Signieren der JWS verwendet wird. Verwenden Sie das Attribut ref, um den Schlüssel in einer Ablaufvariable zu übergeben.

Default
Präsenz Erforderlich, wenn mit der Richtlinie eine JWS mithilfe eines der RS*-, PS*- oder ES*-Algorithmen generiert wird.
Typ String
Zulässige Werte Eine Ablaufvariable mit einem String, der einen privaten PEM-codierten Schlüsselwert darstellt.

Hinweis: Die Ablaufvariable muss das Präfix "private" haben. Beispiel: private.mykey

<SecretKey>

<SecretKey encoding="base16|hex|base64|base64url" >
  <Id ref="variable-containing-key-id-here">secret-key-id</Id>
  <Value ref="private.variable-here"/>
</SecretKey>

Gibt den geheimen Schlüssel an, der beim Generieren einer JWS verwendet werden soll, die einen symmetrischen Algorithmus (HS*) verwendet, entweder HS256, HS384 oder HS512.

Dieses Element ist optional. Sie müssen aber unbedingt entweder <PrivateKey> oder <SecretKey> angeben. Verwenden Sie das Element <PrivateKey>, wenn Sie eine JWS generieren, die mit einem asymmetrischen Algorithmus signiert ist (entweder RS*, PS* oder ES*), und das Element <SecretKey>, wenn Sie eine JWS signieren, die mit einen symmetrischen Algorithmus (wie HS*) signiert ist.

Untergeordnete Elemente von <SecretKey>

In der folgenden Tabelle sind die untergeordneten Elemente und Attribute von <SecretKey> beschrieben:

Untergeordnet Präsenz Beschreibung
encoding (Attribut) Optional

Gibt an, wie der Schlüssel in der referenzierten Variable codiert ist. Wenn kein encoding-Attribut vorhanden ist, wird die Codierung des Schlüssels standardmäßig als UTF-8 behandelt. Gültige Werte für das Attribut sind: „hex“, „base16“, „base64“ und „base64url“. Die Codierungswerte „hex“ und „base16“ sind synonym.


<SecretKey encoding="hex" >
  <Id ref="variable-containing-key-id-here">secret-key-id</Id>
  <Value ref="private.secretkey"/>
</SecretKey>

Da im obigen Beispiel die Codierung hex lautet, wird der Schlüssel als Satz von 9 Byte decodiert, wenn die Variable private.secretkey den Inhalt 494c6f766541504973 hat. Im hex-Format ist das 49 4c 6f 76 65 41 50 49 73.

Id (Element) Optional

Die Schlüsselkennung. Der Wert kann ein beliebiger String sein. Sie können den Wert als Literaltextwert oder indirekt über eine Variablenreferenz mit dem Attribut ref angeben.


<SecretKey>
  <Id ref="flow-variable-name-here"/>
  <Value ref="private.variable-here"/>
</SecretKey>

or

<SecretKey>
  <Id>your-id-value-here</Id>
  <Value ref="private.variable-here"/>
</SecretKey>

Die Richtlinie enthält diese Schlüsselkennung als Anforderung kid im Header der generierten JWS.

Value (Element) Erforderlich

Einen codierten geheimen Schlüssel Gibt den geheimen Schlüssel an, der zum Signieren der Nutzlast verwendet wird. Verwenden Sie das Attribut ref, um den Schlüssel indirekt über eine Variable wie private.secret-key bereitzustellen .


<SecretKey>
  <Id ref="flow-variable-name-here"/>
  <Value ref="private.my-secret-variable"/>
</SecretKey>

Apigee erzwingt eine Mindestschlüsselstärke für die Algorithmen HS256/HS384/HS512. Die Mindestschlüssellänge für HS256 beträgt 32 Byte, für HS384 48 Byte und für HS512 64 Byte. Die Verwendung eines Schlüssels mit geringerer Stärke führt zu einem Laufzeitfehler.

<Type>

<Type>type-string-here</Type>

Optionales Element, dessen einziger erlaubter Wert Signed ist und angibt, dass die Richtlinie ein signiertes JWS generiert. <Type> wird nur bereitgestellt, um mit dem entsprechenden Element für die GenerateJWT- und VerifyJWT-Richtlinien abzugleichen. Dabei kann es einen der Werte Signed oder Encrypted haben.

Default
Präsenz Optional
Typ String
Gültiger Wert Signed

Ablaufvariablen

Die GenerateJWS-Richtlinie legt keine Ablaufvariablen fest.

Fehlerreferenz

In diesem Abschnitt werden die zurückgegebenen Fehlercodes und Fehlermeldungen beschrieben, die von Apigee festgelegt werden, wenn die Richtlinie einen Fehler auslöst. Diese Informationen sind wichtig, wenn Sie Fehlerregeln zur Verarbeitung von Fehlern entwickeln. Weitere Informationen finden Sie unter Was Sie über Richtlinienfehler wissen müssen und Fehler beheben.

Laufzeitfehler

Diese Fehler können bei Ausführung der Richtlinie auftreten.

Fehlercode HTTP-Status Tritt auf, wenn Folgendes eintritt
steps.jws.GenerationFailed 401 Die Richtlinie konnte das JWS nicht generieren.
steps.jws.InsufficientKeyLength 401 Für Schlüssel mit weniger als 32 Byte für den HS256-Algorithmus
steps.jws.InvalidClaim 401 Bei fehlendem Anspruch, nicht übereinstimmender Anforderung oder fehlendem oder nicht übereinstimmendem Header.
steps.jws.InvalidCurve 401 Die vom Schlüssel angegebene Kurve ist für den Elliptic-Curve-Algorithmus ungültig.
steps.jws.InvalidJsonFormat 401 Ungültige JSON-Datei im JWS-Header
steps.jws.InvalidPayload 401 Die JWS-Nutzlast ist ungültig.
steps.jws.InvalidSignature 401 <DetachedContent> wird weggelassen und das JWS hat eine separate Inhaltsnutzlast.
steps.jws.KeyIdMissing 401 Die Verifizierungsrichtlinie verwendet einen JWKS als Quelle für öffentliche Schlüssel, aber das signierte JWS hat kein kid-Attribut im Header.
steps.jws.KeyParsingFailed 401 Der öffentliche Schlüssel konnte anhand der angegebenen Schlüsselinformationen nicht geparst werden.
steps.jws.MissingPayload 401 Die JWS-Nutzlast fehlt.
steps.jws.NoAlgorithmFoundInHeader 401 Tritt auf, wenn der JWS den Algorithmusheader weglässt.
steps.jws.SigningFailed 401 In GenerateJWS, für Schlüssel, die kleiner als die Mindestgröße für den HS384- oder HS512-Algorithmus sind
steps.jws.UnknownException 401 Es ist eine unbekannte Ausnahme aufgetreten.
steps.jws.WrongKeyType 401 Falscher Schlüsseltyp angegeben. Wenn Sie beispielsweise einen RSA-Schlüssel für einen Elliptic Curve-Algorithmus oder einen Kurvenschlüssel für einen RSA-Algorithmus angeben.

Bereitstellungsfehler

Diese Fehler können auftreten, wenn Sie einen Proxy mit dieser Richtlinie bereitstellen.

Fehlername Tritt auf, wenn Folgendes eintritt
InvalidAlgorithm Die einzigen gültigen Werte sind RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512.

EmptyElementForKeyConfiguration

FailedToResolveVariable

InvalidConfigurationForActionAndAlgorithmFamily

InvalidConfigurationForVerify

InvalidEmptyElement

InvalidFamiliesForAlgorithm

InvalidKeyConfiguration

InvalidNameForAdditionalClaim

InvalidNameForAdditionalHeader

InvalidPublicKeyId

InvalidPublicKeyValue

InvalidSecretInConfig

InvalidTypeForAdditionalClaim

InvalidTypeForAdditionalHeader

InvalidValueForElement

InvalidValueOfArrayAttribute

InvalidVariableNameForSecret

MissingConfigurationElement

MissingElementForKeyConfiguration

MissingNameForAdditionalClaim

MissingNameForAdditionalHeader

Andere mögliche Bereitstellungsfehler.

Fehlervariablen

Diese Variablen werden bei Laufzeitfehlern festgelegt. Weitere Informationen finden Sie unter Was Sie über Richtlinienfehler wissen müssen.

Variablen Wo Beispiel
fault.name="fault_name" fault_name ist der Name des Fehlers, der in der obigen Tabelle Laufzeitfehler aufgeführt ist. Der Fehlername ist der letzte Teil des Fehlercodes. fault.name Matches "TokenExpired"
JWS.failed Bei allen JWT-Richtlinien wird im Fall eines Fehlers dieselbe Variable festgelegt. jws.JWS-Policy.failed = true

Beispiel für eine Fehlerantwort

Bei der Fehlerbehandlung besteht die Best Practice darin, den errorcode-Teil der Fehlerantwort zu beachten. Verlassen Sie sich nicht auf den Text in faultstring. Er kann sich ändern.

Beispiel für eine Fehlerregel

<FaultRules>
    <FaultRule name="JWS Policy Errors">
        <Step>
            <Name>JavaScript-1</Name>
            <Condition>(fault.name Matches "TokenExpired")</Condition>
        </Step>
        <Condition>JWS.failed=true</Condition>
    </FaultRule>
</FaultRules>