Product-apim: مصادقة JWT لا تعمل بسبب اختيار شهادة غير صالح من مخزن الثقة العميل

تم إنشاؤها على ١٥ نوفمبر ٢٠١٩  ·  10تعليقات  ·  مصدر: wso2/product-apim

قمنا بإعداد اسم مضيف مخصص بشهادة مناسبة تم إنشاؤها من سلطة CA موثوقة.

يمكنني إنشاء رمز JWT بنجاح من بوابة API. خاصية الرأس "x5t" هي بصمة SHA-1.

في دليل النظام /repository/resources/security هناك نوعان من JKS.

  • wso2carbon.jks - مع الاسم المستعار لزوج المفاتيح الخاص / العام المسمى wso2carbon
  • client-truststore.jks - بالاسم المستعار للشهادة بالاسم wso2carbon

كلا الإدخالين wso2carbon لهما نفس بصمة الإصبع المحددة في خاصية رأس JWT. ومع ذلك ، فإن استجابة استدعاء واجهة برمجة التطبيقات هي Invalid JWT token. Signature verification failed.

هل هناك أي تكوين قد فاتنا أم أنه خطأ؟

Affecte3.0.0 TypQuestion

ال 10 كومينتر

ما هو إصدار مدير API الذي تستخدمه؟

tmkasun 3.0.0. AFAIK باستخدام رمز JWT بدلاً من Oauth2 هي ميزة جديدة تم تقديمها. أنا أتحدث عن "نوع الرمز المميز"

image

في بيئتنا ، عدنا مرة أخرى إلى نوع الرمز المميز OAUTH ، والذي يعمل كما هو متوقع. نوع JWT Token هو النوع الذي واجهتنا مشاكل معه.

أهلا،

نواجه أيضًا نفس المشكلة ، باستخدام إصدار v3.1.0-m2.
نحصل على الخطأ أدناه بعد إنشاء رمز JWT من التطبيق واستدعاء api

<ams:fault xmlns:ams="http://wso2.org/apimanager/security">
    <ams:code>900901</ams:code>
    <ams:message>Invalid Credentials</ams:message>
    <ams:description>Invalid JWT token. Signature verification failed.. Make sure you have provided the correct security credentials</ams:description>
</ams:fault>

استدعاء لاحق اطبع هذا السجل:

TID: [-1234] [] [2019-12-05 15:03:05,267] ERROR {org.wso2.carbon.apimgt.gateway.handlers.security.jwt.JWTValidator} - Invalid JWT token. XXXXXfVgQW9bdmg
TID: [-1234] [] [2019-12-05 15:03:05,270]  WARN {org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler} - API authentication failure due to Invalid Credentials

كما ذكر OP ، يعمل OAuth بشكل جيد. مجرد وجود مشكلة مع JWT.

أي تعديل حدث في هذه القضية؟
شكرا.

آه ، لا بأس.

لقد قمت بحل هذا باتباع هذا الرابط من الوثائق:
https://apim.docs.wso2.com/en/latest/Learn/APISecurity/OAuth2DeepDive/AccessTokenTypes/jwt-tokens/#importing -the-public-Certificate-into-the-client-trust-store

شكرا.

يبدو أن المشكلة ترجع إلى اسم مستعار محدد gateway_certificate_alias - هذا ما وجدته بالفعل في شفرة المصدر. سأختبرها ، شكرًا لك

سلام،
ما زلت أواجه مشكلة مماثلة لهذا.
أنا أستخدم IDP لجهة خارجية بصفته مدير المفاتيح (IDP القائم على keycloak)
لقد قمت باستيراد الشهادة العامة إلى Truststore تحت gateway_certificate_alias .

ومع ذلك ، في مستندات مدير المفاتيح التابعة لجهة خارجية ، ينص قسم "توسيع معالج التحقق من صحة المفتاح" على أن التحقق من صحة الرمز يتم في طريقة getTokenMetaData () ، والتي لم يتم استدعاؤها مطلقًا في الإعداد الخاص بي. أحتاج إلى هذه الطريقة ليتم استدعائي حتى أتمكن من IDP الخاص بي من التحقق من صحة الرمز المميز.

أنا أيضا أواجه نفس المشكلة. نحن نستخدم APIm 3.1.0 و IS-KM 5.10.0. لقد قمنا باستيراد شهادة IS-KM إلى APIm باستخدام gateway_certificate_alias وأعدنا التشغيل ولكن مع ذلك ، لم يتم حل المشكلة.

مرحبًا ، لقد نجحت في العمل ، في حالتي ، اضطررت إلى استيراد الشهادة العامة للمملكة في RH-SSO التي وقعت رمز jwt تحت اسم مستعار يتوافق مع KID الخاص بها.

الخبر السار هو أن WSO2 APIM 3.2.0 ، الإصدار الأحدث في وقت كتابة هذا التقرير ، يدعم إضافة keymanager عبر واجهة المسؤول الخاصة به ، مما يجعل العملية أسهل ، ولكن لا يزال يتعين علي استيراد الشهادة كما ذكرت أعلاه.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات