Fehlerbehebung bei der Bereitstellung von VerifyJWT-Richtlinien

Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen.

InvalidNameForAdditionalClaim

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

Error Saving Revision revision_number
Invalid name for additional claim : policy(policy_name) claim(claim_name).

Beispiel für Fehlermeldung

Error Saving Revision 2
Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).

Beispiel-Screenshot

In der Apigee-Benutzeroberfläche wird ein Dialog mit einem Fehler angezeigt:

Fehlermeldung "Ungültiger Name für zusätzliche Anforderung"

Ursache

Dieser Fehler tritt auf, wenn der Name der Anforderung, die im untergeordneten Element <Claim> des <AdditionalClaims>-Elements verwendet wird, einer der folgenden registrierten Namen ist:

„kid“, „iss“, „sub“, „aud“, „iat“, „exp“, „nbf“, „jti“

Die registrierten Anforderungen sind in RFC 7519 angegeben.

Beispiel: Wenn Sie den Anforderungsnamen iss unter dem <AdditionalClaims>-Element verwenden, führt das zu diesem Fehler.

Diagnose

  1. Identifizieren Sie in der Fehlermeldung den Namen der Verify JWT-Richtlinie und den Anforderungsnamen. In der folgenden Fehlermeldung lautet der Name der Verify JWT-Richtlinie beispielsweise JWT-Verify-RS256 und der Anforderungsname iss:

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    
  2. Prüfen Sie, ob der Anforderungsname, der in der XML-Datei der fehlgeschlagenen Verify JWT-Richtlinien unter dem <AdditionalClaims>-Element verwendet wird, mit dem in der Fehlermeldung angegebenen Anforderungsnamen übereinstimmt. Die folgende Richtlinie gibt beispielsweise die Anforderung als iss an, was dem Inhalt der Fehlermeldung entspricht:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</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="iss"/>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. Wenn der im untergeordneten Element <Claim> des Elements <AdditionalClaims> verwendete Anforderungsname einer der folgenden registrierten Namen ist:

    „kid“, „iss“, „sub“, „aud“, „iat“, „exp“, „nbf“, „jti“

    dann ist das die Ursache des Fehlers.

    Im oben gezeigten Beispiel der Verify JWT-Richtlinie wird der Name <Claim> als iss unter dem Element <AdditionalClaims> angegeben, was den Fehler verursacht:

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    

Lösung

Verwenden Sie keinen der registrierten Namen "kid", "iss", "sub", "aud", "iat", "exp", "nbf" oder "jti" im untergeordneten Element <Claim> des Elements <AdditionalClaims>.

Ändern Sie den Anforderungsnamen in status, um das Problem in der beispielhaften Verify JWT-Richtlinie zu beheben:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</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='status' type='string'>Development</Claim>
    </AdditionalClaims>
</VerifyJWT>

InvalidTypeForAdditionalClaim

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

Error Saving Revision revision_number
Invalid type for additional claim : policy(policy_name) claim(claim_name) type(type_name).

Beispiel für Fehlermeldung

Error Saving Revision 2
Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).

Beispiel-Screenshot

In der Apigee-Benutzeroberfläche wird ein Dialog mit einem Fehler angezeigt:

Fehlermeldung &quot;Ungültiger Typ für zusätzliche Anforderung&quot;

Ursache

Der Anforderungstyp, der im untergeordneten Element <Claim> des Elements <AdditionalClaims> der VerifyJWT-Richtlinie verwendet wird, gehört nicht zu den folgenden Typen:

string (Standard), number, boolean, oder map

Wird beispielsweise der Anforderungstyp integer unter dem <AdditionalClaims>-Element verwendet, führt dies zu einem Fehler.

