Rozwiązywanie problemów z wdrażaniem zasad JWT

Wyświetlasz dokumentację Apigee Edge.
Wyświetl dokumentację Apigee X.

Nieprawidłowe roszczenie dotyczące dodatkowej nazwy

Komunikat o błędzie

Nie udało się wdrożyć serwera proxy interfejsu API przy użyciu interfejsu Edge lub API zarządzania urządzeniami brzegowymi z powodu tego komunikatu o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu

W interfejsie Edge zobaczysz okno dialogowe z błędem:

Przyczyna

Ten błąd występuje, jeśli nazwa roszczenia użytego w elemencie podrzędnym <Claim> elementu <AdditionalClaims> jest jedną z tych zarejestrowanych nazw:

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

Zarejestrowane roszczenia są określone w RFC7519.

Ten błąd może się pojawić na przykład w wyniku użycia nazwy roszczenia iss w elemencie <AdditionalClaims>.

diagnostyki,

  1. Zidentyfikuj nazwę zasady weryfikacji tokena JWT i nazwę roszczenia z komunikatu o błędzie. Na przykład w tym komunikacie o błędzie widnieje nazwa zasady weryfikacji tokena JWT: JWT-Verify-RS256, a nazwa roszczenia to iss:

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    
  2. Sprawdź, czy nazwa roszczenia użyta w elemencie <AdditionalClaims> w nieprawidłowym pliku XML weryfikacji zasady JWT jest zgodna z nazwą określoną w komunikacie o błędzie w kroku 1. Na przykład poniższe zasady określają roszczenie jako iss, które odpowiada zawartości komunikatu o błędzie:

    <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. Jeśli nazwa roszczenia użyta w elemencie podrzędnym <Claim> elementu <AdditionalClaims> jest jedną z tych zarejestrowanych nazw:

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

    to jest przyczyna błędu.

    W powyższym przykładzie dotyczącym weryfikacji tokena JWT nazwa <Claim> jest podana w elemencie <AdditionalClaims> jako iss, co powoduje błąd:

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

Rozwiązanie

Nie używaj żadnych zarejestrowanych nazw „kid”, „iss”, „sub”, „aud”, „iat”, „exp”, „nbf” ani „jti” w elemencie podrzędnym <Claim> elementu <AdditionalClaims>.

Aby rozwiązać problem z przykładową zasadą weryfikacji tokena JWT, zmień nazwę roszczenia na status:

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

Nieprawidłowy typFordodatkowe

Komunikat o błędzie

Nie udało się wdrożyć serwera proxy interfejsu API przy użyciu interfejsu Edge lub API zarządzania urządzeniami brzegowymi z powodu tego komunikatu o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu

W interfejsie Edge zobaczysz okno dialogowe z błędem:

Przyczyna

Typ roszczenia używany w elemencie podrzędnym <Claim> w elemencie <AdditionalClaims> zasady WeryfikacjaJWT nie jest jednym z tych typów:

string (wartość domyślna), number, boolean lub map

Błąd wystąpi na przykład, gdy użyjesz w elemencie <AdditionalClaims> typu roszczenia integer.

diagnostyki,

  1. Określ nazwę zasady weryfikacji tokena JWT, nazwę roszczenia i typ, którego dotyczy komunikat o błędzie. Na przykład w poniższym komunikacie o nazwie zasady weryfikacji tokena JWT nazywa się JWT-Verify-RS256, nazwa roszczenia to claim, a typ to integer:.

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Sprawdź, czy nazwa i typ roszczenia, które zostały użyte w elemencie <AdditionalClaims> w niezweryfikowanym kodzie XML weryfikacji JWT są zgodne z nazwą i typem roszczenia wskazanym w komunikacie o błędzie w kroku 1. Na przykład poniższa zasada określa twierdzenie jako claim, a typ to integer, co odpowiada zawartości komunikatu o błędzie:

    <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. Jeśli typ roszczenia używany w elemencie podrzędnym <Claim> elementu <AdditionalClaims> nie jest jednym z tych typów:

    string (wartość domyślna), number, boolean lub map

    to jest przyczyna błędu.

    W podanym wyżej przykładzie dotyczącym weryfikacji tokena JWT typ <Claim> jest określony jako element integer w elemencie <AdditionalClaims>. Typ integer nie jest obsługiwany, więc pojawia się błąd:

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

Rozwiązanie

Upewnij się, że w elemencie podrzędnym <Claim> elementu <AdditionalClaims> używane są tylko obsługiwane typy danych string (domyślnie), number, boolean lub map.

Aby poprawić przykładową zasadę weryfikacji tokena JWT, zmień typ roszczenia na boolean:

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

BrakująceDoWnioskuDoDodatkowego

Komunikat o błędzie

Nie udało się wdrożyć serwera proxy interfejsu API przy użyciu interfejsu Edge lub API zarządzania urządzeniami brzegowymi z powodu tego komunikatu o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu

W interfejsie Edge zobaczysz okno dialogowe z błędem:

Przyczyna

Ten błąd występuje, jeśli nazwa roszczenia nie jest określona w elemencie podrzędnym <Claim> elementu <AdditionalClaims> lub <AdditionalHeaders>.

diagnostyki,

  1. Znajdź nazwę zasady weryfikacji tokena JWT w komunikacie o błędzie. Na przykład w tym komunikacie o błędzie widnieje nazwa zasady weryfikacji tokena JWT: JWT-Verify-RS256:

    Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. Sprawdź błąd weryfikacji kodu JWT w formacie XML i upewnij się, że w elemencie podrzędnym <Claims> w elemencie <AdditionalClaims> lub <AdditionalHeaders> brakuje nazwy roszczenia. Na przykład poniższe zasady weryfikacji tokena JWT nie określają nazwy roszczenia w elemencie <AdditionalClaims>:

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

    Ponieważ nazwa <Claim> nie jest określona w elemencie <AdditionalClaims>, pojawia się błąd:

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

Rozwiązanie

Upewnij się, że nazwa roszczenia jest zawsze określona w elemencie podrzędnym <Claim> elementu <AdditionalClaims> lub <AdditionalHeaders>.

Aby poprawić przykładowe zasady weryfikacji tokena JWT, podaj nazwę roszczenia w następujący sposób:

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

Nieprawidłowy_nagłówek

Komunikat o błędzie

Nie udało się wdrożyć serwera proxy interfejsu API przy użyciu interfejsu Edge lub API zarządzania urządzeniami brzegowymi z powodu tego komunikatu o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu

W interfejsie Edge zobaczysz okno dialogowe z błędem:

Przyczyna

Ten błąd występuje, jeśli nazwa roszczenia użytego w elemencie podrzędnym <Claim> elementu <AdditionalHeaders> jest jednym z tych standardowych nagłówków JWT:

alg lub typ

Na przykład użycie nazwy roszczenia alg w elemencie <AdditionalHeaders> spowoduje błąd.

diagnostyki,

  1. Zidentyfikuj nazwę zasady weryfikacji JWT i nazwę nagłówka w komunikacie o błędzie. Na przykład w tym komunikacie o błędzie sprawdź, czy nazwa zasady weryfikacji tokena JWT to JWT-Verify-RS256, a nazwa nagłówka to alg:

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    
  2. Sprawdź, czy nazwa nagłówka użyta w elemencie podrzędnym <Claim> w elemencie <AdditionalHeaders> w nieudanym procesie weryfikacji kodu JWT w pliku XML jest zgodna z nagłówkiem określonym w komunikacie o błędzie w kroku 1. Na przykład ta zasada określa nagłówek jako alg, który pasuje do zawartości komunikatu o błędzie:

    <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. Jeśli nazwa nagłówka użyta w elemencie podrzędnym <Claim> elementu <AdditionalClaims> jest jednym z tych standardowych nagłówków JWT:

    alg lub typ

    to jest przyczyna błędu.

    W powyższym przykładzie dotyczącym weryfikacji tokena JWT nazwa <Claim> jest podana w elemencie <AdditionalClaims> jako alg, co powoduje błąd:

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

Rozwiązanie

Nie używaj standardowych nagłówków JWT alg ani typ w elemencie podrzędnym <Claim> elementu <AdditionalHeaders>.

Aby poprawić przykładową zasadę weryfikacji tokena JWT, użyj nazwy x5c w elemencie podrzędnym <Claim> elementu <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>

Nieprawidłowy typdodatkowego nagłówka

Komunikat o błędzie

Nie udało się wdrożyć serwera proxy interfejsu API przy użyciu interfejsu Edge lub API zarządzania urządzeniami brzegowymi z powodu tego komunikatu o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu

W interfejsie Edge zobaczysz okno dialogowe z błędem:

Przyczyna

Ten błąd występuje, jeśli typ roszczenia używanego w elemencie podrzędnym <Claim> w elemencie <AdditionalHeaders> zasady Zweryfikuj token JWT nie jest jednym z tych typów:

string (wartość domyślna), number, boolean lub map

Błąd spowoduje na przykład użycie typu roszczenia integer w elemencie <AdditionalHeaders>.

diagnostyki,

  1. Określ nazwę zasady weryfikacji tokena JWT, nazwę roszczenia i typ wiadomości z komunikatu o błędzie. Na przykład w tym komunikacie o błędzie Nazwa weryfikacji tokena JWT to JWT-Verify-RS256, nazwa roszczenia to claim, a typ to integer:

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. Sprawdź, czy nazwa i typ roszczenia, które zostały użyte w elemencie <AdditionalClaims> w niezweryfikowanym kodzie XML weryfikacji JWT są zgodne z nazwą i typem roszczenia wskazanym w komunikacie o błędzie w kroku 1. Na przykład poniższa zasada określa roszczenie jako claim, a typ roszczenia jako integer,, który odpowiada zawartości komunikatu o błędzie:

    <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. Jeśli typ roszczenia używany w elemencie podrzędnym <Claim> elementu <AdditionalHeaders> nie jest jednym z tych typów:

    string (wartość domyślna), number, boolean lub map

    to jest przyczyna błędu.

    W podanym wyżej przykładzie dotyczącym weryfikacji tokena JWT typ <Claim> w elemencie <AdditionalHeaders> jest określony jako integer. Typ integer nie jest obsługiwany, więc pojawia się błąd:

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

Rozwiązanie

Upewnij się, że w elemencie podrzędnym <Claim> elementu <AdditionalHeaders> używane są tylko obsługiwane typy danych string, number, boolean lub map.

Aby poprawić przykładową zasadę weryfikacji tokena JWT, zmień typ roszczenia na boolean:

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

Nieprawidłowa wartość atrybutu tablicy

Komunikat o błędzie

Nie udało się wdrożyć serwera proxy interfejsu API przy użyciu interfejsu Edge lub API zarządzania urządzeniami brzegowymi z powodu tego komunikatu o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu

W interfejsie Edge zobaczysz okno dialogowe z błędem:

Przyczyna

Ten błąd występuje, jeśli wartość atrybutu tablicowego w elemencie podrzędnym <Claim> elementu <AdditionalClaims> lub <AdditionalHeaders> nie jest ustawiona na true lub false.

Na przykład ustawienie atrybutu tablica na wartość yes w elemencie podrzędnym <Claim> elementu <AdditionalClaims> lub <AdditionalHeaders> powoduje błąd.

diagnostyki,

  1. Zidentyfikuj nazwę zasady weryfikacji tokena JWT i nazwę roszczenia z komunikatu o błędzie. Na przykład w poniższym komunikacie o błędzie weryfikacji weryfikacji tokena JWT znajduje się JWT-Verify-RS256, a nazwa roszczenia to claim:

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    
  2. Sprawdź, czy nazwa roszczenia użyta w elemencie podrzędnym <Claim> w elemencie <AdditionalHeaders> w niezweryfikowanym kodzie XML weryfikacji JWT jest zgodna z nazwą roszczenia podaną w komunikacie o błędzie w kroku 1. Na przykład ta zasada określa nazwę roszczenia jako claim, która odpowiada treści komunikatu o błędzie:

    <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. Jeśli wartość atrybutu array w elemencie podrzędnym <Claim> elementu <AdditionalClaims> nie jest ustawiona na true lub false, jest to przyczyna błędu.

    Ponieważ atrybut array w elemencie podrzędnym <Claim> elementu <AdditionalClaims> jest ustawiony na yes w powyższym przykładzie, występuje błąd:

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

