إضافة الاعتمادات القابلة للتحقق

ملخص: استخدم بيانات الاعتماد القابلة للتحقق لمنح الوصول إلى المجموعات والشارات في Discourse.

:link: GitHub: https://github.com/coopcreds/discourse-verifiable-credentials
:arrow_right: التثبيت: اتبع دليل تثبيت المكون الإضافي.

عرض توضيحي

يمكنك تجربة هذا المكون الإضافي بنفسك باتباع الخطوات الموجودة في الرابط أدناه. سيتم إصدار “بيانات اعتماد تعاونية” تجريبية لك، والتي يمكنك بعد ذلك استخدامها للوصول إلى مجموعة ومنح شارة في مثيل Discourse الخاص ببيانات الاعتماد التعاونية. لاحظ أن بيانات الاعتماد هي لأغراض الاختبار فقط وقد يتم إلغاؤها دون إشعار.

https://coopcreds.com/test/

مقدمو الخدمة

يدعم المكون الإضافي حاليًا مقدمي بيانات الاعتماد القابلة للتحقق التالية.

مقدم الخدمة نوع التحقق مدعوم
MATTR OIDC نعم
MATTR Callback نعم
Verifiable Credentials Ltd - جزئيًا

تم بناء المكون الإضافي لدعم أي مقدم خدمة، ولكن إضافة مقدمي خدمات إضافيين يتطلب بعض العمل التنفيذي. إذا كنت ترغب في إضافة مقدم خدمة آخر، فيرجى التواصل معنا.

التكوين

هناك حاجة إلى بعض الفهم لبيانات الاعتماد القابلة للتحقق لاستخدام هذا المكون الإضافي. لقد قام MATTR، وهو مقدم الخدمة الرئيسي الذي يدعمه المكون الإضافي حاليًا، بإنشاء بعض مقاطع الفيديو ذات الصلة بخيارات المكون الإضافي الحالية:


يسمح لك هذا المكون الإضافي بالتحقق من بيانات اعتماد المستخدم لمنحه الوصول إلى مجموعة (مجموعات) أو شارة (شارات) في Discourse. تستعرض الأقسام التالية التكوين الخاص بالتحقق والمجموعات والشارات. نظرًا لأن المكون الإضافي يدعم MATTR حاليًا فقط، فإن التعليمات تفترض أنك تستخدم MATTR.

مدقق

يعتمد نوع تكوين المدقق الذي تستخدمه على نوع النظام الذي تتكامل معه. إذا كنت أنت المدقق وتقوم بإعداد Discourse تتحكم فيه، فقد ترغب في استخدام التحقق بالرد. إذا كنت جزءًا من شبكة تعتمد على مدقق واحد، أي أنك “طرف معتمد”، فقد ترغب في استخدام التحقق من OIDC.

OIDC

إذا كنت تستخدم مدقق OIDC (على سبيل المثال، أنت تستخدم تكامل MATTR Auth0)، فأنت بحاجة إلى تعيين إعدادات الموقع التالية:

  • verifiable credentials oidc: true
  • verifiable credentials mattr verifier id: معرف (وليس DID) لمدقق OIDC الخاص بك
  • verifiable credentials mattr client id: معرف العميل لتطبيق عميل OIDC الخاص بـ Discourse الخاص بك (لاحظ أن هذا ليس معرف عميل tenant الخاص بـ MATTR الخاص بك)
  • verifiable credentials mattr client secret: سر العميل لتطبيق عميل OIDC الخاص بـ Discourse الخاص بك (لاحظ أن هذا ليس سر عميل tenant الخاص بـ MATTR الخاص بك)

الرد

إذا كنت تستخدم التحقق القياسي بالرد، فأنت بحاجة إلى تعيين إعدادات الموقع التالية:

  • verifiable credentials oidc: false
  • verifiable credentials mattr client id: معرف العميل لـ tenant MATTR حيث يتم استضافة المدقق
  • verifiable credentials mattr client secret: سر العميل لـ tenant MATTR حيث يتم استضافة المدقق
  • verifiable credentials mattr messaging did: DID باستخدام keyType من ed25519

المجموعة