Diagnose

  1. Ermitteln Sie den Namen der Verify JWT-Richtlinie, den Anforderungsnamen und den Typ aus der Fehlermeldung. In der folgenden Fehlermeldung lautet der Name der Verify JWT-Richtlinie beispielsweise JWT-Verify-RS256, der Anforderungsname claim und der Typ integer:.

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Prüfen Sie, ob der Anforderungsname und -typ, die unter dem Element <AdditionalClaims> in der XML-Datei der fehlgeschlagenen Verify JWT-Richtlinie verwendet werden, mit dem in der Fehlermeldung (Schritt 1) identifizierten Anforderungsnamen und -typ übereinstimmen. Die folgende Richtlinie gibt beispielsweise die Anforderung als claim und den Typ als integer an, was dem Inhalt der Fehlermeldung entspricht:

    <VerifyJWT name="JWT-Verify-RS256">
      <DisplayName>JWT Verify RS256</DisplayName>
      <Algorithm>RS256</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='claim' ref='reqclaim' type='integer'/>
      </AdditionalClaims>
    </VerifyJWT>
    
  3. Der Anforderungstyp, der im untergeordneten Element <Claim> des <AdditionalClaims>-Elements verwendet wird, ist keiner der folgenden Typen:

    string (Standard), number, boolean, oder map

    dann ist das die Ursache des Fehlers.

    Im der obigen beispielhaft dargestellten Verify JWT-Richtlinie wird der Typ <Claim> unter dem Element <AdditionalClaims> als integer angegeben. Da integer kein unterstützter Typ ist, erhalten Sie folgende Fehlermeldung:

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    

Lösung

Achten Sie darauf, dass nur die unterstützten Datentypen string (Standard), number, boolean oder map im untergeordneten Element <Claim> des Elements <AdditionalClaims> verwendet werden.

Ändern Sie den Anforderungstyp in boolean, um den Fehler in der beispielhaften Verify JWT-Richtlinie zu korrigieren:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</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='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</VerifyJWT>

MissingNameForAdditionalClaim

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

Error Saving Revision revision_number
Error occurred while validation of bean(policy_name.xml) Reason: - Required attribute name is missing in Claim.

Beispiel für Fehlermeldung

Error Saving Revision 2
Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim

Beispiel-Screenshot

In der Apigee-Benutzeroberfläche wird ein Dialog mit einem Fehler angezeigt:

Fehlermeldung &quot;Attributname fehlt in der Anforderung&quot;

Ursache

Dieser Fehler tritt auf, wenn der Name der Anforderung nicht im untergeordneten Element <Claim> des Elements <AdditionalClaims> oder <AdditionalHeaders> angegeben wird.

Diagnose

  1. Ermitteln Sie den Namen der Verify JWT-Richtlinie in der Fehlermeldung. In der folgenden Fehlermeldung lautet der Name der Verify JWT-Richtlinie beispielsweise JWT-Verify-RS256:

    Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. Prüfen Sie in der XML-Datei der fehlgeschlagenen Verify JWT-Richtlinie, ob der Anforderungsname im untergeordneten Element <Claims> unter dem Element <AdditionalClaims> oder <AdditionalHeaders> fehlt. Die folgende Verify JWT-Richtlinie gibt beispielsweise nicht den Anforderungsnamen im <AdditionalClaims>-Element an:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</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 ref='reqclaim' type='boolean'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    Da der <Claim>-Name unter dem Element <AdditionalClaims> nicht angegeben wird, erhalten Sie folgende Fehlermeldung:

    Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
    

Lösung

Der Name der Anforderung muss immer im untergeordneten Element <Claim> des Elements <AdditionalClaims> oder <AdditionalHeaders> angegeben werden.

Um den Fehler in der beispielhaften Verify JWT-Richtlinie zu korrigieren, geben Sie den Anforderungsnamen folgendermaßen an:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</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='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</VerifyJWT>

InvalidNameForAdditionalHeader

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

Error Saving Revision revision_number
Invalid name for additional header : policy(policy_name)header(header_name).

Beispiel für Fehlermeldung

Error Saving Revision 2
Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).

Beispiel-Screenshot

In der Apigee-Benutzeroberfläche wird ein Dialog mit einem Fehler angezeigt:

Fehlermeldung &quot;Ungültiger Header für zusätzliche Anforderung&quot;

Ursache

Dieser Fehler tritt auf, wenn der Name der im untergeordneten Element <Claim> des Elements <AdditionalHeaders> verwendeten Anforderung einer der folgenden Standard-JWT-Header ist:

alg oder typ

Beispiel: Wenn Sie den Anforderungsnamen alg unter dem <AdditionalHeaders>-Element verwenden, wird der Fehler verursacht.

Diagnose

  1. Identifizieren Sie in der Fehlermeldung den Namen der Verify JWT-Richtlinie und den Namen des Headers. In der folgenden Fehlermeldung lautet der Name der Verify JWT-Richtlinie beispielsweise JWT-Verify-RS256 und der Header-Name alg:

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    
  2. Prüfen Sie, ob der Header-Name im untergeordneten Element <Claim> unter dem <AdditionalHeaders>-Element in der XML-Datei der fehlgeschlagenen Verify JWT-Richtlinie mit dem in der Fehlermeldung angegebenen Header-Namen übereinstimmt. Die folgende Richtlinie gibt beispielsweise den Header als alg an, was dem Inhalt der Fehlermeldung entspricht:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</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/>
        <AdditionalHeaders>
            <Claim name="alg"/>
        </AdditionalHeaders>
    </VerifyJWT>
    
  3. Wenn der im untergeordneten Element <Claim> des Elements <AdditionalClaims> verwendete Header-Name einer der folgenden Standard-JWT-Header ist:

    alg oder typ

    dann ist das die Ursache des Fehlers.

    Im oben gezeigten Beispiel der Verify JWT-Richtlinie wird der Name <Claim> als alg unter dem Element <AdditionalClaims> angegeben, was den Fehler verursacht:

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    

Lösung

Verwenden Sie die Standard-JWT-Header alg oder typ nie im untergeordneten Element <Claim> des Elements <AdditionalHeaders>.

Um den Fehler in der beispielhaften Verify JWT-Richtlinie zu korrigieren, verwenden Sie den Namen x5c im untergeordneten Element <Claim> des Elements <AdditionalHeaders>:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</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/>
    <AdditionalHeaders>
        <Claim name='x5c'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidTypeForAdditionalHeader

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

Error Saving Revision revision_number
Invalid type for additional header : policy(policy_name) claim(claim_name) type(type_name).

Beispiel für Fehlermeldung

Error Saving Revision 2
Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim1) type(integer).

Beispiel-Screenshot

In der Apigee-Benutzeroberfläche wird ein Dialog mit einem Fehler angezeigt:

Fehlermeldung &quot;Ungültiger Typ für zusätzlichen Header&quot;

Ursache

Der Fehler tritt auf, wenn der Anforderungstyp, der im untergeordneten Element <Claim> des Elements <AdditionalHeaders> der Verify JWT-Richtlinie verwendet wird, nicht zu den folgenden Typen gehört:

string (Standard), number, boolean, oder map

Beispiel: Wenn Sie den Anforderungstyp integer unter dem <AdditionalHeaders>-Element verwenden, wird der Fehler verursacht.

Diagnose

  1. Ermitteln Sie den Namen der Verify JWT-Richtlinie, den Anforderungsnamen und den Typ aus der Fehlermeldung. In der folgenden Fehlermeldung lautet der Name der Verify JWT-Richtlinie beispielsweise JWT-Verify-RS256, der Anforderungsname claim und der Typ integer.

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Prüfen Sie, ob der Anforderungsname und -typ, die unter dem Element <AdditionalClaims> in der XML-Datei der fehlgeschlagenen Verify JWT-Richtlinie verwendet werden, mit dem in der Fehlermeldung (Schritt 1) identifizierten Anforderungsnamen und -typ übereinstimmen. Die folgende Richtlinie gibt beispielsweise die Anforderung als claim und den Typ als integer, an, was dem Inhalt der Fehlermeldung entspricht:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</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/>
        <AdditionalHeaders>
            <Claim name='claim' ref='reqclaim' type='integer'/>
        </AdditionalHeaders>
    </VerifyJWT>
    
  3. Der Anforderungstyp, der im untergeordneten Element <Claim> des <AdditionalHeaders>-Elements verwendet wird, ist keiner der folgenden Typen:

    string (Standard), number, boolean, oder map

    dann ist das die Ursache des Fehlers.

    In der obigen beispielhaften Verify JWT-Richtlinie ist für den Typ <Claim> unter dem Element <AdditionalHeaders> der Wert integer angegeben. Da integer kein unterstützter Typ ist, erhalten Sie folgende Fehlermeldung:

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    

Lösung

Achten Sie darauf, dass nur die unterstützten Datentypen string, number, boolean oder map im untergeordneten Element <Claim> des Elements <AdditionalHeaders> verwendet werden.

Ändern Sie den Anforderungstyp in boolean, um den Fehler in der beispielhaften Verify JWT-Richtlinie zu korrigieren:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</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/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidValueOfArrayAttribute

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

Error Saving Revision revision_number
Invalid value for array attribute: policy(policy_name)claim(claim_name).

Beispiel für Fehlermeldung

Error Saving Revision 2
Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).

Beispiel-Screenshot

In der Apigee-Benutzeroberfläche wird ein Dialog mit einem Fehler angezeigt:

Fehlermeldung &quot;Ungültiger Wert für Arrayattribut&quot;

Ursache

Dieser Fehler tritt auf, wenn der Wert des Arrayattributs im untergeordneten Element <Claim> des Elements <AdditionalClaims> oder <AdditionalHeaders> nicht auf true oder false festgelegt ist.

Beispielsweise wird ein Fehler verursacht, wenn der Arrayattributwert im untergeordneten Element <Claim> des Elements <AdditionalClaims> oder <AdditionalHeaders> als yes festgelegt wird.

Diagnose

  1. Identifizieren Sie in der Fehlermeldung den Namen der Verify JWT-Richtlinie und den Anforderungsnamen. In der folgenden Fehlermeldung lautet der Name der Verify JWT-Richtlinie beispielsweise JWT-Verify-RS256 und der Anforderungsname claim:

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    
  2. Prüfen Sie, ob der Anforderungsname, der im untergeordneten Element <Claim> unter dem <AdditionalHeaders>-Element in der XML-Datei der fehlgeschlagenen Verify JWT-Richtlinie verwendet wird, mit dem in der Fehlermeldung identifizierten Anforderungsnamen übereinstimmt. Die folgende Richtlinie gibt beispielsweise den Anforderungsnamen als claim an, was dem Inhalt der Fehlermeldung entspricht:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</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='claim' ref='reqclaim' type='string' array='yes'/>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. Wenn der Wert des Attributs array im untergeordneten Element <Claim> des <AdditionalClaims>-Elements nicht auf true oder false festgelegt ist, ist dies die Fehlerursache.

    Da das Attribut array im untergeordneten Element <Claim> des Elements <AdditionalClaims> im obigen Beispiel auf yes gesetzt ist, erhalten Sie folgende Fehlermeldung:

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    

Lösung

Achten Sie darauf, dass der Wert des Arrayattributs im untergeordneten Element <Claim> des Elements <AdditionalClaims> oder <AdditionalHeaders> auf true oder false festgelegt ist.

Um den Fehler in der obigen beispielhaften Verify JWT-Richtlinie zu korrigieren, ändern Sie den Wert des Arrayattributs auf true:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</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/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidValueForElement

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

Error Saving Revision
Invalid Value for element : policy(policy_name) element(element_name).

Beispiel für Fehlermeldung

Error Saving Revision
Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).

Beispiel-Screenshot

In der Apigee-Benutzeroberfläche wird ein Dialog mit einem Fehler angezeigt:

Fehlermeldung &quot;Ungültiger Wert für Element&quot;

Ursache

Dieser Fehler tritt auf, wenn der im Element <Algorithm> angegebene Wert keinen der folgenden Werte enthält:

HS256, HS384, HS512, RS256, RS384, RS512

Wenn Sie beispielsweise den Algorithmuswert im Element <Algorithm> als RS128 angeben, führt das zu diesem Fehler.

Diagnose

  1. Ermitteln Sie den Namen der Verify JWT-Richtlinie und den Elementnamen aus der Fehlermeldung. In der folgenden Fehlermeldung lautet der Name der Verify JWT-Richtlinie beispielsweise JWT-Verify-RS256 und der Elementname Algorithm:

    Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
    
  2. Prüfen Sie die XML-Datei der fehlgeschlagenen Verify JWT-Richtlinie und den für das Element <Algorithm> angegebenen Wert.

    Hier ist ein Beispiel für eine Verify JWT-Richtlinie:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS128</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='status' type='string'>Development</Claim>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. Prüfen Sie den im Element <Algorithm> angegebenen Wert. Ist dies nicht einer der Werte

    HS256, HS384, HS512, RS256, RS384, RS512

    dann ist das die Ursache des Fehlers.

    In der obigen beispielhaften Verify JWT-Richtlinie ist der Name <Algorithm> als HS128 angegeben. Da es sich nicht um einen unterstützten Algorithmus handelt, erhalten Sie folgende Fehlermeldung:

    Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
    

Lösung

Achten Sie darauf, dass der im Element <Algorithm> angegebene Wert einer der unterstützten Werte ist:

HS256, HS384, HS512, RS256, RS384, RS512