Rozwiązanie

Upewnij się, że wartość atrybutu tablica w elemencie podrzędnym <Claim> w elementach <AdditionalClaims> lub <AdditionalHeaders> jest ustawiona na true lub false.

Aby poprawić przykład zasady weryfikacji tokena JWT przedstawionej powyżej, zmień wartość atrybutu tablicy na 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>

Nieprawidłowa wartość

Komunikat o błędzie

Nie udało się wdrożyć serwera proxy interfejsu API przy użyciu interfejsu Edge lub API zarządzania urządzeniami brzegowymi z powodu tego komunikatu o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu

W interfejsie Edge zobaczysz okno dialogowe z błędem:

Przyczyna

Ten błąd występuje, jeśli wartość określona w elemencie <Algorithm> nie jest jedną z tych wartości:

HS256, HS384, HS512, RS256, RS384, RS512

Na przykład określenie wartości algorytmu w elemencie <Algorithm> jako RS128 powoduje ten błąd.

diagnostyki,

  1. Zidentyfikuj nazwę zasady weryfikacji tokena JWT i nazwę elementu z komunikatu o błędzie. Na przykład w następującym komunikacie o błędzie nazwa Zweryfikuj zasadę JWT to JWT-Verify-RS256, a nazwa elementu to Algorithm:

    Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
    
  2. Sprawdź niezweryfikowany kod XML zasady JWT i sprawdź wartość podaną w elemencie <Algorithm>.

    Oto przykładowa zasada weryfikacji tokena JWT:

    <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. Sprawdź wartość podaną w elemencie <Algorithm>. Jeśli nie jest to jedna z tych wartości:

    HS256, HS384, HS512, RS256, RS384, RS512

    to jest przyczyna błędu.

    W powyższym przykładzie dotyczącym weryfikacji tokena JWT nazwa <Algorithm> ma nazwę HS128. Ten algorytm nie jest obsługiwany, więc pojawia się błąd:

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

Rozwiązanie

Upewnij się, że wartość podana w elemencie <Algorithm> jest jedną z obsługiwanych wartości:

HS256, HS384, HS512, RS256, RS384, RS512

Aby skorygować widoczne wyżej zasady weryfikacji tokena JWT z elementem <SecretKey>, zmień wartość <Algorithm> na HS25. Pamiętaj, że gdy używasz elementu <SecretKey>, możesz używać tylko algorytmów rodzinnych HS.

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

Brak elementu konfiguracji

Komunikat o błędzie

Nie udało się wdrożyć serwera proxy interfejsu API przy użyciu interfejsu Edge lub API zarządzania urządzeniami brzegowymi z powodu tego komunikatu o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu

W interfejsie Edge zobaczysz okno dialogowe z błędem:

Przyczyna

Ten błąd występuje, gdy element <PublicKey> nie jest używany z algorytmami RSA RSA w zasadzie weryfikacji tokena JWT. Błąd może też wystąpić, gdy element <SecretKey> nie jest używany z algorytmami HS Family w zasadach weryfikacji tokena JWT.

Ten błąd powoduje na przykład nieużywanie elementu <PublicKey> z algorytmami RSA.

diagnostyki,

  1. Zidentyfikuj nazwę zasady weryfikacji tokena JWT i brakującej nazwy elementu na podstawie komunikatu o błędzie. Na przykład w tym komunikacie o błędzie widnieje nazwa zasady weryfikacji tokena JWT: JWT-Verify-RS256, a brakująca nazwa elementu to PublicKey:

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    
  2. Sprawdź błąd weryfikacji kodu XML tokena JWT i upewnij się, że w elemencie komunikatu o błędzie brakuje elementu. Jeśli go nie ma, to jest przyczyną problemu.

    Na przykład zgodnie z tą zasadą brakuje atrybutu PublicKey, a używany Algorithm to RS256:

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

    Przykładowe zasady weryfikacji JWT korzystają z algorytmów HS Family, ale brakuje w nich wymaganego elementu PublicKey, w wyniku czego występuje błąd:

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

Rozwiązanie

Dopilnuj, aby wymagany element <PublicKey> był używany z algorytmami RSA RSA, a wymagany algorytm <SecretKey> – z algorytmami HS Family.

Aby poprawić przykładowe zasady weryfikacji tokena JWT, które korzystają z algorytmu RS256, dodaj element <PublicKey> do zasady Weryfikacja JWT:

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

Nieprawidłowa konfiguracja klucza

Komunikat o błędzie

Nie udało się wdrożyć serwera proxy interfejsu API przy użyciu interfejsu Edge lub API zarządzania urządzeniami brzegowymi z powodu tego komunikatu o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu

W interfejsie Edge zobaczysz okno dialogowe z błędem:

Przyczyna

Ten błąd występuje, jeśli element podrzędny <Value> lub wymagany element podrzędny <JWKS> nie jest zdefiniowany w elementach <PublicKey> lub <SecretKey> w zasadach weryfikacji tokena JWT.

diagnostyki,

  1. Znajdź nazwę zasady weryfikacji tokena JWT w komunikacie o błędzie. Na przykład w tym komunikacie o błędzie widnieje nazwa zasady weryfikacji tokena JWT: JWT-Verify-RS256:

    Invalid Key configuration : policy(JWT-Verify-RS256).
    
    
  2. Sprawdź nieudaną weryfikację kodu XML zasad JWT i upewnij się, że element podrzędny <Value> lub element podrzędny <JWKS> nie jest zdefiniowany w elementach <PublicKey> i <SecretKey>. Jeśli element podrzędny nie jest zdefiniowany, to jest przyczyną błędu.

    Na przykład ta zasada pokazuje, że element podrzędny <Value> lub <JWKS> nie jest zdefiniowany w elemencie <PublicKey>:

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

    Element podrzędny <Value> lub <JWKS> nie jest zdefiniowany w <PublicKey>elemencie zasad weryfikacji tokena JWT, dlatego pojawia się błąd:

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

Rozwiązanie

Upewnij się, że element podrzędny <Value> lub <JWKS> jest zawsze zdefiniowany w elemencie <PublicKey> w zasadach weryfikacji tokena JWT.

Aby poprawić przykładowe zasady weryfikacji tokena JWT, zdefiniuj element podrzędny <Value> lub <JWKS> w elemencie <PublicKey>, jak pokazano poniżej:

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

Element BlankElementForKeyConfiguration

Komunikat o błędzie

Nie udało się wdrożyć serwera proxy interfejsu API przy użyciu interfejsu Edge lub API zarządzania urządzeniami brzegowymi z powodu tego komunikatu o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu

W interfejsie Edge zobaczysz okno dialogowe z błędem:

Przyczyna

Ten błąd występuje, jeśli atrybut ref w elemencie podrzędnym <Value> lub <JWKS> elementu <PublicKey> nie został określony lub jest pusty.

Jeśli na przykład element podrzędny elementu <Value> elementu <PublicKey> jest pusty, wystąpi błąd.

diagnostyki,

  1. Zidentyfikuj nazwę zasady weryfikacji JWT i nazwę elementu puste w komunikacie o błędzie. Na przykład w następującym komunikacie o błędzie nazwa Zweryfikuj zasadę JWT to JWT-Verify-RS256, a nazwa elementu to PublicKey/Value:

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
  2. Sprawdź niezweryfikowany kod XML zasady JWT i upewnij się, że element określony w kroku 1 jest pusty. Jeśli jest ono puste, to jest jego przyczyną.

    Na przykład ta zasada pokazuje, że element podrzędny <Value> elementu <PublicKey> jest pusty:

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

    Element podrzędny <Value> elementu <PublicKey> w zasadzie Weryfikacja tokena JWT jest pusty, dlatego pojawia się błąd:

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

