الانتقال إلى المحتوى
الوثائق · مساحات العمل وجهات الإصدار والرموز المميزة

المفاهيم

بضع أفكار تشرح كل شيء تقريبًا في Usher: أين توجد الأشياء، ومن يصدر الرموز المميزة، وأين يسجّل الأشخاص الدخول، وكم تدوم صلاحية كل رمز.

مساحات العمل والمشاريع والبيئات

  • مساحة العمل هي فريقك أو شركتك في Usher Console. ويتبعها أعضاؤها وسجل التدقيق الخاص بها.
  • المشروع منتج واحد: تطبيق الويب لديك، أو بوابة للشركاء. ويمكن لمساحة العمل أن تضم مشاريع كثيرة.
  • البيئة نسخة عاملة واحدة من مشروع، وعادةً ما تكون هناك بيئة التطوير وبيئة الإنتاج. وفي البيئات يقيم الأشخاص والتطبيقات والمفاتيح والإعدادات.

مساحة العمل · Acme Ltd

مشروع · الويب

  • development · wise-otter-42
  • production · acme

مشروع · بوابة الشركاء

  • development · calm-heron-17
  • production · acme-partners
كل بيئة هي جهة إصدار مستقلة، لها مستخدموها ومفاتيحها و Lobby الخاص بها.

لا تتشارك البيئات في أي شيء ذي أهمية. لكلٍّ منها مخطط Postgres خاص بها، ومفاتيح توقيع خاصة بها، وأسرار خاصة بها مختومة بمفتاح بياناتها الخاص. فالشخص الذي ينشئ حسابًا في بيئة التطوير لا وجود له في بيئة الإنتاج، ولا يمكن أبدًا التحقق من رمز صادر عن إحداهما بمفاتيح الأخرى.

يمكن لمسؤول مساحة العمل حذف مشروع من آخر صفحة «نظرة عامة» الخاصة به، بعد كتابة اسمه. وتُحذف كل بيئة فيه دفعة واحدة: أشخاصها وتطبيقاتها ومفاتيحها وإعداداتها، وكل جلسة ورمز مميز أصدرته. وتتوقف عناوينه عن الاستجابة ولا تُمنح لأحد بعد ذلك أبدًا، فلا يمكن لمشروع شخص آخر أن يخدع تطبيقًا لا يزال يثق بأحدها.

جهات الإصدار

كل بيئة هي جهة إصدار (issuer) مستقلة في OpenID Connect، على مضيف خاص بها في نطاق المستأجرين:

جهة الإصدار
https://<handle>.usherid.com
  • لبيئات الإنتاج اسم مختصر (handle) تختاره أنت: من 3 إلى 32 حرفًا من الأحرف اللاتينية الصغيرة والأرقام والشرطات غير المتتالية، مثل اسم شركتك. ولا يُمنح الاسم المستخدم مرة لأحد بعد ذلك أبدًا.
  • تحصل بيئات التطوير على اسم مختصر عشوائي، مثل wise-otter-42، لن يظنه أحد علامة تجارية.

تُحدَّد جهة الإصدار عند إنشاء البيئة ولا تتغير، لأن كل رمز توقّعه يذكرها في iss، وكل تطبيق يثق بها يتحقق من هذه القيمة.

نطاق المستأجرين نطاق قابل للتسجيل يختلف عن نطاق Usher نفسه (usheridentity.com)، لذا لا تكون صفحات تسجيل الدخول الخاصة بأي عميل أبدًا على الموقع نفسه (same-site) مع Usher Console، وملفات تعريف الارتباط مقصورة على المضيف: يرسل المتصفح ملفات تعريف الارتباط الخاصة ببيئة ما إلى تلك البيئة وحدها.

Lobby

يُعد Lobby صفحة تسجيل الدخول التي تستضيفها كل بيئة لدى جهة إصدارها. يرسل تطبيقك الأشخاص إليه، فيسجّل دخولهم ثم يعيدهم.

  • يذكر دائمًا التطبيق الذي يتجه إليه الشخص، في شارة «المتابعة إلى».
  • لا يعرض إلا الطرق التي تسمح بها البيئة: مفاتيح المرور، والرموز عبر البريد الإلكتروني، والروابط السحرية، والحسابات الاجتماعية (Google و GitHub و Microsoft و Apple)، وكلمات السر.
  • يمكنه أن يشترط عاملًا ثانيًا: تطبيق مصادقة (مع رموز احتياطية) أو مفتاح مرور.
  • يمكن أن يكون مفتوحًا للجميع، أو مقصورًا على قائمة ضيوف من العناوين والنطاقات.

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

حسابات Usher

لمعظم البيئات مستخدموها الخاصون. أما حسابات Usher فمختلفة: حساب واحد يسجّل دخول الشخص إلى كل تطبيق يتيح «المتابعة باستخدام Usher». ويدير الأشخاص حساباتهم على account.usheridentity.com.

الرموز المميزة ومدد صلاحيتها

الرمز المميزالافتراضييمكن ضبطه علىالغرض منه
رمز التفويض5 دقائقثابتيُستبدل مرة واحدة برموز مميزة. يُستخدم مرة واحدة.
رمز الهوية (ID token)10 دقائقمن 1 إلى 60 دقيقةيُخبر تطبيقك بمن سجّل الدخول. ليس لاستدعاء واجهات API.
رمز الوصول10 دقائقمن 1 إلى 60 دقيقةيُرسَل إلى واجهة API الخاصة بك، التي تتحقق منه.
رمز التحديث30 يومًامن 1 إلى 90 يومًايحصل على رموز وصول جديدة. يُستبدل بآخر جديد مع كل استخدام. يتطلب offline_access.
رمز وصول الآلات15 دقيقةمن 1 إلى 60 دقيقةلـ client_credentials: خوادم لا يقف وراءها شخص.
رمز عبر البريد الإلكتروني، رابط سحري10 دقائقثابتتسجيل دخول واحد. يسمح الرمز بثلاث محاولات.

للجلسات في Lobby مدد صلاحية أيضًا: تنتهي الجلسة بعد 7 أيام دون استخدام (من 1 إلى 30)، وبعد 30 يومًا في المجمل (من 1 إلى 90). ويتطلب تغيير أي شيء حساس، مثل عنوان البريد الإلكتروني، تسجيل دخول خلال آخر 10 دقائق.

مفاتيح التوقيع

تُوقَّع الرموز المميزة باستخدام RS256 افتراضيًا، ويمكن للبيئة استخدام ES256 أو EdDSA بدلًا منه. وتُنشر المفاتيح العامة على jwks_uri الخاص بالبيئة، فتجلبها مكتباتك، وتلتقط المفاتيح الجديدة عند تدويرها.

النطاقات

النطاقما يتلقاه تطبيقك
openidمطلوب. رمز هوية يحمل sub الخاص بالشخص.
profileاسمه وصورته.
emailعنوان بريده الإلكتروني، وهل تم التحقق منه.
offline_accessرمز تحديث، ليبقى مسجّل الدخول.