Um den Fehler in der obigen beispielhaften Verify JWT-Richtlinie, die das Element <SecretKey> verwendet, zu korrigieren, ändern Sie den Wert von <Algorithm> in HS25. Hinweis: Bei Verwendung des Elements <SecretKey> können Sie nur Algorithmen der HS-Familie verwenden.

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</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='status' type='string'>Development</Claim>
    </AdditionalClaims>
</VerifyJWT>

MissingConfigurationElement

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

Error Saving Revision
Missing configuration element : policy(policy_name) element(element_name).

Beispiel für Fehlermeldung

Error Saving Revision
Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).

Beispiel-Screenshot

In der Apigee-Benutzeroberfläche wird ein Dialog mit einem Fehler angezeigt:

Fehlermeldung &quot;Fehlendes Konfigurationselement&quot;

Ursache

Dieser Fehler tritt auf, wenn das Element <PublicKey> nicht mit Algorithmen der RSA-Familie in der Verify JWT-Richtlinie verwendet wird. Ebenso kann der Fehler auftreten, wenn das Element <SecretKey> nicht mit Algorithmen der HS-Familie in der Verify JWT-Richtlinie verwendet wird.

Wenn Sie beispielsweise nicht das <PublicKey>-Element mit RSA-Familienalgorithmen verwenden, führt dies zu diesem Fehler.

Diagnose

  1. Ermitteln Sie den Namen der Verify JWT-Richtlinie und den fehlenden Elementnamen aus der Fehlermeldung. In der folgenden Fehlermeldung lautet der Name der Verify JWT-Richtlinie beispielsweise JWT-Verify-RS256 und der fehlende Elementname ist PublicKey:

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    
  2. Untersuchen Sie die XML-Datei der fehlgeschlagenen Verify JWT-Richtlinie und prüfen Sie, ob das in der Fehlermeldung angegebene Element fehlt. Wenn es fehlt, ist dies die Ursache des Fehlers.

    In der folgenden Richtlinie können Sie beispielsweise sehen, dass PublicKey fehlt und die verwendete Algorithm RS256 ist:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    In der beispielhaften Verify JWT-Richtlinie werden Algorithmen der HS-Familie verwendet, aber das erforderliche Element PublicKey fehlt. Dies führt zum Fehler:

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    

Lösung

Vergewissern Sie sich, dass das obligatorische <PublicKey>-Element mit RSA-Algorithmen verwendet wird und das obligatorische <SecretKey>-Element mit HS-Familienalgorithmen verwendet wird.

Fügen Sie der VerifyJWT-Richtlinie das Element <PublicKey> hinzu, um den Fehler in der oben beispielhaft dargestellten Verify JWT-Richtlinie, die den RS256-Algorithmus verwendet, zu korrigieren:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <Algorithm>RS256</Algorithm>
    <PublicKey>
      <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidKeyConfiguration

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

Error Saving Revision 
Invalid Key configuration : policy(policy_name).

Beispiel für Fehlermeldung

Error Saving Revision 2
Invalid Key configuration : policy(JWT-Verify-RS256).

Beispiel-Screenshot

In der Apigee-Benutzeroberfläche wird ein Dialog mit einem Fehler angezeigt:

Fehlermeldung &quot;Ungültige Schlüsselkonfiguration&quot;

Ursache

Dieser Fehler tritt auf, wenn das untergeordnete Element <Value> oder das erforderliche untergeordnete Element <JWKS> nicht in den Elementen <PublicKey> oder <SecretKey> der Verify JWT-Richtlinie definiert ist.

Diagnose

  1. Ermitteln Sie den Namen der Verify JWT-Richtlinie in der Fehlermeldung. In der folgenden Fehlermeldung lautet der Name der Verify JWT-Richtlinie beispielsweise JWT-Verify-RS256:

    Invalid Key configuration : policy(JWT-Verify-RS256).
    
    
  2. Untersuchen Sie die fehlgeschlagene Verify JWT-Richtlinien-XML-Datei und überprüfen Sie, ob das untergeordnete Element <Value> oder das untergeordnete Element <JWKS> nicht in den Elementen <PublicKey> oder <SecretKey> definiert ist. Wenn das untergeordnete Element nicht definiert ist, ist dies die Fehlerursache.

    In der folgenden Richtlinie können Sie beispielsweise sehen, dass das untergeordnete Element <Value> oder <JWKS> nicht im Element <PublicKey> definiert ist:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <PublicKey>
        </PublicKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    Da das untergeordnete Element <Value> oder <JWKS> nicht im Element <PublicKey> der Verify JWT-Richtlinie definiert ist, erhalten Sie diesen Fehler:

    Invalid Key configuration : policy(JWT-Verify-RS256).
    

