شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید . اطلاعات
InvalidNameForAdditionalClaim
پیغام خطا
استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:
Error Saving Revision revision_number Invalid name for additional claim : policy(policy_name) claim(claim_name).
نمونه پیام خطا
Error Saving Revision 2
Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
نمونه اسکرین شات
در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:
علت
این خطا در صورتی رخ می دهد که نام ادعای مورد استفاده در عنصر فرزند <Claim>
عنصر <AdditionalClaims>
یکی از نام های ثبت شده زیر باشد:
"بچه"، "iss"، "sub"، "aud"، "iat"، "exp"، "nbf"، "jti"
ادعاهای ثبت شده در RFC7519 مشخص شده است.
به عنوان مثال، استفاده از نام ادعای iss
در عنصر <AdditionalClaims>
منجر به این خطا می شود.
تشخیص
نام سیاست تأیید JWT و نام ادعا را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Verify JWT
JWT-Verify-RS256
و نام ادعاiss
است:Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
بررسی کنید که نام ادعای مورد استفاده در زیر عنصر
<AdditionalClaims>
در XML تأیید خط مشی JWT ناموفق با نام ادعای مشخص شده در پیام خطا در مرحله 1 مطابقت دارد. به عنوان مثال، خط مشی زیر ادعا را به عنوانiss
مشخص می کند که با آنچه در خطا است مطابقت دارد. پیام:<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>
اگر نام ادعای استفاده شده در عنصر فرزند
<Claim>
عنصر<AdditionalClaims>
یکی از نامهای ثبت شده زیر باشد:"بچه"، "iss"، "sub"، "aud"، "iat"، "exp"، "nbf"، "jti"
پس این دلیل خطا است.
در مثال تأیید سیاست JWT که در بالا نشان داده شده است، نام
<Claim>
به عنوانiss
در زیر عنصر<AdditionalClaims>
مشخص شده است که منجر به خطا می شود:Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
قطعنامه
از هیچ یک از نامهای ثبتشده «kid»، «iss»، «sub»، «aud»، «iat»، «exp»، «nbf» یا «jti» در عنصر فرزند <Claim>
<AdditionalClaims>
استفاده نکنید. <AdditionalClaims>
عنصر.
برای تصحیح مشکل با مثال Verify JWT Policy، نام ادعا را به 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>
InvalidTypeForAdditionalClaim
پیغام خطا
استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:
Error Saving Revision revision_number Invalid type for additional claim : policy(policy_name) claim(claim_name) type(type_name).
نمونه پیام خطا
Error Saving Revision 2
Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
نمونه اسکرین شات
در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:
علت
نوع ادعای مورد استفاده در عنصر فرزند <Claim>
عنصر <AdditionalClaims>
خطمشی VerifyJWT یکی از انواع زیر نیست:
string
(پیش فرض)، number
، boolean
یا map
به عنوان مثال، استفاده از integer
نوع ادعا در عنصر <AdditionalClaims>
منجر به خطا می شود.
تشخیص
نام سیاست تأیید JWT، نام ادعا و نوع آن را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست تأیید JWT
JWT-Verify-RS256
است، نام ادعاclaim
است و نوع آنinteger:
Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
بررسی کنید که نام ادعا و نوع مورد استفاده در عنصر
<AdditionalClaims>
در XML خط مشی تأیید JWT ناموفق با نام و نوع ادعای شناسایی شده در پیام خطا در مرحله 1 مطابقت دارد. به عنوان مثال، خط مشی زیر ادعا را به عنوانclaim
مشخص می کند و به عنوانinteger
تایپ کنید، که با آنچه در پیام خطا است مطابقت دارد:<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>
اگر نوع ادعای استفاده شده در عنصر فرزند
<Claim>
عنصر<AdditionalClaims>
یکی از انواع زیر نیست:string
(پیش فرض)،number
،boolean
یاmap
پس این دلیل خطا است.
در مثال تأیید سیاست JWT نشان داده شده در بالا، نوع
<Claim>
به عنوانinteger
در عنصر<AdditionalClaims>
مشخص شده است. از آنجایی کهinteger
یک نوع پشتیبانی نمی شود، با این خطا مواجه می شوید:Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
قطعنامه
مطمئن شوید که فقط string
نوع دادههای پشتیبانیشده (پیشفرض)، number
، boolean
یا map
در عنصر فرزند <Claim>
عنصر <AdditionalClaims>
استفاده میشوند.
برای تصحیح مثال Verify JWT Policy، نوع ادعا را به 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>
MissingNameForAdditionalClaim
پیغام خطا
استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:
Error Saving Revision revision_number Error occurred while validation of bean(policy_name.xml) Reason: - Required attribute name is missing in Claim.
نمونه پیام خطا
Error Saving Revision 2
Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
نمونه اسکرین شات
در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:
علت
این خطا در صورتی رخ می دهد که نام ادعا در عنصر فرزند <Claim>
عنصر <AdditionalClaims>
یا <AdditionalHeaders>
مشخص نشده باشد.
تشخیص
نام سیاست Verify JWT را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Verify JWT
JWT-Verify-RS256
است:Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
XML خط مشی تأیید JWT ناموفق را بررسی کنید و بررسی کنید که نام ادعا در عنصر فرزند
<Claims>
در عنصر<AdditionalClaims>
یا<AdditionalHeaders>
وجود ندارد. برای مثال، سیاست تأیید JWT زیر نام ادعا را در عنصر<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>
از آنجایی که نام
<Claim>
در عنصر<AdditionalClaims>
مشخص نشده است، با این خطا مواجه می شوید:Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
قطعنامه
اطمینان حاصل کنید که نام ادعا همیشه در عنصر فرزند <Claim>
عنصر <AdditionalClaims>
یا <AdditionalHeaders>
مشخص شده است.
برای تصحیح مثال Verify JWT Policy، نام ادعا را مطابق شکل زیر مشخص کنید:
<VerifyJWT name="JWT-Verify-RS256">
<DisplayName>JWT Verify RS256</DisplayName>
<Algorithm>RS256</Algorithm>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<SecretKey>
<Value ref="private.secretkey"/>
<Id>1918290</Id>
</SecretKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalClaims>
<Claim name='claim' ref='reqclaim' type='boolean'/>
</AdditionalClaims>
</VerifyJWT>
InvalidNameForAdditionalHeader
پیغام خطا
استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:
Error Saving Revision revision_number Invalid name for additional header : policy(policy_name)header(header_name).
نمونه پیام خطا
Error Saving Revision 2
Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
نمونه اسکرین شات
در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:
علت
اگر نام ادعای مورد استفاده در عنصر فرزند <Claim>
عنصر <AdditionalHeaders>
یکی از هدرهای استاندارد JWT زیر باشد این خطا رخ می دهد:
alg
یا typ
به عنوان مثال، استفاده از نام ادعای alg
در عنصر <AdditionalHeaders>
باعث ایجاد خطا می شود.
تشخیص
نام سیاست تأیید JWT و نام سرصفحه را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست تأیید JWT
JWT-Verify-RS256
و نام سرصفحهalg
است:Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
بررسی کنید که نام سرصفحه استفاده شده در عنصر فرزند
<Claim>
در زیر عنصر<AdditionalHeaders>
در XML تأیید خط مشی JWT ناموفق با نام سرصفحه مشخص شده در پیام خطا در مرحله 1 مطابقت دارد. به عنوان مثال، خط مشی زیر سرصفحه را به عنوانalg
مشخص می کند. ، که با آنچه در پیام خطا است مطابقت دارد:<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>
اگر نام سرصفحه مورد استفاده در عنصر فرزند
<Claim>
عنصر<AdditionalClaims>
یکی از هدرهای استاندارد JWT زیر باشد:alg
یاtyp
پس این دلیل خطا است.
در مثال تأیید سیاست JWT که در بالا نشان داده شده است، نام
<Claim>
به عنوانalg
در زیر عنصر<AdditionalClaims>
مشخص شده است که منجر به خطا می شود:Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
قطعنامه
از هدرهای استاندارد JWT alg
یا typ
در عنصر فرزند <Claim>
عنصر <AdditionalHeaders>
استفاده نکنید.
برای تصحیح مثال Verify JWT Policy، از نام x5c
در عنصر فرزند <Claim>
عنصر <AdditionalHeaders>
استفاده کنید:
<VerifyJWT name="JWT-Verify-RS256">
<DisplayName>JWT Verify RS256</DisplayName>
<Algorithm>RS256</Algorithm>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<SecretKey>
<Value ref="private.secretkey"/>
<Id>1918290</Id>
</SecretKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='x5c'/>
</AdditionalHeaders>
</VerifyJWT>
InvalidTypeForAdditionalHeader
پیغام خطا
استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:
Error Saving Revision revision_number Invalid type for additional header : policy(policy_name) claim(claim_name) type(type_name).
نمونه پیام خطا
Error Saving Revision 2
Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim1) type(integer).
نمونه اسکرین شات
در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:
علت
اگر نوع ادعای مورد استفاده در عنصر فرزند <Claim>
عنصر <AdditionalHeaders>
از خط مشی Verify JWT یکی از انواع زیر نباشد، خطا رخ می دهد:
string
(پیش فرض)، number
، boolean
یا map
به عنوان مثال، استفاده از integer
نوع ادعا در عنصر <AdditionalHeaders>
باعث ایجاد خطا می شود.
تشخیص
نام سیاست تأیید JWT، نام ادعا و نوع آن را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست تأیید JWT
JWT-Verify-RS256
، نام ادعاclaim
و نوع آنinteger
است:Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
بررسی کنید که نام ادعا و نوع مورد استفاده در عنصر
<AdditionalClaims>
در XML خط مشی تأیید JWT ناموفق با نام و نوع ادعای شناسایی شده در پیام خطا در مرحله 1 مطابقت دارد. به عنوان مثال، خط مشی زیر ادعا را به عنوانclaim
مشخص می کند و نوع ادعا به عنوانinteger,
که با آنچه در پیام خطا است مطابقت دارد:<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>
اگر نوع ادعای استفاده شده در عنصر فرزند
<Claim>
عنصر<AdditionalHeaders>
یکی از انواع زیر نیست:string
(پیش فرض)،number
،boolean
یاmap
پس این دلیل خطا است.
در مثال تأیید سیاست JWT نشان داده شده در بالا، نوع
<Claim>
در زیر عنصر<AdditionalHeaders>
به عنوانinteger
مشخص شده است. از آنجایی کهinteger
یک نوع پشتیبانی نمی شود، با این خطا مواجه می شوید:Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
قطعنامه
اطمینان حاصل کنید که فقط انواع داده های پشتیبانی شده string
، number
، boolean
یا map
در عنصر فرزند <Claim>
عنصر <AdditionalHeaders>
استفاده می شود.
برای تصحیح مثال Verify JWT Policy، نوع ادعا را به 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>
InvalidValueOfArrayAttribute
پیغام خطا
استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:
Error Saving Revision revision_number Invalid value for array attribute: policy(policy_name)claim(claim_name).
نمونه پیام خطا
Error Saving Revision 2
Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
نمونه اسکرین شات
در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:
علت
اگر مقدار مشخصه آرایه در عنصر فرزند <Claim>
عنصر <AdditionalClaims>
یا <AdditionalHeaders>
روی true
یا false
تنظیم نشود این خطا رخ می دهد.
برای مثال، تنظیم مقدار مشخصه آرایه به صورت yes
در عنصر فرزند <Claim>
عنصر <AdditionalClaims>
یا <AdditionalHeaders>
باعث ایجاد خطا می شود.
تشخیص
نام سیاست تأیید JWT و نام ادعا را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست تأیید JWT
JWT-Verify-RS256
و نام ادعاclaim
است:Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
بررسی کنید که نام ادعای مورد استفاده در عنصر فرزند
<Claim>
در زیر عنصر<AdditionalHeaders>
در XML تأیید ناموفق خط مشی JWT با نام ادعای شناسایی شده در پیام خطا در مرحله 1 مطابقت دارد. به عنوان مثال، خط مشی زیر نام ادعا را به عنوان مشخص می کند.claim
، که با آنچه در پیام خطا وجود دارد مطابقت دارد:<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>
اگر مقدار صفت
array
در عنصر فرزند<Claim>
عنصر<AdditionalClaims>
رویtrue
یاfalse
تنظیم نشده باشد، این دلیل خطا است.از آنجایی که ویژگی
array
در عنصر فرزند<Claim>
عنصر<AdditionalClaims>
در مثال بالا رویyes
تنظیم شده است، با این خطا مواجه می شوید:Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
قطعنامه
مطمئن شوید که مقدار ویژگی آرایه در عنصر فرزند <Claim>
عناصر <AdditionalClaims>
یا <AdditionalHeaders>
روی true
یا false
تنظیم شده است.
برای تصحیح مثال Verify JWT Policy نشان داده شده در بالا، مقدار مشخصه آرایه را به true
تغییر دهید:
<VerifyJWT name="JWT-Verify-RS256">
<DisplayName>JWT Verify RS256</DisplayName>
<Algorithm>RS256</Algorithm>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<SecretKey>
<Value ref="private.secretkey"/>
<Id>1918290</Id>
</SecretKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='claim' ref='reqclaim' type='string' array='true'/>
</AdditionalHeaders>
</VerifyJWT>
InvalidValueForElement
پیغام خطا
استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:
Error Saving Revision Invalid Value for element : policy(policy_name) element(element_name).
نمونه پیام خطا
Error Saving Revision
Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
نمونه اسکرین شات
در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:
علت
این خطا در صورتی رخ می دهد که مقدار مشخص شده در عنصر <Algorithm>
یکی از مقادیر زیر نباشد:
HS256
, HS384
, HS512
, RS256
, RS384
, RS512
به عنوان مثال، تعیین مقدار الگوریتم به عنوان RS128
در عنصر <Algorithm>
منجر به این خطا می شود.
تشخیص
نام سیاست تأیید JWT و نام عنصر را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست تأیید JWT
JWT-Verify-RS256
و نام عنصرAlgorithm
است:Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
بررسی ناموفق Verify JWT Policy XML و مقدار مشخص شده برای عنصر
<Algorithm>
را بررسی کنید.در اینجا یک نمونه از سیاست تأیید 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>
مقدار مشخص شده در عنصر
<Algorithm>
را بررسی کنید. اگر یکی از مقادیر زیر نباشد:HS256
,HS384
,HS512
,RS256
,RS384
,RS512
پس این دلیل خطا است.
در مثال بررسی سیاست JWT نشان داده شده در بالا، نام
<Algorithm>
به عنوانHS128
مشخص شده است. از آنجایی که این یک الگوریتم پشتیبانی نمی شود، با این خطا مواجه می شوید:Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
قطعنامه
اطمینان حاصل کنید که مقدار مشخص شده در عنصر <Algorithm>
یکی از مقادیر پشتیبانی شده است:
HS256
, HS384
, HS512
, RS256
, RS384
, RS512
برای تصحیح مثال Verify JWT سیاست نشان داده شده در بالا، که از عنصر <SecretKey>
استفاده می کند، مقدار <Algorithm>
را به HS25
تغییر دهید. توجه داشته باشید، زمانی که عنصر <SecretKey>
استفاده می شود، فقط می توانید از الگوریتم های خانواده 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>
MissingConfigurationElement
پیغام خطا
استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:
Error Saving Revision Missing configuration element : policy(policy_name) element(element_name).
نمونه پیام خطا
Error Saving Revision
Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
نمونه اسکرین شات
در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:
علت
این خطا زمانی رخ می دهد که عنصر <PublicKey>
با الگوریتم های خانواده RSA در خط مشی Verify JWT استفاده نشود . به همین ترتیب، اگر عنصر <SecretKey>
با الگوریتم های خانواده HS در خط مشی Verify JWT استفاده نشود ، ممکن است خطا رخ دهد.
به عنوان مثال، عدم استفاده از عنصر <PublicKey>
با الگوریتم های خانواده RSA منجر به این خطا می شود.
تشخیص
نام سیاست تأیید JWT و نام عنصر گم شده را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Verify JWT
JWT-Verify-RS256
و نام عنصر گمشدهPublicKey
است:Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
XML خط مشی Verify JWT ناموفق را بررسی کنید و بررسی کنید که عنصر نشان داده شده در پیام خطا وجود ندارد. اگر گم شده باشد، دلیل خطا همین است.
به عنوان مثال، خط مشی زیر نشان می دهد که
PublicKey
وجود ندارد وAlgorithm
مورد استفاده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>
مثال Verify JWT از الگوریتمهای خانواده HS استفاده میکند، اما عنصر اجباری
PublicKey
وجود ندارد که منجر به خطا میشود:Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
قطعنامه
اطمینان حاصل کنید که عنصر اجباری <PublicKey>
با الگوریتم های خانواده RSA و عنصر اجباری <SecretKey>
با الگوریتم های خانواده HS استفاده می شود.
برای تصحیح مثال Verify JWT که در بالا نشان داده شده است، که از الگوریتم RS256 استفاده می کند، عنصر <PublicKey>
را به خط مشی VerifyJWT اضافه کنید:
<VerifyJWT name="JWT-Verify-RS256">
<DisplayName>JWT Verify RS256</DisplayName
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<Algorithm>RS256</Algorithm>
<PublicKey>
<Value ref="public.publickey"/>
</PublicKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='claim' ref='reqclaim' type='string' array='true'/>
</AdditionalHeaders>
</VerifyJWT>
InvalidKeyConfiguration
پیغام خطا
استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:
Error Saving RevisionInvalid Key configuration : policy(policy_name).
نمونه پیام خطا
Error Saving Revision 2
Invalid Key configuration : policy(JWT-Verify-RS256).
نمونه اسکرین شات
در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:
علت
اگر عنصر فرزند <Value>
یا عنصر فرزند اجباری <JWKS>
در عناصر <PublicKey>
یا <SecretKey>
خط مشی Verify JWT تعریف نشده باشد، این خطا رخ می دهد.
تشخیص
نام سیاست Verify JWT را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Verify JWT
JWT-Verify-RS256
است:Invalid Key configuration : policy(JWT-Verify-RS256).
XML خط مشی تأیید JWT ناموفق را بررسی کنید و بررسی کنید که آیا عنصر فرزند
<Value>
یا عنصر فرزند<JWKS>
در عناصر<PublicKey>
یا<SecretKey>
تعریف نشده است. اگر عنصر فرزند تعریف نشده باشد، این دلیل خطا است.به عنوان مثال، خط مشی زیر نشان می دهد که عنصر فرزند
<Value>
یا<JWKS>
در عنصر<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>
از آنجایی که عنصر فرزند
<Value>
یا<JWKS>
در عنصر<PublicKey>
از خط مشی Verify JWT تعریف نشده است، با این خطا مواجه می شوید:Invalid Key configuration : policy(JWT-Verify-RS256).
قطعنامه
اطمینان حاصل کنید که عنصر فرزند <Value>
یا <JWKS>
همیشه در عنصر <PublicKey>
سیاست تأیید JWT تعریف شده است.
برای تصحیح مثال Verify JWT Policy، عنصر فرزند <Value>
یا <JWKS>
را در زیر عنصر <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>
</PublicJWT>
EmptyElementForKeyConfiguration
پیغام خطا
استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:
Error Saving Revision revision_number Empty Element for Key Configuration : policy(policy_name) element(element_name).
نمونه پیام خطا
Error Saving Revision 2
Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
نمونه اسکرین شات
در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:
علت
اگر مشخصه ref در عنصر فرزند <Value>
یا <JWKS>
عنصر <PublicKey>
مشخص یا خالی نباشد، این خطا رخ می دهد.
به عنوان مثال، اگر عنصر فرزند <Value>
عنصر <PublicKey>
خالی باشد، خطا رخ می دهد.
تشخیص
نام سیاست تأیید JWT و نام عنصر را که از پیام خطا خالی است، شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Verify JWT
JWT-Verify-RS256
و نام عنصرPublicKey/Value
است:Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
XML خط مشی Verify JWT ناموفق را بررسی کنید و بررسی کنید که عنصر مشخص شده در مرحله 1 خالی است. اگر خالی است، دلیل این خطا است.
به عنوان مثال، خط مشی زیر نشان می دهد که عنصر فرزند
<Value>
عنصر<PublicKey>
خالی است:<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>
از آنجایی که عنصر فرزند
<Value>
عنصر<PublicKey>
در سیاست Verify JWT خالی است، با این خطا مواجه می شوید:Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
قطعنامه
اطمینان حاصل کنید که ویژگی ref در عنصر فرزند <Value>
یا <JWKS>
عنصر <PublicKey>
همیشه مشخص شده باشد.
برای تصحیح مثال Verify JWT Policy، از متغیر جریان public.publickey
در عنصر فرزند <Value>
عنصر <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>
InvalidConfigurationForVerify
پیغام خطا
استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:
Error Saving Revision revision_number Invalid configuration element for verify : policy(policy_name) element(element_name).
نمونه پیام خطا
Error Saving Revision 3
Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id).
نمونه اسکرین شات
در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:
علت
این خطا در صورتی رخ می دهد که عنصر <Id>
در عنصر <SecretKey>
یک خط مشی VerifyJWT تعریف شده باشد.
به عنوان مثال، اگر عنصر <Id>
در عنصر <SecretKey>
تعریف شده باشد، این خطا رخ می دهد.
تشخیص
نام سیاست تأیید JWT و نام عنصر نامعتبر را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Verify JWT
JWT-Verify-RS256
و نام عنصرSecretKey/Id
است:Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
XML خط مشی Verify JWT ناموفق را بررسی کنید و بررسی کنید که عنصر نامعتبر شناسایی شده در مرحله 1 تعریف شده باشد. اگر تعریف شده باشد، دلیل خطا همین است.
به عنوان مثال، خط مشی زیر نشان می دهد که عنصر فرزند
<Id>
عنصر<SecretKey>
تعریف شده است:<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>
از آنجایی که عنصر
<Id>
در عنصر<SecretKey>
سیاست Verify JWT تعریف شده است، با این خطا مواجه می شوید:Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
قطعنامه
اطمینان حاصل کنید که عنصر <Id>
هرگز در عنصر <SecretKey>
یک سیاست Verify JWT تعریف نشده است.
برای تصحیح مثال Verify JWT Policy، عنصر فرزند <Id>
را از عنصر <SecretKey>
حذف کنید:
<VerifyJWT name="JWT-Verify-RS256">
<DisplayName>JWT Verify RS256</DisplayName>
<Algorithm>RS256</Algorithm>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<SecretKey>
<Value ref='private.secretkey'/>
</SecretKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='claim' ref='reqclaim' type='string' array='true'/>
</AdditionalHeaders>
</VerifyJWT>
InvalidEmptyElement
پیغام خطا
استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:
Error Saving RevisionInvalid empty element : policy(policy_name) element(element_name).
نمونه پیام خطا
Error Saving Revision 3
Invalid empty element : policy(JWT-Verify-HS256) element(Source).
نمونه اسکرین شات
در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:
علت
این خطا در صورتی رخ می دهد که عنصر <Source>
از خط مشی Verify JWT خالی باشد. در صورت وجود، باید با نام متغیر Edge flow تعریف شود.
تشخیص
نام سیاست Verify JWT و نام عنصر خالی را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Verify JWT
JWT-Verify-RS256
و نام عنصرPublicKey/Value
است:Invalid empty element : policy(JWT-Verify-HS256) element(Source).
XML خط مشی Verify JWT ناموفق را بررسی کنید و بررسی کنید که عنصر مشخص شده در مرحله 1 خالی است. اگر خالی است، دلیل این خطا است.
به عنوان مثال، خط مشی زیر نشان می دهد که عنصر
<Source>
خالی است:<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>
از آنجایی که عنصر
<Source>
از خط مشی Verify JWT خالی است، با این خطا مواجه می شوید:Invalid empty element : policy(JWT-Verify-HS256) element(Source).
قطعنامه
اگر عنصر <Source>
یک خط مشی Verify JWT وجود دارد، مطمئن شوید که متغیر جریان را مشخص می کند.
برای تصحیح مثال Verify JWT Policy، از یک متغیر جریان معتبر در عنصر <Source>
استفاده کنید:
<VerifyJWT name="JWT-Verify-RS256">
<DisplayName>JWT Verify RS256</DisplayName>
<Algorithm>RS256</Algorithm>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<Source>jwt-variable</Source>
<PublicKey>
<Value ref="public.publickey"/>
</PublicKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='claim' ref='reqclaim' type='string' array='true'/>
</AdditionalHeaders>
</VerifyJWT>
InvalidPublicKeyValue
پیغام خطا
استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:
Error Saving Revision revision_number Invalid Public Key Value in Configuration : policy(policy_name) element(element_name).
نمونه پیام خطا
Error Saving Revision 2
Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
نمونه اسکرین شات
در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:
علت
اگر مقدار مورد استفاده در عنصر فرزند <JWKS>
عنصر <PublicKey>
در قالب معتبری که در RFC 7517 مشخص شده است نباشد، رخ می دهد.
به عنوان مثال، استفاده از abc
به عنوان مقدار عنصر فرزند <JWKS>
در زیر عنصر <PublicKey>
منجر به این خطا می شود.
تشخیص
نام سیاست تأیید JWT و نام عنصر حاوی مقدار نامعتبر از پیام خطا را شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Verify JWT
JWT-Verify-RS256
و عنصرPublicKey/JWKS
است:Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
XML خط مشی تأیید JWT ناموفق را بررسی کنید و بررسی کنید که عنصر شناسایی شده در مرحله 1 حاوی مقداری در قالب معتبر مطابق با RFC 7517 باشد. اگر مقدار عنصر در فرمت معتبر نباشد، دلیل این خطا است.
<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>
از آنجایی که مقدار عنصر فرزند
<JWKS>
عنصر<PublicKey>
در قالب RFC 7517 معتبر نیست، با این خطا مواجه می شوید:Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
قطعنامه
مطمئن شوید که مقدار مشخص شده در عنصر فرزند <JWKS>
عنصر <PublicKey>
یک رشته یا متغیر جریان معتبر در قالب JWKS معتبر است ( RFC 7517 ).
برای تصحیح مثال Verify JWT Policy، مقدار <JWKS>
را مطابق شکل زیر تغییر دهید:
<VerifyJWT name="JWT-Verify-RS256">
<DisplayName>JWT Verify RS256</DisplayName>
<Algorithm>RS256</Algorithm>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<PublicKey>
<JWKS>eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiJiMDhmODZhZi0zNWRhLTQ4ZjItOGZhYi1jZWYzOTA0NjYwYmQifQ.-xN_h82PHVTCMA9vdoHrcZxH-x5mb11y1537t3rGzcM</JWKS>
</PublicKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
</VerifyJWT>
InvalidConfigurationForActionAndAlgorithm
پیغام خطا
استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:
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>).
نمونه پیام خطا
Error Saving Revision
Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
نمونه اسکرین شات
در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:
علت
این خطا در صورتی رخ می دهد که عنصر <PublicKey>
با الگوریتم های خانواده HS و عنصر <SecretKey>
با الگوریتم های خانواده RSA استفاده شود. اگر هر یک از این شرایط درست باشد، خطا نیز رخ خواهد داد.
به عنوان مثال، استفاده از عنصر <PublicKey>
با الگوریتم های HS Family منجر به این خطا می شود.
تشخیص
نام سیاست تأیید JWT، نام عنصر و نام خانواده الگوریتم را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Verify JWT
JWT-Verify-HS256
، نام عنصرPublicKey
و خانواده الگوریتمRSA
است:Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
بررسی کنید که عنصر و خانواده الگوریتم مورد استفاده در XML خط مشی تأیید JWT ناموفق با عنصر و خانواده الگوریتم مشخص شده در پیام خطا در مرحله 1 مطابقت دارند. به عنوان مثال، خط مشی زیر عنصر را به عنوان
PublicKey
و خانواده الگوریتم را به عنوانHMAC
مشخص می کند. که با آنچه در پیام خطا است مطابقت دارد<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>
اگر مقدار عنصر
<Algorithm>
HS256
است، اما شما از<PublicKey>
استفاده کردهاید، این دلیل خطا است.در مثال بررسی سیاست JWT که در بالا نشان داده شده است، از عنصر
<PublicKey>
استفاده می شود، حتی اگر<Algorithm>
روی یک الگوریتم خانواده HS256 تنظیم شده باشد، که منجر به خطا می شود:Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
قطعنامه
اطمینان حاصل کنید که عنصر <PublicKey>
فقط با الگوریتم های خانواده RSA و عنصر <SecretKey>
فقط با الگوریتم های خانواده HS استفاده می شود.
برای اصلاح مثال Verify JWT، از <SecretKey>
از خط مشی VerifyJWT استفاده کنید که از الگوریتم 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>