يمكنك منح الوصول إلى المجموعات باستخدام المطالبات في بيانات الاعتماد التي تم التحقق منها. هذا يعني أنه يمكنك منح الوصول بشكل انتقائي إلى مجموعات مختلفة في Discourse الخاص بك اعتمادًا على المطالبات في بيانات اعتماد المستخدم. لإعداد مجموعة للوصول إليها عبر بيانات الاعتماد القابلة للتحقق، انتقل إلى “إدارة” > “العضوية” وقم بتعيين ما يلي:

  • Allow users to join by verifiable credentials: true

  • Show verifiable credentials button on this group to non members: (واضح بذاته)

  • Redirect users to url upon verification.: على سبيل المثال، إذا كنت تستخدم بيانات اعتماد لمنح المستخدم حق الوصول إلى فئة يمكن للمجموعة الوصول إليها، فاستخدم هذا الحقل لإرسال المستخدم إلى الفئة عند اكتمال عملية التحقق.

  • Cumulative list of claim(s) that grants access to this group. Format: key:value.: لاحظ أن هذه القائمة تراكمية، مما يعني أن المستخدم سيحتاج إلى جميع المطالبات الموجودة في بيانات اعتماده للوصول. مثال

    https://coopcreds.com/cooperativeMembershipType:member
    https://coopcreds.com/cooperative:pavilion
    

الرد

إذا كنت تستخدم طريقة التحقق بالرد، فيجب عليك أيضًا تعيين Identifier of credential that grants access to this group إلى معرف قالب العرض الذي تريد استخدامه لهذه المجموعة. يمكنك استخدام قوالب عرض مختلفة لمجموعات مختلفة.

الشارة

يمكنك منح شارات للمستخدمين باستخدام المطالبات في بيانات الاعتماد التي تم التحقق منها. حاليًا، يمكنك القيام بذلك فقط باستخدام مكون الرأس (انظر أدناه). إعداد الموقع للاستخدام هو verifiable credentials header badges والذي يتطلب إدخالات بهذا التنسيق:

badge_id~~claim:value

على سبيل المثال

34~~https://coopcreds.com/cooperativeMembershipType:member

يمكنك الحصول على معرف الشارة من عنوان URL لصفحة الشارة، على سبيل المثال

/badges/9/autobiographer ## معرف الشارة هو 9

الرأس

يمكنك استخدام قائمة منسدلة الرأس في المكون الإضافي لمنح المستخدمين حق الوصول إلى مجموعات متعددة مرة واحدة، أو كل من الشارات والمجموعات في نفس الوقت. الإعدادات ذات الصلة هي:

  • verifiable credentials header: true
  • verifiable credentials header groups: قائمة بأسماء المجموعات (يجب أن تكون كل مجموعة قد تم تكوينها بالفعل؛ انظر أعلاه)
  • verifiable credentials header badges: انظر أعلاه
  • verifiable credentials header info url: عنوان URL لرابط “اعرف المزيد” في الجزء السفلي الأيمن من القائمة المنسدلة.

سيظهر أيقونة الرأس إذا لم يكن المستخدم عضوًا في مجموعة مدرجة في عرض الرأس، أو لم يتم منحه شارة مدرجة في عرض الرأس. عندما ينقر المستخدم عليها، ستعرض الموارد التي يمكنه الوصول إليها عن طريق التحقق من بيانات اعتماده.

الدعم

تم بناء هذا المكون الإضافي كجزء من مشروع بيانات الاعتماد التعاونية، والذي تدعمه ESSIF Lab الممولة من الاتحاد الأوروبي. سيتم استخدامه في الإنتاج من قبل العديد من الأطراف المعتمدة في شبكة بيانات الاعتماد التعاونية عند إطلاقها لاحقًا هذا العام.

image|690x98,50% image|200x50

للمتابعة

  • إضافة دعم الشارات الخاصة بالمجموعة.
  • دعم مصادقة المستخدم عبر بيانات الاعتماد القابلة للتحقق.
  • إضافة مقدمي خدمات إضافيين مثل Evernym و Trinsic.
16 إعجابًا

هذه ملاحظة تقنية بحتة، ولكن إذا كنت مهتمًا بالنقاش حول المعايير المتعلقة بما يفعله هذا المكون الإضافي (جزئيًا) (أي دمج OIDC مع بيانات الاعتماد القابلة للتحقق)، فإن هذا الموضوع الأخير من القائمة البريدية لمجموعة W3C CCG هو قراءة جيدة (خاصة المناقشة بين Manu و Tobias (CTO of MATTR)).

(أتمنى لو كانت مثل هذه المناقشات على مثيل حواري…)

6 إعجابات

هل أفهم بشكل صحيح أن هذه الإضافة تعمل كمستهلك فقط؟

أتساءل عما إذا كان يمكن لمثيل واحد من Discourse أن يكون مزودًا للمصادقة لمثيل Discourse مختلف.

نعم هذا صحيح.

لا، تحتاج إلى موفر خارجي، على سبيل المثال، موفر يستخدم https://mattr.global/.

إعجاب واحد (1)