Rozwiązanie

Upewnij się, że atrybut ref w elemencie podrzędnym <Value> lub <JWKS> elementu <PublicKey> jest zawsze określony.

Aby poprawić przykładową zasadę weryfikacji tokena JWT, użyj zmiennej przepływu public.publickey w elemencie podrzędnym <Value> elementu <PublicKey>:

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

Nieprawidłowa konfiguracja

Komunikat o błędzie

Nie udało się wdrożyć serwera proxy interfejsu API przy użyciu interfejsu Edge lub API zarządzania urządzeniami brzegowymi z powodu tego komunikatu o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu

W interfejsie Edge zobaczysz okno dialogowe z błędem:

Przyczyna

Ten błąd występuje, jeśli element <Id> jest zdefiniowany w elemencie <SecretKey> w zasadzie WeryfikacjaJWT.

Ten błąd występuje np. wtedy, gdy element <Id> jest zdefiniowany w elemencie <SecretKey>.

diagnostyki,

  1. Znajdź nazwę zasady weryfikacji tokena JWT i nieprawidłową nazwę elementu w komunikacie o błędzie. Na przykład w tym komunikacie o błędzie widnieje nazwa zasady weryfikacji tokena JWT: JWT-Verify-RS256, a nazwa elementu to: SecretKey/Id

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    
  2. Sprawdź niezweryfikowany kod XML zasady JWT i upewnij się, że został zdefiniowany nieprawidłowy element określony w kroku 1. Jeśli jest on zdefiniowany, to jest jego przyczyną.

    Na przykład ta zasada pokazuje, że element podrzędny <Id> elementu <SecretKey> jest zdefiniowany:

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

    Element <Id> jest zdefiniowany w elemencie <SecretKey> w zasadach weryfikacji JWT, więc pojawia się błąd:

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

Rozwiązanie

Upewnij się, że element <Id> nie jest zdefiniowany w elemencie <SecretKey> w zasadach weryfikacji tokena JWT.

Aby poprawić przykładową zasadę weryfikacji tokena JWT, usuń element podrzędny <Id> z elementu <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>

Nieprawidłowy pusty element

Komunikat o błędzie

Nie udało się wdrożyć serwera proxy interfejsu API przy użyciu interfejsu Edge lub API zarządzania urządzeniami brzegowymi z powodu tego komunikatu o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu

W interfejsie Edge zobaczysz okno dialogowe z błędem:

Przyczyna

Ten błąd występuje, jeśli element <Source> zasady weryfikacji tokena JWT jest pusty. Jeśli występuje, musi być zdefiniowany nazwą zmiennej przepływu przepływu Edge.

diagnostyki,

  1. Zidentyfikuj nazwę zasady weryfikacji tokena JWT i nazwę pustego elementu z komunikatu o błędzie. Na przykład w tym komunikacie o błędzie widnieje nazwa zasady weryfikacji tokena JWT: JWT-Verify-RS256, a nazwa elementu to: PublicKey/Value

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    
  2. Sprawdź niezweryfikowany kod XML zasady JWT i upewnij się, że element określony w kroku 1 jest pusty. Jeśli jest ono puste, to jest jego przyczyną.

    Na przykład ta zasada pokazuje, że element <Source> jest pusty:

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

    Element <Source> zasady Weryfikacja tokena JWT jest pusty, więc pojawia się błąd:

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

Rozwiązanie

Jeśli element <Source> zasady Weryfikacja tokena JWT jest obecny, upewnij się, że określa zmienną przepływu.

Aby poprawić przykładową zasadę weryfikacji tokena JWT, użyj prawidłowej zmiennej przepływu w elemencie <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>

Nieprawidłowa wartość klucza publicznego