Lösung

Das untergeordnete Element <Value> oder <JWKS> muss immer im Element <PublicKey> der Verify JWT-Richtlinie definiert sein.

Um den Fehler in der obigen beispielhaften Verify JWT-Richtlinie zu korrigieren, definieren Sie das untergeordnete Element <Value> oder <JWKS> unter dem <PublicKey>-Element:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <PublicKey>
        <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</PublicJWT>

EmptyElementForKeyConfiguration

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

Error Saving Revision revision_number
Empty Element for Key Configuration : policy(policy_name) element(element_name).

Beispiel für Fehlermeldung

Error Saving Revision 2
Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).

Beispiel-Screenshot

In der Apigee-Benutzeroberfläche wird ein Dialog mit einem Fehler angezeigt:

Fehlermeldung &quot;Leeres Element für Schlüsselkonfiguration&quot;

Ursache

Dieser Fehler tritt auf, wenn das Attribut "ref" im untergeordneten Element <Value> oder <JWKS> des <PublicKey>-Elements nicht angegeben oder leer ist.

Wenn beispielsweise das untergeordnete Element <Value> des Elements <PublicKey> leer ist, tritt der Fehler auf.

Diagnose

  1. Ermitteln Sie aus der Fehlermeldung den Namen der Verify JWT-Richtlinie und den Elementnamen, der leer ist. In der folgenden Fehlermeldung lautet der Name der Verify JWT-Richtlinie beispielsweise JWT-Verify-RS256 und der Elementname PublicKey/Value:

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
  2. Untersuchen Sie die XML-Datei der fehlgeschlagenen Verify JWT-Richtlinie und prüfen Sie, ob das in Schritt 1 ermittelte Element leer ist. Wenn es leer ist, ist dies die Fehlerursache.

    In der folgenden Richtlinie können Sie beispielsweise sehen, dass das untergeordnete Element <Value> des Elements <PublicKey> leer ist:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <PublicKey>
            <Value/>
        </PublicKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    Da das untergeordnete Element <Value> des Elements <PublicKey> der Verify JWT-Richtlinie leer ist, wird folgende Fehlermeldung angezeigt:

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
    

Lösung

Achten Sie darauf, dass das Attribut "ref" im untergeordneten Element <Value> oder <JWKS> des <PublicKey>-Elements immer angegeben wird.

Um den Fehler in der beispielhaften Verify JWT-Richtlinie zu korrigieren, setzen Sie die Ablaufvariable public.publickey im untergeordneten Element <Value> des Elements <PublicKey> ein:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <PublicKey>
        <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidConfigurationForVerify

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

Error Saving Revision revision_number
Invalid configuration element for verify : policy(policy_name) element(element_name).

Beispiel für Fehlermeldung

Error Saving Revision 3
Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id).

Beispiel-Screenshot

In der Apigee-Benutzeroberfläche wird ein Dialog mit einem Fehler angezeigt:

Fehlermeldung &quot;Ungültiges Konfigurationselement für Verifizierung&quot;

Ursache

Dieser Fehler tritt auf, wenn das Element <Id> innerhalb des Elements <SecretKey> einer VerifyJWT-Richtlinie definiert ist.

Wenn das Element <Id> beispielsweise im Element <SecretKey> definiert ist, tritt dieser Fehler auf.

Diagnose

  1. Ermitteln Sie den Namen der Verify JWT-Richtlinie und den ungültigen Elementnamen aus der Fehlermeldung. In der folgenden Fehlermeldung lautet der Name der Verify JWT-Richtlinie beispielsweise JWT-Verify-RS256 und der Elementname SecretKey/Id:

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    
  2. Untersuchen Sie die XML-Datei der fehlgeschlagenen Verify JWT-Richtlinie und prüfen Sie, ob das in Schritt 1 identifizierte ungültige Element definiert ist. Wenn es definiert ist, ist dies die Ursache des Fehlers.

    In der folgenden Richtlinie können Sie beispielsweise sehen, dass das untergeordnete Element <Id> des Elements <SecretKey> definiert ist:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id/>
        </SecretKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    Da das Element <Id> im Element <SecretKey> der Verify JWT-Richtlinie definiert ist, erhalten Sie folgenden Fehler:

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    

