Fehlerbehebung bei der Bereitstellung von GenerateJWT-Richtlinien

<ph type="x-smartling-placeholder"></ph> Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur Apigee X-Dokumentation.
Weitere Informationen

InvalidNameForAdditionalClaim

Fehlermeldung

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

Error Saving Revision 2
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-Generate-HS256) claim(iss).

Beispiel-Screenshot

In der Edge-Benutzeroberfläche wird ein Dialogfeld mit einem Fehler angezeigt:

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

Wenn Sie beispielsweise den Anforderungsnamen iss unter dem Element <AdditionalClaims> verwenden, führt dies zu diesem Fehler.

Diagnose

  1. Geben Sie den Namen der Generate JWT-Richtlinie und den Namen der Anforderung aus der Fehlermeldung an. In der folgenden Fehlermeldung lautet der Name der Generate JWT-Richtlinie beispielsweise JWT-Generate-HS256 und der Name der Anforderung iss:

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    
  2. Überprüfen Sie, ob der Anforderungsname, der unter dem Element <AdditionalClaims> in der fehlgeschlagenen XML-Datei "Generate JWT-Richtlinie" verwendet wird, mit dem in der Fehlermeldung (Schritt 1 oben) identifizierten Anforderungsnamen übereinstimmt. Die folgende Richtlinie gibt beispielsweise die Anforderung als iss an, was dem Inhalt der Fehlermeldung entspricht:

    <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="iss"/>
        </AdditionalClaims>
    </GenerateJWT>
    
  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 Generate JWT-Richtlinie wird der Name <Claim> als iss unter dem Element <AdditionalClaims> angegeben, was den Fehler verursacht:

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    

Lösung

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

Wenn Sie die oben gezeigte Generate JWT-Richtlinie korrigieren möchten, ändern Sie den Anforderungsnamen auf status:

<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='status' type='string'>Development</Claim>
    </AdditionalClaims>
</GenerateJWT>

InvalidTypeForAdditionalClaim

Fehlermeldung

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

Error Saving Revision 2
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-Generate-HS256) claim(claim) type(integer).

Beispiel-Screenshot

In der Edge-Benutzeroberfläche wird ein Dialogfeld mit einem Fehler angezeigt:

Ursache

Dieser Fehler tritt auf, wenn die Art der Anforderung, die im untergeordneten Element <Claim> des Elements <AdditionalClaims> der GenerateJWT-Richtlinie verwendet wird, keiner der folgenden Typen ist:

string (Standard), number, boolean, oder map

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

Diagnose

  1. Identifizieren Sie den Namen der Generate JWT-Richtlinie, den Anforderungsnamen und den Anforderungstyp aus der Fehlermeldung. In der folgenden Fehlermeldung lautet der Name der Generate JWT-Richtlinie beispielsweise JWT-Generate-HS256, der Name der Anforderung claim und der Anforderungstyp integer:

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. Überprüfen Sie, ob der Anforderungsname und -typ, die unter dem Element <AdditionalClaims> in der fehlgeschlagenen XML-Datei "Generate 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:

    <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='claim' ref='reqclaim' type='integer'/>
        </AdditionalClaims>
    </GenerateJWT>
    
  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.

    In der Beispielrichtlinie Generate JWT ist für den Typ <Claim> unter dem Element <AdditionalClaims> der Wert integer angegeben. Da integer kein unterstützter Typ ist, erhalten Sie folgende Fehlermeldung:

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    

Lösung

Achten Sie darauf, dass nur unterstützte Datentypen wie string, number, boolean oder map im untergeordneten Element <Claim> des <AdditionalClaims>-Elements verwendet werden.

Wenn Sie die oben gezeigte Generate JWT-Richtlinie korrigieren möchten, ändern Sie den Anforderungstyp auf boolean:

<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='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</GenerateJWT>

MissingNameForAdditionalClaim

Fehlermeldung

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

Error Saving Revision 2
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-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim

Beispiel-Screenshot

In der Edge-Benutzeroberfläche wird ein Dialogfeld mit einem Fehler angezeigt:

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 Generate JWT-Richtlinie aus der Fehlermeldung. In der folgenden Fehlermeldung lautet der Name der Generate JWT-Richtlinie zum Beispiel JWT-Generate-HS256:

    Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. Überprüfen Sie die fehlgeschlagene Generate JWT-Richtlinien-XML und prüfen Sie, ob der Name der Anforderung im untergeordneten Element <Claims> unter den Elementen <AdditionalClaims> oder <AdditionalHeaders> fehlt. Die folgende Generate JWT-Richtlinie gibt beispielsweise den Anforderungsnamen nicht unter dem Element <AdditionalClaims> an:

    <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 ref='reqclaim' type='boolean'/>
        </AdditionalClaims>
    </GenerateJWT>
    

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

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

Lösung

Vergewissern Sie sich, dass der Name der Anforderung immer im untergeordneten Element <Claim> des Elements <AdditionalClaims> oder <AdditionalHeaders> angegeben wird.

Zur Korrektur des oben gezeigten Beispiels für eine Generate JWT-Richtlinie müssen Sie den Namen der Anforderung so angeben:

<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='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</GenerateJWT>

InvalidNameForAdditionalHeader

Fehlermeldung

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

Error Saving Revision 2
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-Generate-HS256) header(alg).

Beispiel-Screenshot

In der Edge-Benutzeroberfläche wird ein Dialogfeld mit einem Fehler angezeigt:

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 den Namen der Generate JWT-Richtlinie und den Header-Namen anhand der Fehlermeldung. In der folgenden Fehlermeldung lautet der Name der Generate JWT-Richtlinie zum Beispiel JWT-Generate-HS256 und der Header-Name alg:

    Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
    
  2. Überprüfen Sie, ob der Header-Name, der im untergeordneten Element <Claim> unter dem Element <AdditionalHeaders> in der fehlgeschlagenen XML-Richtlinie "Generate JWT" verwendet wird, mit dem in der Fehlermeldung in Schritt 1 identifizierten Header-Namen übereinstimmt. Die folgende Richtlinie gibt beispielsweise den Header als alg an, was dem Inhalt der Fehlermeldung entspricht:

    <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/>
        <AdditionalHeaders>
            <Claim name="alg"/>
        </AdditionalHeaders>
    </GenerateJWT>
    
  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 Generate JWT-Richtlinie wird der Name <Claim> als alg unter dem Element <AdditionalClaims> angegeben, was den Fehler verursacht:

    Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
    

Lösung

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

Verwenden Sie den Namen x5c im untergeordneten Element <Claim> des Elements <AdditionalHeaders>, um die oben gezeigte Richtlinie "Generate JWT" zu korrigieren:

<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/>
    <AdditionalHeaders>
        <Claim name='x5c'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidTypeForAdditionalHeader

Fehlermeldung

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

Error Saving Revision 2
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-Generate-HS256) claim(claim1) type(integer).

Beispiel-Screenshot

In der Edge-Benutzeroberfläche wird ein Dialogfeld mit einem Fehler angezeigt:

Ursache

Der Fehler tritt auf, wenn der Anforderungstyp, der im untergeordneten Element <Claim> des Elements <AdditionalHeaders> der GenerateJWT-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. Identifizieren Sie den Namen der Generate JWT-Richtlinie, den Anforderungsnamen und den Anforderungstyp aus der Fehlermeldung. In der folgenden Fehlermeldung lautet der Name der Generate JWT-Richtlinie beispielsweise JWT-Generate-HS256, der Name der Anforderung claim, und der Anforderungstyp integer:

    Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. Überprüfen Sie, ob der Anforderungsname und -typ, die unter dem Element <AdditionalClaims> in der fehlgeschlagenen XML-Datei "Generate 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:

    <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/>
        <AdditionalHeaders>
            <Claim name='claim' ref='reqclaim' type='integer'/>
        </AdditionalHeaders>
    </GenerateJWT>
    
  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 Beispielrichtlinie Generate JWT 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-Generate-HS256) 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 <AdditionalHeaders>-Elements verwendet werden.

Wenn Sie die oben gezeigte Generate JWT-Richtlinie korrigieren möchten, ändern Sie den Anforderungstyp auf boolean:

<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/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidValueOfArrayAttribute

Fehlermeldung

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

Error Saving Revision 2
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-Generate-HS256) claim(claim).

Beispiel-Screenshot

In der Edge-Benutzeroberfläche wird ein Dialogfeld mit einem Fehler angezeigt:

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.

Der Fehler tritt beispielsweise auf, wenn Sie den Wert des Arrayattributs im untergeordneten Element <Claim> von <AdditionalClaims> oder <AdditionalHeaders> auf yes festlegen.

Diagnose

  1. Geben Sie den Namen der Generate JWT-Richtlinie und den Namen der Anforderung aus der Fehlermeldung an. In der folgenden Fehlermeldung lautet der Name der Generate JWT-Richtlinie beispielsweise JWT-Generate-HS256 und der Name der Anforderung claim:

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

    <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='claim' ref='reqclaim' type='string' array='yes'/>
        </AdditionalClaims>
    </GenerateJWT>
    
  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-Generate-HS256) claim(claim).
    

Lösung

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

Um die oben angezeigte Generate JWT-Richtlinie zu korrigieren, ändern Sie den Wert des Arrayattributs auf true:

<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/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidConfigurationForActionAndAlgorithm

Fehlermeldung

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

Error Saving Revision 2
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 2
Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).

Beispiel-Screenshot

In der Edge-Benutzeroberfläche wird ein Dialogfeld mit einem Fehler angezeigt:

Ursache

Dieser Fehler tritt auf, wenn das Element <PrivateKey> 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 <PrivateKey> mit HS-Family-Algorithmen verwendet wird.

Diagnose

  1. Identifizieren Sie den Namen der Generate JWT-Richtlinie, den Elementnamen und den Namen der Algorithmusfamilie aus der Fehlermeldung. Beispiel: In der folgenden Fehlermeldung lautet der Name der Generate JWT-Richtlinie JWT-Generate-HS256, der Name des Elements PrivateKey und die Algorithmusfamilie HMAC:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
    
  2. Prüfen Sie, ob die in der XML-Datei der fehlgeschlagenen Generate 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 PrivateKey und die Algorithmusfamilie als HMAC an, was mit der Fehlermeldung übereinstimmt:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PrivateKey>
            <Password ref="private.privatekey-password"/>
    
        </PrivateKey>
            <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=tuu
        =/>
            </AdditionalClaims>
        </GenerateJWT>
    
  3. Wenn der Wert des Elements <Algorithm> HS256 lautet, Sie aber <PrivateKey> verwendet haben, ist dies die Ursache des Fehlers.

    Im oben gezeigten Beispiel der Generate JWT-Richtlinie wird <PrivateKey> verwendet, obwohl <PrivateKey> auf einen Familienalgorithmus (HS256) festgelegt ist, was den Fehler verursacht:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
    

Lösung

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

Verwenden Sie zum Korrigieren der oben gezeigten Generate JWT-Richtlinie das <SecretKey> aus der GenerateJWT-Richtlinie, die den HS256-Algorithmus verwendet:

<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/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidValueForElement

Fehlermeldung

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

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

Beispiel für Fehlermeldung

Error Saving Revision 2
Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).

Beispiel-Screenshot

In der Edge-Benutzeroberfläche wird ein Dialogfeld mit einem Fehler angezeigt:

Ursache

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

HS256, HS384, HS512, RS256, RS384 oder 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 Generate JWT-Richtlinie und den Elementnamen aus der Fehlermeldung. In der folgenden Fehlermeldung lautet der Name der Generate JWT-Richtlinie JWT-Generate-HS256 und der Elementname ist Algorithm..

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

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

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS128</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>
    </GenerateJWT>
    
  3. Prüfen Sie den im Element <Algorithm> angegebenen Wert. Ist dies nicht einer der Werte

    HS256, HS384, HS512, RS256, RS384 oder RS512,

    Dann ist das die Ursache des Fehlers.

    In der obigen beispielhaften Generate 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-Generate-HS256) 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

Zur Korrektur der oben gezeigten beispielhaften Generate JWT-Richtlinie, die das Element <SecretKey> verwendet, ändern Sie den Wert von <Algorithm> in HS25. Hinweis: Bei Verwendung des Elements <SecretKey> können Sie nur Algorithmen der HS-Familie verwenden.

