Skip to content
  • There are no suggestions because the search field is empty.

نطاقات ومطالب OpenID Connect

ستتجاوز هذه المقالة الأمور المعتادة من “افعل هذا، افعل ذاك” الموجودة في العديد من مقالات قاعدة المعرفة. بل ستحاول شرح النطاق المخصص الذي يستخدمه 6clicks لمطابقة المستخدم مع الأدوار داخل 6clicks.

سيساعد ذلك في شرح استخدام مربع الاختيار ضمن إعداد SSO المسمى، “تضمين نطاق "groups" في طلب المصادقة إلى التفويض”، ومتى يجب تحديده.

ملاحظة: إذا كنت تستخدم خادم Okta Org - مما يعني أن Issuer URI الذي قمت بتوفيره هو https://{yourOktaDomain} - فعليك تحديد مربع الاختيار وإرسال نطاق ‘groups’ دائماً.

يُعتبر OpenID Connect (OIDC) بروتوكول مصادقة مبني على OAuth 2.0، مما يسمح للعملاء بالتحقق من هوية المستخدمين استناداً إلى عملية المصادقة التي يجريها مزود الهوية (IdP). ومن بين مزودي الهوية الشائعين نجد Okta و Azure AD (Entra ID) و Ping و One Login و ForgeRock، وهناك العديد من المزودين الآخرين مثل AWS و Google و SAP.

في OIDC، يُعد "النطاق" آلية تُستخدم لطلب أجزاء محددة من المعلومات المعروفة بـ "المطالب" عن المستخدم الذي تم مصادقته. فيما يلي مثال لبعض نطاقات OpenID Connect الشائعة. تستخدم 6clicks كلًا من هذه النطاقات:

  1. openid: هذا هو النطاق الأساسي الذي يجب تضمينه في كل طلب OIDC للإشارة إلى أن العميل يستخدم OpenID Connect. يحتوي رمز الهوية الناتج على مطالب هوية أساسية عن المستخدم.

  2. profile: يطلب هذا النطاق الوصول إلى مطالب الملف الشخصي الافتراضية للمستخدم، والتي قد تتضمن معلومات مثل الاسم واسم المستخدم المفضل والاسم الأول والأخير وصورة الملف الشخصي، من بين أمور أخرى.

  3. email: يطلب هذا النطاق الوصول إلى عنوان البريد الإلكتروني للمستخدم.

بالإضافة إلى هذه النطاقات القياسية في OIDC، من الممكن تعريف نطاقات مخصصة لطلب مطالب إضافية خاصة بتطبيقك. لدى 6clicks مطالبة مخصصة تُدعى ‘6clicksRoles’ وتتطلب قيمة من الشكل ‘6clicks-roles-<rolename>’. يمكن لكل مستخدم أن يكون لديه العديد من قيم الأدوار، وهذه القيم تتطابق مع الأدوار المُعدة في 6clicks.

KB1

مثال على الأدوار داخل 6clicks.

KB 2

رمز هوية المستخدم الذي يُرسل بواسطة مزود الهوية مع المطالبة المخصصة التي تحتوي على دورين.

للأسف، فيما يتعلق بالاتساق، لكل مزود هوية طريقة مختلفة قليلاً في تنفيذ كيفية عمل النطاقات والمطالب المخصصة. على سبيل المثال:

  • يضيف خادم التفويض الخاص بـ Okta Org جميع المطالب المخصصة إلى نطاق ‘groups’. وهذا يعني أنه يجب عليك تحديد مربع الاختيار ‘تضمين نطاق "groups" في طلب المصادقة إلى التفويض’ لضمان تضمين نطاق المجموعات، مع مطالبة 6clicksRoles المضمنة، في رمز الهوية.

  • يتيح خادم التفويض المخصص لـ Okta إمكانية إضافة مطالبة مخصصة إلى نطاق قائم. هذه هي الطريقة التي عرضناها في مقال قاعدة المعرفة. ومع ذلك، فمن الممكن أيضًا إنشاء نطاق مخصص يُدعى ‘groups’ وإرفاق المطالبة المخصصة 6clicksRoles بهذا النطاق. إذا اخترت استخدام هذه الطريقة، فسيكون من الضروري تضمين نطاق ‘groups’ عن طريق تحديد مربع “تضمين نطاق "groups" في طلب المصادقة إلى التفويض”.

باختصار، لا يهم كيفية اختيارك لجلب المطالبة المخصصة، 6clicksRoles، مع القيم المقابلة في رمز الهوية لكل مستخدم، طالما أنها موجودة.