Lösung

Achten Sie darauf, dass das Element <Id> nie im Element <SecretKey> einer Verify JWT-Richtlinie definiert ist.

Um den Fehler in der beispielhaften Verify JWT-Richtlinie zu korrigieren, entfernen Sie das untergeordnete Element <Id> aus dem Element <SecretKey>:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref='private.secretkey'/>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidEmptyElement

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

Error Saving Revision 
Invalid empty element : policy(policy_name) element(element_name).

Beispiel für Fehlermeldung

Error Saving Revision 3
Invalid empty element : policy(JWT-Verify-HS256) element(Source).

Beispiel-Screenshot

In der Apigee-Benutzeroberfläche wird ein Dialog mit einem Fehler angezeigt:

Fehlermeldung &quot;Ungültiges leeres Element&quot;

Ursache

Dieser Fehler tritt auf, wenn das <Source>-Element der Verify JWT-Richtlinie leer ist. Falls vorhanden, muss es mit einem Ablaufvariablennamen definiert werden.

Diagnose

  1. Ermitteln Sie den Namen der Verify JWT-Richtlinie und den leeren Elementnamen aus der Fehlermeldung. In der folgenden Fehlermeldung lautet der Name der Verify JWT-Richtlinie beispielsweise JWT-Verify-RS256 und der Elementname PublicKey/Value:

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    
  2. Untersuchen Sie die XML-Datei der fehlgeschlagenen Verify JWT-Richtlinie und prüfen Sie, ob das in Schritt 1 ermittelte Element leer ist. Wenn es leer ist, ist dies die Fehlerursache.

    In der folgenden Richtlinie können Sie beispielsweise sehen, dass das Element <Source> leer ist:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <Source></Source>
        <PublicKey>
            <Value ref="public.publickey"/>
        </PublicKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    Da das Element <Source> der Verify JWT-Richtlinie leer ist, wird folgende Fehlermeldung angezeigt:

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    

Lösung

Wenn das Element <Source> einer Verify JWT-Richtlinie vorhanden ist, müssen Sie hierfür eine Ablaufvariable angeben.

Um den Fehler in der obigen beispielhaften Verify JWT-Richtlinie zu korrigieren, verwenden Sie eine gültige Ablaufvariable im Element <Source>:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <Source>jwt-variable</Source>
    <PublicKey>
        <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidPublicKeyValue

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

Error Saving Revision revision_number
Invalid Public Key Value in Configuration : policy(policy_name) element(element_name).

Beispiel für Fehlermeldung

Error Saving Revision 2
Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).

Beispiel-Screenshot

In der Apigee-Benutzeroberfläche wird ein Dialog mit einem Fehler angezeigt:

Fehlermeldung &quot;Ungültiger öffentlicher Schlüsselwert in Konfiguration&quot;

Ursache

Dieser Fehler tritt auf, wenn der Wert, der im untergeordneten Element <JWKS> des <PublicKey>-Elements verwendet wird, nicht in einem gemäß RFC 7517 gültigen Format vorliegt.

Beispiel: Wenn Sie abc als Wert des untergeordneten Elements <JWKS> unter dem <PublicKey>-Element verwenden, führt dies zu diesem Fehler.

Diagnose

  1. Ermitteln Sie aus der Fehlermeldung den Namen der Verify JWT-Richtlinie und den Namen des Elements, das einen ungültigen Wert hat. In der folgenden Fehlermeldung lautet der Name der Verify JWT-Richtlinie beispielsweise JWT-Verify-RS256 und das Element PublicKey/JWKS:

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    
  2. Untersuchen Sie die XML-Datei der fehlgeschlagenen Verify JWT-Richtlinie und prüfen Sie, ob das in Schritt 1 ermittelte Element einen Wert in einem gültigen Format gemäß RFC 7517 enthält. Wenn der Wert des Elements nicht im gültigen Format angegeben ist, ist dies die Ursache des Fehlers.

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PublicKey>
            <JWKS>abc<JWKS>
        </PublicKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
    </VerifyJWT>
    

    Da der Wert im untergeordneten Element <JWKS> des <PublicKey>-Elements kein gültiges Format gemäß RFC 7517 vorweist, erhalten Sie eine Fehlermeldung:

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    