<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='status' type='string'>Development</Claim>
    </AdditionalClaims>
</GenerateJWT>

MissingConfigurationElement

Fehlermeldung

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

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

Beispiel für Fehlermeldung

Error Saving Revision 2
Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).

Beispiel-Screenshot

In der Edge-Benutzeroberfläche wird ein Dialogfeld mit einem Fehler angezeigt:

Ursache

Dieser Fehler tritt auf, wenn das Element <PrivateKey> nicht mit RSA-Familienalgorithmen in der Generate JWT-Richtlinie verwendet wird. Ebenso kann der Fehler auftreten, wenn das Element <SecretKey> nicht mit HS-Familienalgorithmen in der Generate JWT-Richtlinie verwendet wird.

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

Diagnose

  1. Identifizieren Sie in der Fehlermeldung den Namen der Generate JWT-Richtlinie und den fehlenden Elementnamen. In der folgenden Fehlermeldung lautet der Name der Generate JWT-Richtlinie JWT-Generate-HS256 und der fehlende Elementname SecretKey.

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

    In folgender Richtlinie fehlt zum Beispiel SecretKey und der verwendete Algorithm ist HS256:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</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>
    </GenerateJWT>
    

    In der Beispiel-Generate JWT-Richtlinie werden Algorithmen der HS-Familie verwendet, aber das obligatorische Element SecretKey fehlt, was den Fehler verursacht:

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    

Lösung

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

Um das oben dargestellte Beispiel einer Generate JWT-Richtlinie, die den Algorithmus HS256 verwendet, zu korrigieren, fügen Sie der Generate JWT-Richtlinie das Element <SecretKey> hinzu:

<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/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidKeyConfiguration

Fehlermeldung

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

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

Beispiel für Fehlermeldung

Error Saving Revision 3
Invalid Key configuration : policy(JWT-Generate-HS256).

Beispiel-Screenshot

In der Edge-Benutzeroberfläche wird ein Dialogfeld mit einem Fehler angezeigt:

Ursache

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

Diagnose

  1. Ermitteln Sie den Namen der Generate JWT-Richtlinie aus der Fehlermeldung. In der folgenden Fehlermeldung lautet der Name der Generate JWT-Richtlinie zum Beispiel JWT-Generate-HS256:

    Invalid Key configuration : policy(JWT-Generate-HS256).
    
  2. Prüfen Sie die fehlgeschlagene Generate JWT-Richtlinien-XML-Datei und stellen Sie sicher, dass das untergeordnete Element <Value> nicht in den Elementen <PrivateKey> oder <SecretKey> definiert ist. Ist <Value> nicht definiert, ist dies die Fehlerursache.

    Zum Beispiel ist in folgender Richtlinie das untergeordnete Element <Value> nicht im Element <SecretKey> definiert:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
        </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>
    </GenerateJWT>
    

    Da das untergeordnete Element <Value> nicht im <SecretKey>-Element der Generate JWT-Richtlinie definiert ist, erhalten Sie diesen Fehler:

    Invalid Key configuration : policy(JWT-Generate-HS256).
    

Lösung

Achten Sie darauf, dass das untergeordnete Element <Value> immer in den Elementen <PrivateKey> oder <SecretKey> der Generate JWT-Richtlinie definiert ist.

Um das oben dargestellte Beispiel einer Generate JWT-Richtlinie zu korrigieren, definieren Sie das untergeordnete Element <Value> unter dem Element <SecretKey> wie unten dargestellt:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

EmptyElementForKeyConfiguration

Fehlermeldung

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

Error Saving Revision 2
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-Generate-HS256) element(SecretKey/Value).

Beispiel-Screenshot

In der Edge-Benutzeroberfläche wird ein Dialogfeld mit einem Fehler angezeigt:

Ursache

Dieser Fehler tritt auf, wenn das ref-Attribut im untergeordneten Element <Value> der <PrivateKey>- oder <SecretKey>-Elemente nicht angegeben oder leer ist.

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

