أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
المزايا
تنشئ JWT موقَّعة، مع مجموعة قابلة للضبط من المطالبات. يمكن بعد ذلك إرجاع JWT إلى أو يتم نقلها إلى الأهداف الخلفية أو استخدامها بطرق أخرى. يمكنك الاطّلاع على نظرة عامة على سياسات JWS وJWT للحصول على مقدمة تفصيلية.
فيديو
يمكنك مشاهدة فيديو قصير لمعرفة كيفية إنشاء رمز JWT موقَّع.
نماذج
إنشاء JWT موقَّع باستخدام HS256 الخوارزمية
تنشئ هذه السياسة نموذج JWT جديدًا ويوقّعها باستخدام خوارزمية HS256. يعتمد HS256 على سر مشترك لكلٍ من التوقيع والتحقق من التوقيع.
عند تنفيذ إجراء السياسة هذا، تعمل شبكة Edge على ترميز عنوان JWT والحمولة، ثم ترميزًا رقميًا. على JWT. يمكنك مشاهدة الفيديو أعلاه للاطّلاع على مثال كامل، بما في ذلك كيفية تقديم طلب بشأن السياسة.
ستؤدي إعدادات السياسة هنا إلى إنشاء JWT بمجموعة من المطالبات العادية على النحو المحدّد في مواصفات JWT، بما في ذلك انتهاء الصلاحية لمدة ساعة، بالإضافة إلى مطالبة إضافية. يمكنك تضمين العدد الذي تريده من المطالبات الإضافية. اطلع على مرجع Element للحصول على تفاصيل حول المتطلبات والخيارات لكل عنصر في نموذج السياسة هذا.
<GenerateJWT name="JWT-Generate-HS256"> <DisplayName>JWT Generate HS256</DisplayName> <Algorithm>HS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <SecretKey> <Value ref="private.secretkey"/> <Id>1918290</Id> </SecretKey> <ExpiresIn>1h</ExpiresIn> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name="show">And now for something completely different.</Claim> </AdditionalClaims> <OutputVariable>jwt-variable</OutputVariable> </GenerateJWT>
سيحتوي ملف JWT الناتج على هذا العنوان...
{ "typ" : "JWT", "alg" : "HS256", "kid" : "1918290" }
... وسيحتوي على حمولة تحتوي على محتويات على النحو التالي:
{ "sub" : "monty-pythons-flying-circus", "iss" : "urn://apigee-edge-JWT-policy-test", "aud" : "show", "iat" : 1506553019, "exp" : 1506556619, "jti" : "BD1FF263-3D25-4593-A685-5EC1326E1F37", "show": "And now for something completely different." }
قيمة المطالبات iat وexp وjti مختلفة.
إنشاء JWT موقَّع باستخدام RS256 الخوارزمية
تنشئ هذه السياسة نموذج JWT جديدًا وتوقّعه باستخدام خوارزمية RS256. جارٍ إنشاء يعتمد توقيع RS256 على مفتاح خاص بترميز RSA، ويجب تقديمه بتنسيق PEM بترميز. يمكنك مشاهدة الفيديو أعلاه للاطّلاع على مثال كامل، بما في ذلك كيفية تقديم طلب بشأن السياسة.
عند تنفيذ إجراء السياسة هذا، تعمل شبكة Edge على ترميز JWT وتوقيعها رقميًا، بما في ذلك المطالبات. للتعرّف على أجزاء JWT وكيفية تشفيرها وتوقيعها، يمكنك الرجوع إلى RFC7519.
<GenerateJWT name="JWT-Generate-RS256"> <Algorithm>RS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <PrivateKey> <Value ref="private.privatekey"/> <Password ref="private.privatekey-password"/> <Id ref="private.privatekey-id"/> </PrivateKey> <Subject>apigee-seattle-hatrack-montage</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>urn://c60511c0-12a2-473c-80fd-42528eb65a6a</Audience> <ExpiresIn>60m</ExpiresIn> <Id/> <AdditionalClaims> <Claim name="show">And now for something completely different.</Claim> </AdditionalClaims> <OutputVariable>jwt-variable</OutputVariable> </GenerateJWT>
تحديد العناصر الرئيسية
تعتمد العناصر التي تستخدمها لتحديد المفتاح المستخدم لإنشاء JWT على الخوارزمية المختارة، كما هو موضح في الجدول التالي:
خوارزمية | العناصر الرئيسية | |
---|---|---|
HS{256/384/512}* | <SecretKey> <Value ref="private.secretkey"/> <Id>1918290</Id> </SecretKey> |
|
RS/PS/ES{256/384/512}* | <PrivateKey> <Value ref="private.privatekey"/> <Password ref="private.privatekey-password"/> <Id ref="private.privatekey-id"/> </PrivateKey> العنصران |
|
*لمزيد من المعلومات حول المتطلبات الرئيسية، يُرجى الاطّلاع على لمحة عن خوارزميات تشفير التوقيع |
مرجع عنصر لإنشاء JWT
يصف مرجع السياسة عناصر سياسة إنشاء JWT وسماتها.
ملاحظة: ستختلف التهيئة إلى حد ما استنادًا إلى التشفير والخوارزمية التي تستخدمها. يُرجى الرجوع إلى عيّنات للاطّلاع على أمثلة الإعدادات لحالات استخدام معينة.
السمات التي تطبيقها على عنصر المستوى الأعلى
<GenerateJWT name="JWT" continueOnError="false" enabled="true" async="false">
السمات التالية مشتركة بين جميع العناصر الرئيسية للسياسة.
السمة | الوصف | تلقائي | الحضور |
---|---|---|---|
الاسم |
الاسم الداخلي للسياسة. تقتصر الأحرف التي يمكنك استخدامها في الاسم على:
A-Z0-9._\-$ % ومع ذلك، تفرض واجهة مستخدم إدارة Edge المزيد
مثل الإزالة التلقائية للأحرف غير الأبجدية الرقمية.
يمكنك استخدام العنصر |
لا ينطبق | مطلوب |
continueOnError |
اضبط القيمة على false لعرض رسالة خطأ عند تعذُّر تنفيذ سياسة. هذا متوقّع
السلوك في معظم السياسات.
يمكنك ضبط القيمة على |
خطأ | اختياري |
مفعّلة |
اضبط القيمة على true لفرض السياسة.
ضبط على |
صحيح | اختياري |
غير متزامن | تم إيقاف هذه السمة نهائيًا. | خطأ | منهي العمل به |
<DisplayName>
<DisplayName>Policy Display Name</DisplayName>
يمكن استخدامها بالإضافة إلى سمة الاسم لتصنيف السياسة في أداة تعديل الخادم الوكيل لواجهة مستخدم الإدارة باسم آخر بلغة طبيعية
تلقائي | إذا لم تستخدم هذا العنصر، سيتم استخدام قيمة سمة اسم السياسة. |
الحضور | اختياري |
النوع | سلسلة |
<Algorithm>
<Algorithm>algorithm-here</Algorithm>
تُحدِّد خوارزمية التشفير لتوقيع الرمز المميّز.
تلقائي | لا ينطبق |
الحضور | مطلوب |
النوع | سلسلة |
القيم الصالحة | HS256 وHS384 وHS512 وRS256 وRS384 وRS512 وES256 وES384 وES512 وPS256 وPS384 وPS512 |
<Audience>
<Audience>audience-here</Audience> or: <Audience ref='variable_containing_audience'/>
تنشئ السياسة JWT يحتوي على مطالبة aud تم ضبطها على القيمة المحدّدة تحدد هذه المطالبة المستلمين الذين تم تخصيص JWT لهم. هذا هو أحد المطالبات المسجّلة المذكورة في RFC7519.
تلقائي | لا ينطبق |
الحضور | اختياري |
النوع | مصفوفة (قائمة بالقيم المفصولة بفواصل) |
القيم الصالحة | يُقصد به أي عنصر يعرِّف الجمهور. |
<AdditionalClaims/Claim>
<AdditionalClaims> <Claim name='claim1'>explicit-value-of-claim-here</Claim> <Claim name='claim2' ref='variable-name-here'/> <Claim name='claim3' ref='variable-name-here' type='boolean'/> </AdditionalClaims> or: <AdditionalClaims ref='claim_payload'/>
للسماح لك بتحديد أزواج إضافية من أسماء/قيم المطالبة في حمولة JWT. يمكنك تحديد المطالبة بشكل صريح كسلسلة أو رقم أو قيمة منطقية أو خريطة أو مصفوفة. الخريطة هي ببساطة مجموعة من الاسم/القيمة أزواج.
تلقائي | لا ينطبق |
الحضور | اختياري |
القيم الصالحة | تمثّل هذه السمة أي قيمة تريد استخدامها في مطالبة إضافية. يمكنك تحديد المطالبة بشكل صريح كسلسلة أو رقم أو قيمة منطقية أو خريطة أو مصفوفة. |
يأخذ العنصر <Claim>
السمات التالية:
- name - (مطلوبة) اسم المطالبة.
- ref - (اختيارية) اسم متغيّر التدفق. وفي حال توفّرها، ستستخدم السياسة القيمة التالية: المتغير مثل المطالبة. في حال تحديد كل من السمة ref وقيمة المطالبة الصريحة، سيتم وتكون القيمة الصريحة هي القيمة الافتراضية، ويتم استخدامها إذا لم يتم حل متغير التدفق المشار إليه.
- type - (اختيارية) أحد الخيارات التالية: سلسلة (تلقائي) أو رقم أو قيمة منطقية أو خريطة
- مصفوفة - (اختيارية) يتم ضبطها على صحيح للإشارة إلى ما إذا كانت القيمة مصفوفة من الأنواع. الإعداد التلقائي: خطأ.
عند تضمين العنصر <Claim>
، يتم ضبط أسماء المطالبات بشكل ثابت عندما
تهيئة السياسة. ويمكنك بدلاً من ذلك تمرير كائن JSON لتحديد أسماء المطالبات.
بما أنّه يتم تمرير كائن JSON كمتغيّر، يتم في وقت التشغيل تحديد أسماء المطالبات في JWT الذي تم إنشاؤه.
على سبيل المثال:
<AdditionalClaims ref='json_claims'/>
عندما يحتوي المتغيّر json_claims
على كائن JSON بالشكل التالي:
{ "sub" : "person@example.com", "iss" : "urn://secure-issuer@example.com", "non-registered-claim" : { "This-is-a-thing" : 817, "https://example.com/foobar" : { "p": 42, "q": false } } }
يتضمن ملف JWT الذي تم إنشاؤه جميع المطالبات في كائن JSON.
<AdditionalHeaders/Claim>
<AdditionalHeaders> <Claim name='claim1'>explicit-value-of-claim-here</Claim> <Claim name='claim2' ref='variable-name-here'/> <Claim name='claim3' ref='variable-name-here' type='boolean'/> <Claim name='claim4' ref='variable-name' type='string' array='true'/> </AdditionalHeaders>
لوضع اسم/قيم المطالبة الإضافية في رأس JWT.
تلقائي | لا ينطبق |
الحضور | اختياري |
القيم الصالحة | تمثّل هذه السمة أي قيمة تريد استخدامها في مطالبة إضافية. يمكنك تحديد المطالبة بشكل صريح كسلسلة أو رقم أو قيمة منطقية أو خريطة أو مصفوفة. |
يأخذ العنصر <Claim>
السمات التالية:
- name - (مطلوبة) اسم المطالبة.
- ref - (اختيارية) اسم متغيّر التدفق. وفي حال توفّرها، ستستخدم السياسة القيمة التالية: المتغير مثل المطالبة. في حال تحديد كل من السمة ref وقيمة المطالبة الصريحة، سيتم وتكون القيمة الصريحة هي القيمة الافتراضية، ويتم استخدامها إذا لم يتم حل متغير التدفق المشار إليه.
- type - (اختيارية) أحد الخيارات التالية: سلسلة (تلقائي) أو رقم أو قيمة منطقية أو خريطة
- مصفوفة - (اختيارية) يتم ضبطها على صحيح للإشارة إلى ما إذا كانت القيمة مصفوفة من الأنواع. الإعداد التلقائي: خطأ.
<CriticalHeaders>
<CriticalHeaders>a,b,c</CriticalHeaders> or: <CriticalHeaders ref=’variable_containing_headers’/>
إضافة العنوان المهم، crit، إلى عنوان JWT. الرأس crit عبارة عن مصفوفة من أسماء العناوين التي يجب أن يعرفها ويتعرف عليها مستلم JWT. على سبيل المثال:
{ “typ: “...”, “alg” : “...”, “crit” : [ “a”, “b”, “c” ], }
في وقت التشغيل، تفحص سياسة VerifyJWT عنوان crit.
بالنسبة إلى كل عنصر مدرج في عنوان crit، يتم التحقّق من أنّ العنصر <KnownHeaders>
.
من سياسة VerifyJWT تسرد أيضًا هذا العنوان. أي عنوان تعثر عليه سياسة التحقّق من JWT في crit
والتي لم يتم إدراجها أيضًا في <KnownHeaders>
، إلى تعذُّر استخدام سياسة VerifyJWT.
تلقائي | لا ينطبق |
الحضور | اختياري |
النوع | مصفوفة السلاسل المفصولة بفواصل |
القيم الصالحة | إمّا مصفوفة أو اسم متغير يحتوي على المصفوفة. |
<CustomClaims>
ملاحظة: في الوقت الحالي، يتم إدراج عنصر CustomClaims عند إضافة عنصر سياسة GenerateJWT من خلال واجهة المستخدم. هذا العنصر غير فعّال ويتم تجاهله. الإجابات الصحيحة العنصر المطلوب استخدامه بدلاً من ذلك هو <AdditionalClaims>. ستفتح واجهة المستخدم تحديثها لإدراج العناصر الصحيحة في وقت لاحق.
<ExpiresIn>
<ExpiresIn>time-value-here</ExpiresIn>
تحدّد عمر JWT بالمللي ثانية أو الثواني أو الدقائق أو الساعات أو الأيام.
تلقائي | N/A |
الحضور | اختياري |
النوع | عدد صحيح |
القيم الصالحة |
قيمة أو مرجع إلى متغيّر تدفق يحتوي على القيمة. يمكن أن تكون الوحدات الزمنية المحددة على النحو التالي:
على سبيل المثال، قيمة |
<Id>
<Id>explicit-jti-value-here</Id> -or- <Id ref='variable-name-here'/> -or- <Id/>
إنشاء JWT باستخدام مطالبة jti المحدّدة عندما تكون القيمة النصية وسمة ref معًا فارغة، ستنشئ السياسة مقتطف jti يحتوي على معرّف فريد عالمي (UUID) عشوائي. إنّ المطالبة بمعرّف JWT (jti) معرّف فريد لـ JWT. لمزيد من المعلومات حول Jti، راجِع RFC7519.
تلقائي | لا ينطبق |
الحضور | اختياري |
النوع | سلسلة أو مرجع |
القيم الصالحة | سلسلة أو اسم متغيّر تدفق يحتوي على رقم التعريف. |
<IgnoreUnresolvedVariables>
<IgnoreUnresolvedVariables>true|false</IgnoreUnresolvedVariables>
يمكنك الضبط على "خطأ" إذا كنت تريد أن تعرض السياسة خطأً عند تحديد أي متغيّر مرجعي. في السياسة غير قابل للحل. الضبط على "صحيح" للتعامل مع أي متغيّر غير قابل للتحليل كسلسلة فارغة (فارغ).
تلقائي | خطأ |
الحضور | اختياري |
النوع | منطقي |
القيم الصالحة | صواب أم خطأ |
<Issuer>
<Issuer ref='variable-name-here'/> <Issuer>issuer-string-here</Issuer>
تنشئ السياسة JWT يحتوي على مطالبة بالاسم iss مع تحديد قيمة. إلى القيمة المحددة. مطالبة تحدّد هوية جهة إصدار JWT هذا هو أحد مجموعة مسجّلة من المطالبات المذكورة في RFC7519.
تلقائي | لا ينطبق |
الحضور | اختياري |
النوع | سلسلة أو مرجع |
القيم الصالحة | أي لون |
<NotBefore>
<!-- Specify an absolute time. --> <NotBefore>2017-08-14T11:00:21-07:00</NotBefore> -or- <!-- Specify a time relative to when the token is generated. --> <NotBefore>6h</NotBefore>
تحدّد هذه السياسة الوقت الذي يصبح فيه الرمز المميّز صالحًا. سيظل الرمز المميّز غير صالح حتى الوقت المحدَّد. يمكنك تحديد قيمة وقت مطلقة أو وقت بالنسبة إلى وقت إنشاء الرمز المميّز.
تلقائي | لا ينطبق |
الحضور | اختياري |
النوع | سلسلة |
القيم الصالحة | يُرجى مراجعة القسم أدناه. |
قيم زمنية صالحة لعنصر NotBefore للقيم الزمنية المطلقة
الاسم | التنسيق | مثال |
قابل للترتيب | yyyy-MM-dd'T'HH:mm:ss.SSSZ |
2017-08-14T11:00:21.269-0700 |
معيار RFC 1123 | EEE, dd MMM yyyy HH:mm:ss zzz |
الاثنين 14 آب (أغسطس) 2017 الساعة 11:00:21 بتوقيت المحيط الهادئ |
معيار RFC 850 | EEEE, dd-MMM-yy HH:mm:ss zzz |
الاثنين من 14 إلى 17 أغسطس عند الساعة 11:00:21 بتوقيت المحيط الهادئ |
ANCI-C | EEE MMM d HH:mm:ss yyyy |
الاثنين 14 أغسطس 11:00:21 2017 |
بالنسبة إلى القيم الزمنية النسبية، حدِّد عددًا صحيحًا وفترة زمنية، على سبيل المثال:
- 10 ث
- 60 دقيقة
- 12 ساعة
<OutputVariable>
<OutputVariable>jwt-variable</OutputVariable>
تحدِّد هذه السياسة مكان وضع JWT الذي تم إنشاؤه من خلال هذه السياسة. يتم وضعه تلقائيًا في
متغير التدفق jwt.POLICYNAME.generated_jwt
.
تلقائي | jwt.POLICYNAME.generated_jwt |
الحضور | اختياري |
النوع | سلسلة (اسم متغيّر التدفق) |
<PrivateKey/Id>
<PrivateKey> <Id ref="flow-variable-name-here"/> </PrivateKey> or <PrivateKey> <Id>your-id-value-here</Id> </PrivateKey>
تُحدِّد رقم تعريف المفتاح (kid) المطلوب تضمينه في عنوان JWT. الاستخدام فقط إذا كانت الخوارزمية هي RS256/RS384/RS512 أو PS256/PS384/PS512 أو ES256/ES384/ES512.
تلقائي | لا ينطبق |
الحضور | اختياري |
النوع | سلسلة |
القيم الصالحة | متغير تدفق أو سلسلة |
<PrivateKey/Password>
<PrivateKey> <Password ref="private.privatekey-password"/> </PrivateKey>
حدِّد كلمة المرور التي يجب أن تستخدمها السياسة لفك تشفير المفتاح الخاص، إذا لزم الأمر. يمكنك استخدام ref لتمرير المفتاح في متغير التدفق. الاستخدام فقط إذا كانت الخوارزمية هي RS256/RS384/RS512 أو PS256/PS384/PS512 أو ES256/ES384/ES512.
تلقائي | لا ينطبق |
الحضور | اختياري |
النوع | سلسلة |
القيم الصالحة |
يشير إلى مرجع متغيّر التدفق.
ملاحظة: يجب تحديد متغيّر تدفق. سيتم رفض Edge على أنّه غير صالح
تهيئة السياسة التي يتم فيها تحديد كلمة المرور في نص عادي. متغيّر التدفق
يجب أن يحتوي على البادئة "private". على سبيل المثال: |
<PrivateKey/Value>
<PrivateKey> <Value ref="private.variable-name-here"/> </PrivateKey>
تحدّد هذه السياسة مفتاحًا خاصًا بترميز PEM يُستخدم لتوقيع JWT. استخدم سمة ref لتمرير في متغير التدفق. للاستخدام فقط عندما تكون الخوارزمية هي RS256/RS384/RS512، PS256/PS384/PS512 أو ES256/ES384/ES512.
تلقائي | لا ينطبق |
الحضور | مطلوب لإنشاء JWT باستخدام خوارزمية RS256. |
النوع | سلسلة |
القيم الصالحة |
متغيّر تدفق يحتوي على سلسلة تمثّل قيمة مفتاح خاص بترميز RSA بترميز PEM.
ملاحظة: يجب أن يتضمّن متغيّر التدفق البادئة "private". على سبيل المثال:
|
<SecretKey/Id>
<SecretKey> <Id ref="flow-variable-name-here"/> </SecretKey> or <SecretKey> <Id>your-id-value-here</Id> </SecretKey>
تحدّد هذه السياسة معرّف المفتاح (kid) المطلوب تضمينه في عنوان JWT الخاص بـ JWT الموقَّع باستخدام رمز HMAC. للخوارزمية. للاستخدام فقط إذا كانت الخوارزمية هي واحدة من HS256/HS384/HS512.
تلقائي | لا ينطبق |
الحضور | اختياري |
النوع | سلسلة |
القيم الصالحة | متغير تدفق أو سلسلة |
<SecretKey/Value>
<SecretKey> <Value ref="private.your-variable-name"/> </SecretKey>
يوفر المفتاح السري المستخدم للتحقق من الرموز المميزة أو توقيعها باستخدام خوارزمية HMAC. الاستخدام فقط إذا كانت الخوارزمية ضمن HS256/HS384/HS512. استخدام السمة ref لتمرير المفتاح في متغير التدفق.
تفرض Edge حدًا أدنى لقوة المفتاح لخوارزميات HS256/HS384/HS512. الحد الأدنى لطول المفتاح يبلغ الحد الأقصى لحجم الملف في بروتوكول HS256 32 بايت، أمّا بالنسبة إلى HS384، فيبلغ 48 بايت، أمّا بالنسبة إلى HS512، فيبلغ 64 بايت. يؤدي استخدام مفتاح بقوة أقل إلى حدوث خطأ في بيئة التشغيل.
تلقائي | لا ينطبق |
الحضور | مطلوب لخوارزميات HMAC. |
النوع | سلسلة |
القيم الصالحة |
يشير هذا المصطلح إلى متغيّر تدفق يشير إلى سلسلة.
ملاحظة: في حال كان متغيّر التدفق، يجب أن يتضمّن البادئة "خاص". بالنسبة
مثال: |
<Subject>
<Subject>subject-string-here</Subject>
<Subject ref="flow_variable" />
على سبيل المثال:
<Subject ref="apigee.developer.email"/>
تنشئ السياسة JWT يحتوي على مطالبة sub، يتم ضبطها على القيمة المحدّدة هذه القيمة تحدد أو تصدر بيانًا حول موضوع JWT. هذا هو أحد مجموعة عادية من المطالبات المذكورة في RFC7519.
تلقائي | لا ينطبق |
الحضور | اختياري |
النوع | سلسلة |
القيم الصالحة | يشير ذلك المصطلح إلى أي قيمة تحدِّد موضوعًا معيّنًا بشكل فريد أو متغيّر تدفق يشير إلى قيمة. |
متغيّرات التدفق
لا تضبط سياسة إنشاء JWT متغيّرات التدفق.
مرجع الخطأ
يصف هذا القسم رموز الأخطاء ورسائل الخطأ التي يتم عرضها ومتغيرات الأخطاء التي تضبطها Edge عندما تؤدي هذه السياسة إلى ظهور خطأ. هذه المعلومات مهمة لمعرفة ما إذا كنت تعمل على تطوير قواعد للأخطاء للتعامل معها. لمزيد من المعلومات، يمكنك الاطّلاع على المعلومات التي يجب معرفتها عن الأخطاء المتعلقة بالسياسات وأخطاء المعالجة.
أخطاء في وقت التشغيل
يمكن أن تحدث هذه الأخطاء عند تنفيذ السياسة.
رمز الخطأ | رموز حالة HTTP | يحدث عند |
---|---|---|
steps.jwt.AlgorithmInTokenNotPresentInConfiguration |
401 | يحدث ذلك عندما تتضمّن سياسة إثبات الهوية خوارزميات متعدّدة. |
steps.jwt.AlgorithmMismatch |
401 | الخوارزمية المحدّدة في سياسة الإنشاء لا تتطابق مع الخوارزمية المتوقعة في سياسة إثبات الملكية. يجب أن تتطابق الخوارزميات المحدّدة. |
steps.jwt.FailedToDecode |
401 | تعذَّر على السياسة فك ترميز JWT. من المحتمل أن يكون JWT تالفًا. |
steps.jwt.GenerationFailed |
401 | تعذَّر على السياسة إنشاء رمز JWT. |
steps.jwt.InsufficientKeyLength |
401 | بالنسبة إلى مفتاح أقل من 32 بايت لخوارزمية HS256، وأقل من 48 بايت لخوارزمية HS386، وأقل من 64 بايت لخوارزمية HS512. |
steps.jwt.InvalidClaim |
401 | بسبب عدم تطابق مطالبة أو مطالبة، أو عدم تطابق العنوان أو العنوان. |
steps.jwt.InvalidCurve |
401 | المنحنى المحدد بالمفتاح غير صالح لخوارزمية المنحنى البيضاوي. |
steps.jwt.InvalidJsonFormat |
401 | تم العثور على تنسيق JSON غير صالح في الرأس أو الحمولة. |
steps.jwt.InvalidToken |
401 | يحدث هذا الخطأ عند تعذُّر التحقُّق من توقيع JWT. |
steps.jwt.JwtAudienceMismatch |
401 | تعذّرت المطالبة بالجمهور عند إثبات صحة الرمز المميّز. |
steps.jwt.JwtIssuerMismatch |
401 | تعذّرت المطالبة من جهة الإصدار بإثبات ملكية الرمز المميّز. |
steps.jwt.JwtSubjectMismatch |
401 | تعذّرت المطالبة بالموضوع عند إثبات ملكية الرمز المميّز. |
steps.jwt.KeyIdMissing |
401 | تستخدم سياسة "التحقّق" رمز JWKS كمصدر للمفاتيح العامة، ولكنّ سياسة JWT الموقَّعة لا
تتضمّن السمة kid في العنوان. |
steps.jwt.KeyParsingFailed |
401 | تعذّر تحليل المفتاح العام من المعلومات الأساسية المحددة. |
steps.jwt.NoAlgorithmFoundInHeader |
401 | يحدث عندما لا يحتوي JWT على عنوان خوارزمية. |
steps.jwt.NoMatchingPublicKey |
401 | تستخدم سياسة "التحقّق" مفتاح JWKS كمصدر للمفاتيح العامة، ولكن لا يتم إدراج kid
في JWT الموقَّع في JWKS. |
steps.jwt.SigningFailed |
401 | في CREATEJWT لمفتاح أقل من الحد الأدنى للحجم لخوارزميات HS384 أو HS512 |
steps.jwt.TokenExpired |
401 | تحاول السياسة التحقّق من رمز مميّز منتهي الصلاحية. |
steps.jwt.TokenNotYetValid |
401 | الرمز المميز غير صالح بعد. |
steps.jwt.UnhandledCriticalHeader |
401 | إنّ العنوان الذي عثرت عليه سياسة "التحقق من JWT" ضمن عنوان crit غير
مدرَج في KnownHeaders . |
steps.jwt.UnknownException |
401 | حدث استثناء غير معروف. |
steps.jwt.WrongKeyType |
401 | تم تحديد نوع خاطئ للمفتاح. على سبيل المثال، إذا حدّدت مفتاح RSA لخوارزمية "منحنى بيضاوي" أو مفتاح منحنى لخوارزمية RSA. |
أخطاء النشر
يمكن أن تحدث هذه الأخطاء عند نشر خادم وكيل يحتوي على هذه السياسة.
اسم الخطأ | السبب | إصلاح |
---|---|---|
InvalidNameForAdditionalClaim |
ستتعذّر عملية النشر إذا كانت المطالبة المستخدَمة في العنصر الفرعي <Claim>
في العنصر <AdditionalClaims> هي أحد الأسماء المسجّلة التالية:
kid أو iss أو sub أو aud أو iat
أو exp أو nbf أو jti .
|
build |
InvalidTypeForAdditionalClaim |
إذا كانت المطالبة المستخدَمة في العنصر الفرعي <Claim> في العنصر <AdditionalClaims> ليست من النوع string أو number أو boolean أو map ، سيتعذّر النشر.
|
build |
MissingNameForAdditionalClaim |
إذا لم يتم تحديد اسم المطالبة في العنصر الفرعي <Claim> في العنصر <AdditionalClaims> ، سيتعذّر النشر.
|
build |
InvalidNameForAdditionalHeader |
يحدث هذا الخطأ إذا كان اسم المطالبة المستخدَم في العنصر الفرعي <Claim> في العنصر <AdditionalClaims> هو alg أو typ .
|
build |
InvalidTypeForAdditionalHeader |
إذا كان نوع المطالبة المستخدَم في العنصر الفرعي <Claim> في العنصر <AdditionalClaims> ليس من النوع string أو number أو boolean أو map ، سيتعذّر النشر.
|
build |
InvalidValueOfArrayAttribute |
يحدث هذا الخطأ عندما لا يتم ضبط قيمة سمة الصفيف في العنصر الفرعي <Claim> للعنصر <AdditionalClaims> على true أو false .
|
build |
InvalidConfigurationForActionAndAlgorithm |
إذا تم استخدام العنصر <PrivateKey> مع خوارزميات HS Family أو
العنصر <SecretKey> مع خوارزميات RSA Family،
سيتعذّر إجراء عملية النشر.
|
build |
InvalidValueForElement |
وإذا لم تكن القيمة المحدّدة في العنصر <Algorithm> قيمة مسموح بها،
سيتعذّر إتمام عملية النشر.
|
build |
MissingConfigurationElement |
سيحدث هذا الخطأ إذا لم يتم استخدام العنصر <PrivateKey> مع خوارزميات مجموعة RSA أو إذا لم يتم استخدام العنصر <SecretKey> مع خوارزميات HS Family.
|
build |
InvalidKeyConfiguration |
إذا لم يتم تحديد العنصر الفرعي <Value> في العنصرَين <PrivateKey>
أو <SecretKey> ، سيتعذّر النشر.
|
build |
EmptyElementForKeyConfiguration |
إذا كانت سمة المرجع للعنصر الفرعي <Value> للعناصر <PrivateKey>
أو <SecretKey> فارغة أو غير محدّدة، سيتعذّر إتمام عملية النشر.
|
build |
InvalidVariableNameForSecret |
يحدث هذا الخطأ إذا كان اسم متغيّر التدفق المحدّد في السمة ref للعنصر الفرعي <Value> للعنصر <PrivateKey> أو العنصر <SecretKey> لا يحتوي على البادئة الخاصة (private.) .
|
build |
InvalidSecretInConfig |
يحدث هذا الخطأ إذا كان العنصر الفرعي <Value> للعنصر <PrivateKey> أو <SecretKey> لا يحتوي على البادئة الخاصة (private.) .
|
build |
InvalidTimeFormat |
وإذا كانت القيمة المحدّدة في العنصر <NotBefore> لا تستخدم
تنسيقًا متوافقًا، لن تنجح عملية النشر.
|
build |
متغيّرات الأخطاء
يتم ضبط هذه المتغيّرات عند حدوث خطأ في بيئة التشغيل. يمكنك الاطّلاع على مقالة ما تحتاج إلى معرفته للحصول على مزيد من المعلومات. حول أخطاء السياسة.
المتغيرات | المكان | مثال |
---|---|---|
fault.name="fault_name" |
fault_name هو اسم الخطأ، كما هو موضَّح في جدول أخطاء وقت التشغيل أعلاه. اسم الخطأ هو الجزء الأخير من رمز الخطأ. | fault.name Matches "TokenExpired" |
JWT.failed |
تضبط جميع سياسات JWT المتغيّر نفسه في حال حدوث عطل. | JWT.failed = true |
مثال على استجابة الخطأ
لمعالجة الخطأ، أفضل ممارسة هي رصد الجزء errorcode
من الخطأ
الاستجابة. لا تعتمد على النص في faultstring
، لأنه قد يتغير.
مثال على قاعدة الخطأ
<FaultRules> <FaultRule name="JWT Policy Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "TokenExpired")</Condition> </Step> <Condition>JWT.failed=true</Condition> </FaultRule> </FaultRules>