Lösung

Der im untergeordneten Element <JWKS> des Elements <PublicKey> angegebene Wert muss ein gültiger String oder eine Ablaufvariable in einem gültigen JWKS-Format (RFC 7517) sein.

Um den Fehler in der beispielhaften Verify JWT-Richtlinie zu korrigieren, ändern Sie den Wert von <JWKS> wie unten dargestellt:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PublicKey>
        <JWKS>eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiJiMDhmODZhZi0zNWRhLTQ4ZjItOGZhYi1jZWYzOTA0NjYwYmQifQ.-xN_h82PHVTCMA9vdoHrcZxH-x5mb11y1537t3rGzcM</JWKS>
        </PublicKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
    </VerifyJWT>

InvalidConfigurationForActionAndAlgorithm

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

Error Saving Revision <var>revision_number</var>
Invalid configuration element for this action and algorithm Family: policy(<var>policy_name</var>) element(<var>element_name</var>) action(<var>action_name</var>) family(<var>family_name</var>).

Beispiel für Fehlermeldung

Error Saving Revision
Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).

Beispiel-Screenshot

In der Apigee-Benutzeroberfläche wird ein Dialog mit einem Fehler angezeigt:

Fehlermeldung &quot;Ungültiges Konfigurationselement für diese Aktion und diesen Algorithmus&quot;

Ursache

Dieser Fehler tritt auf, wenn das Element <PublicKey> mit HS-Familienalgorithmen und das <SecretKey>-Element mit RSA-Familienalgorithmen verwendet wird. Der Fehler tritt auch auf, wenn eine dieser Bedingungen erfüllt ist.

Beispielsweise tritt dieser Fehler auf, wenn das Element <PublicKey> mit HS-Family-Algorithmen verwendet wird.

Diagnose

  1. Ermitteln Sie den Namen der Verify JWT-Richtlinie, den Elementnamen und den Familiennamen des Algorithmus aus der Fehlermeldung. In der folgenden Fehlermeldung lautet der Name der Verify JWT-Richtlinie beispielsweise JWT-Verify-HS256, der Elementname PublicKey und die Algorithmusfamilie RSA:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
    
  2. Prüfen Sie, ob die in der XML-Datei der fehlgeschlagenen Verify JWT-Richtlinie verwendete Element- und Algorithmusfamilienkombination mit der in Schritt 1 in der Fehlermeldung angegebenen Element- und Algorithmusfamilienkombination übereinstimmen. Folgende Richtlinie gibt beispielsweise das Element als PublicKey und die Algorithmusfamilie als HMAC an, was mit der Fehlermeldung übereinstimmt:

    <VerifyJWT name="JWT-Verify-HS256">
        <DisplayName>JWT Verify HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <Source>request.formparam.jwt</Source>
        <PublicKey>
            <Value ref="var-value"/>
        </PublicKey>
        <SecretKey>
            <Value ref="private.secretkey"/>
        </SecretKey>
            <ExpiresIn>1h</ExpiresIn>
            <Subject>monty-pythons-flying-circus</Subject>
            <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
            <Audience>fans</Audience>
        </VerifyJWT>
    
  3. Wenn der Wert des Elements <Algorithm> HS256 lautet, Sie aber <PublicKey> verwendet haben, ist dies die Ursache des Fehlers.

    In der obigen beispielhaften Verify JWT-Richtlinie wird das Element <PublicKey> verwendet, obwohl <Algorithm> auf einen Algorithmus der HS256-Familie festgelegt ist. Dies verursacht den Fehler:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
    

Lösung

Achten Sie darauf, dass das Element <PublicKey> nur mit Algorithmen der RSA-Familie verwendet wird. Das Element <SecretKey> wird nur mit Algorithmen der HS-Familie verwendet.

Um den Fehler in der beispielhaften Verify JWT-Richtlinie zu korrigieren, verwenden Sie <SecretKey> aus der VerifyJWT-Richtlinie, die den HS256-Algorithmus verwendet:

    <VerifyJWT name="JWT-Verify-HS256">
        <DisplayName>JWT Verify HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <Source>request.formparam.jwt</Source>
        <SecretKey>
        <Value ref="private.secretkey"/>
    </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
    </VerifyJWT>