Diagnose

  1. Ermitteln Sie den Namen der Generate JWT-Richtlinie und den Namen der leeren Elemente aus der Fehlermeldung. In der folgenden Fehlermeldung lautet der Name der Generate JWT-Richtlinie JWT-Generate-HS256 und der leere Elementname ist SecretKey/Value.

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Untersuchen Sie die XML-Datei der fehlgeschlagenen Generate JWT-Richtlinie und stellen Sie sicher, dass das in Schritt 1 identifizierte 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 <SecretKey> leer ist:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value/>
            <Id>1918290</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>
    </GenerateJWT>
    

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

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

Lösung

Achten Sie darauf, dass das ref-Attribut im untergeordneten Element <Value> der <PrivateKey>- oder <SecretKey>-Elemente immer angegeben ist und das Präfix „private.“ hat.

Verwenden Sie zum Korrigieren des Beispiels der Generate JWT-Richtlinie oben die Ablaufvariable private.privatekey des untergeordneten Elements <Value> des Elements <SecretKey>.

<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/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidVariableNameForSecret

Fehlermeldung

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

Error Saving Revision 2
Invalid variable name for secret : policy(policy_name) element(element_name).

Beispiel für Fehlermeldung

Error Saving Revision 2
Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).

Beispiel-Screenshot

In der Edge-Benutzeroberfläche wird ein Dialogfeld mit einem Fehler angezeigt:

Ursache

Dieser Fehler tritt auf, wenn der Ablaufvariablenname, der im Attribut "ref" im untergeordneten Element <Value> der <PrivateKey> oder <SecretKey>-Elemente angegeben ist, nicht das private Präfix (private. ) enthält.

Beispiel:

Wenn der Name der Ablaufvariablen als mykey im Ref-Attribut des untergeordneten Elements <Value> des Elements <PrivateKey> angegeben ist, tritt dieser Fehler auf.

Diagnose

  1. Ermitteln Sie den Namen der Generate JWT-Richtlinie und den Namen des Elements mit einem ungültigen Variablennamen aus der Fehlermeldung. In der folgenden Fehlermeldung lautet der Name der Generate JWT-Richtlinie JWT-Generate-HS256 und der Elementname ist SecretKey/Value.

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Untersuchen Sie die XML-Datei der fehlgeschlagenen Generate JWT-Richtlinie und prüfen Sie den in Schritt 1 ermittelten, im Element verwendeten Variablennamen. Hat der Variablenname nicht das Präfix private., ist dies die Ursache des Fehlers.

    Folgende Richtlinie zeigt beispielsweise, dass das untergeordnete Element <Value> des Elements <SecretKey> den ungültigen Variablennamen mykey enthält:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value ref="mykey"/>
            <Id>1918290</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>
    </GenerateJWT>
    

    Da der angegebene Variablenname im untergeordneten Element <Value> des <SecretKey>-Elements der Generate JWT-Richtlinie nicht das Präfix private. enthält, wird folgende Fehlermeldung angezeigt:

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

Lösung

Achten Sie darauf, dass das ref-Attribut im untergeordneten Element <Value> der <PrivateKey>- oder <SecretKey>-Elemente immer angegeben ist und das Präfix private. hat.

Verwenden Sie zum Korrigieren des Beispiels der Generate JWT-Richtlinie oben die Ablaufvariable private.privatekey des untergeordneten Elements <Value> des Elements <SecretKey>:

<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/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidSecretInConfig

Fehlermeldung

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

Error Saving Revision 2
Specifying a secret in the configuration is invalid : policy(policy_name) element(element_name).

Beispiel für Fehlermeldung

Error Saving Revision 2
Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).

Beispiel-Screenshot

In der Edge-Benutzeroberfläche wird ein Dialogfeld mit einem Fehler angezeigt:

Ursache

Dieser Fehler tritt auf, wenn der Wert (Secret) ausdrücklich im folgenden Bereich angegeben wird:

  • Die untergeordneten Elemente <Value> oder <Password> des <PrivateKey>-Elements oder
  • Das untergeordnete Element <Value> des <SecretKey>-Elements

in der Generate JWT-Richtlinie.

Wenn das Secret beispielsweise explizit im untergeordneten Element <Value> des <SecretKey>-Elements als abc angegeben ist, tritt dieser Fehler auf.

Diagnose

  1. Geben Sie den Namen der Generate JWT-Richtlinie und den Namen des Elements an, in dem das Secret explizit aus der Fehlermeldung angegeben ist. In der folgenden Fehlermeldung lautet der Name der Generate JWT-Richtlinie JWT-Generate-HS256 und der Elementname ist SecretKey/Value.

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Untersuchen Sie die XML-Datei der fehlgeschlagenen Generate JWT-Richtlinie und prüfen Sie, ob das Secret explizit im in Schritt 1 angegebenen Element angegeben ist. Wenn es explizit angegeben wird, ist das die Fehlerursache.

    Folgende Richtlinie zeigt beispielsweise, dass das Secret explizit im untergeordneten Element <Value> des <SecretKey>-Elements angegeben wurde:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value>abc</Value>
            <Id>1918290</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>
    </GenerateJWT>
    

    Da das Secret im untergeordneten Element <Value> des <SecretKey>-Elements der Generate JWT-Richtlinie explizit angegeben ist, wird folgende Fehlermeldung angezeigt:

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

Lösung

Der Wert muss im untergeordneten Element <Value> der <PrivateKey>- oder <SecretKey>-Elemente immer als Ablaufvariable angegeben werden.

Verwenden Sie die Ablaufvariable private.secretkey im Ref-Attribut des untergeordneten Elements <Value> von <SecretKey>, um die oben gezeigte Generate JWT-Richtlinie zu korrigieren:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <ExpiresIn>1h</ExpiresIn>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <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>
</GenerateJWT>

InvalidTimeFormat

Fehlermeldung

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

Error Saving Revision 2
Invalid Time format: policy(policy_name) element(element_name).

Beispiel für Fehlermeldung

Error Saving Revision 3
Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).

Beispiel-Screenshot

In der Edge-Benutzeroberfläche wird ein Dialogfeld mit einem Fehler angezeigt:

Ursache

Dieser Fehler tritt auf, wenn der im Element <NotBefore> angegebene Wert nicht in einem der unterstützten Formate vorliegt:

sortable, RFC 1123, RFC 850, ANCI-C

Ist der in <NotBefore> angegebene Wert beispielsweise 20-JUN-1990 08:03, was kein unterstütztes Format ist, tritt dieser Fehler auf.

<NotBefore>20-JUN-1990 08:03:00:21-07:00</NotBefore>

Diagnose

  1. Ermitteln Sie aus der Fehlermeldung den Namen der Generate JWT-Richtlinie und den Namen des Elements, das ein ungültiges Zeitformat hat. In der folgenden Fehlermeldung lautet der Name der Generate JWT-Richtlinie JWT-Generate-HS256 und der Elementname ist NotBefore.

    Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).
    
  2. Untersuchen Sie die XML-Datei der fehlgeschlagenen Generate JWT-Richtlinie und prüfen Sie das im in Schritt 1 ermittelten Element verwendete Zeitformat. Wenn das Element keines der unterstützten Formate verwendet:

    sortable, RFC 1123, RFC 850, ANCI-C

    Dann ist das die Ursache des Fehlers.

    Folgende Richtlinie zeigt beispielsweise, dass das untergeordnete Element <NotBefore> ein nicht unterstütztes Zeitformat nutzt:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <NotBefore>20-JUN-1990 08:03:00:21-07:00</NotBefore>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</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>
    </GenerateJWT>
    

    Da das Element <NotBefore> der Generate JWT-Richtlinie keine der unterstützten Zeitformate verwendet, wird der Fehler angezeigt:

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

Lösung

Achten Sie darauf, dass der im Element <NotBefore> angegebene Wert eines der unterstützten Formate verwendet:

sortable, RFC 1123, RFC 850, ANCI-C

Ändern Sie zum Korrigieren des Beispiels einer Generate JWT-Richtlinie das Datum im Element <NotBefore> in das Format sortable (siehe unten):

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <ExpiresIn>1h</ExpiresIn>
    <NotBefore>2018-08-14T11:00:21-07:00</NotBefore>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <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>
</GenerateJWT>