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,
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 toiss
:Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
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 jakoiss
, 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>
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>
jakoiss
, 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,
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 toclaim
, a typ tointeger:
.Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
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 jakoclaim
, a typ tointeger
, 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>
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
lubmap
to jest przyczyna błędu.
W podanym wyżej przykładzie dotyczącym weryfikacji tokena JWT typ
<Claim>
jest określony jako elementinteger
w elemencie<AdditionalClaims>
. Typinteger
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,
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
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,
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 toalg
:Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
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 jakoalg
, 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>
Jeśli nazwa nagłówka użyta w elemencie podrzędnym
<Claim>
elementu<AdditionalClaims>
jest jednym z tych standardowych nagłówków JWT:alg
lubtyp
to jest przyczyna błędu.
W powyższym przykładzie dotyczącym weryfikacji tokena JWT nazwa
<Claim>
jest podana w elemencie<AdditionalClaims>
jakoalg
, 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,
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 toclaim
, a typ tointeger
:Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
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 jakoclaim
, a typ roszczenia jakointeger,
, 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>
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
lubmap
to jest przyczyna błędu.
W podanym wyżej przykładzie dotyczącym weryfikacji tokena JWT typ
<Claim>
w elemencie<AdditionalHeaders>
jest określony jakointeger
. Typinteger
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,
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 toclaim
:Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
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 jakoclaim
, 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>
Jeśli wartość atrybutu
array
w elemencie podrzędnym<Claim>
elementu<AdditionalClaims>
nie jest ustawiona natrue
lubfalse
, jest to przyczyna błędu.Ponieważ atrybut
array
w elemencie podrzędnym<Claim>
elementu<AdditionalClaims>
jest ustawiony nayes
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,
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 toAlgorithm
:Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
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>
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,
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 toPublicKey
:Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
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żywanyAlgorithm
toRS256
:<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 RevisionInvalid 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,
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).
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,
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 toPublicKey/Value
:Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
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,
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)
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 RevisionInvalid 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,
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).
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,
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 toPublicKey/JWKS
:Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
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,
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 toPublicKey
, a rodzina algorytmów –RSA
:Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
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 jakoHMAC
. 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>
Jeśli wartość elementu
<Algorithm>
toHS256
, 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>