Komunikat o błędzie

Nie udało się wdrożyć serwera proxy interfejsu API przy użyciu interfejsu Edge lub API zarządzania urządzeniami brzegowymi z powodu tego komunikatu o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu

W interfejsie Edge zobaczysz okno dialogowe z błędem:

Przyczyna

Ten błąd występuje, jeśli wartość używana w elemencie podrzędnym <JWKS> elementu <PublicKey> jest w nieprawidłowym formacie określonym w RFC 7517.

Na przykład użycie wartości abc jako wartości elementu podrzędnego <JWKS> w elemencie <PublicKey> spowoduje wystąpienie tego błędu.

diagnostyki,

  1. Zidentyfikuj nazwę zasady weryfikacji tokena JWT i nazwy elementu zawierającej nieprawidłową wartość z komunikatu o błędzie. Na przykład w tym komunikacie o błędzie nazwa zasad weryfikacji tokena JWT to JWT-Verify-RS256, a element to PublicKey/JWKS:

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    
  2. Sprawdź niezweryfikowany plik XML zasady JWT i upewnij się, że element określony w kroku 1 zawiera wartość w prawidłowym formacie (zgodnie z RFC 7517). Jeśli wartość elementu jest w nieprawidłowym formacie, to jest to przyczyną błędu.

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

    Ponieważ wartość elementu podrzędnego <JWKS> elementu <PublicKey> ma nieprawidłowy format (zgodnie z RFC 7517), pojawia się błąd:

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

Rozwiązanie

Upewnij się, że wartość podana w elemencie podrzędnym <JWKS> elementu <PublicKey> jest prawidłowym ciągiem znaków lub zmienną przepływu w prawidłowym formacie JWKS (RFC 7517).

Aby poprawić przykładową zasadę weryfikacji tokena JWT, zmień wartość <JWKS> w następujący sposób:

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

Nieprawidłowa konfiguracjaForAAndLalrithm

Komunikat o błędzie

Nie udało się wdrożyć serwera proxy interfejsu API przy użyciu interfejsu Edge lub API zarządzania urządzeniami brzegowymi z powodu tego komunikatu o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu

W interfejsie Edge zobaczysz okno dialogowe z błędem:

Przyczyna

Ten błąd występuje, jeśli element <PublicKey> jest używany z algorytmami HS Family, a element <SecretKey> – algorytmami rodzinnymi RSA. Ten błąd występuje też wtedy, gdy jeden z tych warunków jest spełniony.

Ten błąd powoduje na przykład użycie elementu <PublicKey> z algorytmami HS Family.

diagnostyki,

  1. Zidentyfikuj nazwę zasady weryfikacji tokena JWT, nazwę elementu i rodzinę algorytmów z komunikatu o błędzie. Na przykład w tym komunikacie o błędzie nazwa zasady weryfikacji tokena JWT to JWT-Verify-HS256, nazwa elementu to PublicKey, a rodzina algorytmów – RSA:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
    
  2. Sprawdź, czy element i rodzina algorytmów używane w nieudanej weryfikacji kodu JWT w XML są zgodne z elementem i grupą algorytmów z komunikatu o błędzie w kroku 1. Na przykład ta zasada określa element jako PublicKey, a rodzinę algorytmów jako HMAC. Wartość pasuje do zawartości komunikatu o błędzie.

    <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. Jeśli wartość elementu <Algorithm> to HS256, ale użyte zostało <PublicKey>, to jest przyczyną błędu.

    W powyższym przykładzie dotyczącym weryfikacji tokena JWT używany jest element <PublicKey>, mimo że <Algorithm> jest ustawiony na algorytm rodzinny HS256, co powoduje błąd:

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

Rozwiązanie

Element <PublicKey> powinien być używany tylko z algorytmami RSA RSA, a element <SecretKey> – tylko z algorytmami HS Family.

Aby poprawić przykładową zasadę weryfikacji tokena JWT, użyj zasady <SecretKey> z zasad weryfikacji JWT za pomocą algorytmu HS256:

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