تهيئة المستخدمين باستخدام SCIM
Configuring SCIM User Provisioning
يدعم ScribbleMaps بروتوكول SCIM 2.0 (System for Cross-domain Identity Management) لتهيئة المستخدمين وإلغاء تهيئتهم تلقائيًا. يتيح لك ذلك مزامنة المستخدمين تلقائيًا من موفر الهوية (IdP) الخاص بك إلى ScribbleMaps، مما يضمن بقاء عضوية الفريق متزامنة مع دليل مؤسستك.
تتوفر تهيئة SCIM في team.scribblemaps.com وهي مجانية تمامًا.
جدول المحتويات
- ما هو SCIM؟
- قبل أن تبدأ
- الخطوة 1: تمكين SCIM في ScribbleMaps
- الخطوة 2: توليد Bearer Token
- الخطوة 3: تهيئة موفر الهوية الخاص بك
- الخطوة 4: تعيين Default Product Assignment
- الخطوة 5: اختبار وتعيين المستخدمين
- أدلة خاصة بموفري الخدمة
- عمليات SCIM المدعومة
- إدارة دورة حياة المستخدم
- استكشاف الأخطاء وإصلاحها
ما هو SCIM؟
إن SCIM (System for Cross-domain Identity Management) هو معيار مفتوح يتيح لك تلقائيًا القيام بما يلي:
- تهيئة المستخدمين - إنشاء حسابات ScribbleMaps تلقائيًا عند تعيين المستخدمين في موفر الهوية (IdP) الخاص بك
- تحديث المستخدمين - الحفاظ على مزامنة معلومات المستخدم (الاسم، البريد الإلكتروني)
- إلغاء تهيئة المستخدمين - إلغاء تنشيط الحسابات تلقائيًا عند إزالة المستخدمين من موفر الهوية (IdP) الخاص بك
- إدارة الأدوار - تعيين المستخدمين لأدوار Admin أو Member عبر عضوية المجموعة
يعمل SCIM جنبًا إلى جنب مع SSO (SAML/OIDC) لتوفير إدارة كاملة لدورة حياة الهوية.
قبل أن تبدأ
- يجب أن تكون Team Owner لتهيئة SCIM
- تحتاج إلى الوصول إلى لوحة تحكم المسؤول الخاصة بموفر الهوية الخاص بك
- يجب أن يدعم موفر الهوية (IdP) الخاص بك بروتوكول SCIM 2.0 (Okta، وMicrosoft Entra ID، وOneLogin، وJumpCloud، إلخ.)
- نوصي بتهيئة SSO قبل SCIM للحصول على أفضل تجربة مستخدم
الخطوة 1: تمكين SCIM في ScribbleMaps
- سجل الدخول إلى team.scribblemaps.com
- انتقل إلى SCIM Provisioning (left side bar)
- قم بتبديل Enable SCIM إلى ON
ملاحظة: ستحتاج إلى توليد bearer token قبل تمكين SCIM بالكامل.
الخطوة 2: توليد Bearer Token
يقوم bearer token بمصادقة موفر الهوية الخاص بك مع ScribbleMaps.
- في صفحة إعدادات SCIM، انقر فوق Generate Token
- انسخ الرمز (token) على الفور واحفظه بشكل آمن
ملاحظات أمنية هامة:
- يتم عرض الرمز مرة واحدة فقط - إذا فقدته، فستحتاج إلى توليد رمز جديد
- عامل هذا الرمز ككلمة مرور - يمكن لأي شخص لديه الرمز إدارة مستخدمي فريقك
- يمكنك إلغاء الرمز وإعادة توليده في أي وقت إذا تم اختراقه
- يؤدي إلغاء الرمز إلى إيقاف جميع عمليات SCIM على الفور حتى يتم تهيئة رمز جديد
الخطوة 3: تهيئة موفر الهوية الخاص بك
استخدم التفاصيل التالية لتهيئة ScribbleMaps كتطبيق SCIM في موفر الهوية (IdP) الخاص بك:
| الإعداد | القيمة |
|---|---|
| SCIM Base URL | https://api.scribblemaps.com/scim/v2 |
| Authentication Method | HTTP Header / Bearer Token |
| Authorization Header | Bearer YOUR_TOKEN_HERE |
| Unique Identifier |
userName (عنوان البريد الإلكتروني) |
مرجع نقاط نهاية SCIM (Endpoints)
| نقطة النهاية (Endpoint) | الغرض |
|---|---|
/scim/v2/Users |
تهيئة المستخدمين وإدارتهم |
/scim/v2/Groups |
إدارة أدوار/عضوية المجموعات |
/scim/v2/ServiceProviderConfig |
إمكانيات SCIM (الاستكشاف) |
/scim/v2/ResourceTypes |
أنواع الموارد المدعومة (الاستكشاف) |
/scim/v2/Schemas |
مخططات المستخدم والمجموعة (الاستكشاف) |
الخطوة 4: تعيين Default Product Assignment (اختياري)
يمكنك تلقائيًا تعيين ترخيص منتج للمستخدمين عند تهيئتهم عبر SCIM:
- في صفحة إعدادات SCIM، ابحث عن Default Product Assignment
- حدد منتجًا:
- None - يتم إنشاء المستخدمين بدون منتج (يتم التعيين يدويًا لاحقًا)
- Viewer - وصول للعرض فقط
- Pro Basic - ميزات التحرير القياسية
- Pro Business - وصول كامل للميزات
- انقر فوق Save
ملاحظة: سيتم تعيين منتج للمستخدمين فقط في حال توفر مقاعد. إذا لم تتوفر مقاعد، فسيتم إنشاء المستخدم ولكن يظل غير معين.
الخطوة 5: اختبار وتعيين المستخدمين
- في موفر الهوية الخاص بك، استخدم ميزة Test Connection للتحقق من اتصال SCIM
- قم بتعيين مستخدم تجريبي لتطبيق ScribbleMaps في موفر الهوية (IdP) الخاص بك
- تحقق من ظهور المستخدم في قائمة أعضاء فريق ScribbleMaps الخاصة بك
- بمجرد التأكيد، قم بتعيين مستخدمين أو مجموعات إضافية حسب الحاجة
أدلة خاصة بموفري الخدمة
Okta
- في Okta Admin Console، انتقل إلى Applications > Browse App Catalog
- ابحث عن "SCIM 2.0 Test App (Header Auth)" أو أنشئ تطبيق SCIM مخصصًا
- انتقل إلى علامة التبويب Provisioning > Configure API Integration
- حدد Enable API integration
- قم بتهيئة:
-
SCIM 2.0 Base URL:
https://api.scribblemaps.com/scim/v2 - OAuth Bearer Token: الصق رمز ScribbleMaps SCIM الخاص بك
-
SCIM 2.0 Base URL:
- انقر فوق Test API Credentials للتحقق
- انتقل إلى Provisioning > To App وقم بتمكين:
- Create Users
- Update User Attributes
- Deactivate Users
- انتقل إلى علامة التبويب Assignments لتعيين المستخدمين أو المجموعات
Microsoft Entra ID (Azure AD)
- في Azure Portal، انتقل إلى Microsoft Entra ID > Enterprise Applications
- حدد تطبيق ScribbleMaps الخاص بك (أو أنشئ تطبيقًا)
- انتقل إلى Provisioning > Get Started
- اضبط Provisioning Mode على Automatic
- تحت Admin Credentials:
-
Tenant URL:
https://api.scribblemaps.com/scim/v2 - Secret Token: الصق رمز ScribbleMaps SCIM الخاص بك
-
Tenant URL:
- انقر فوق Test Connection للتحقق
- قم بتهيئة Mappings لسمات المستخدم
- اضبط Provisioning Status على On
- انتقل إلى Users and groups لتعيين المستخدمين
OneLogin
- في OneLogin Admin، انتقل إلى Applications > Add App
- ابحث عن "SCIM Provisioner with SAML (SCIM v2 Core)" أو ما شابه
- انتقل إلى علامة التبويب Configuration
- قم بتهيئة:
-
SCIM Base URL:
https://api.scribblemaps.com/scim/v2 - SCIM Bearer Token: الصق رمز ScribbleMaps SCIM الخاص بك
-
SCIM Base URL:
- انتقل إلى علامة التبويب Provisioning وقم بتمكين التهيئة
- انتقل إلى علامة التبويب Users لتعيين المستخدمين
JumpCloud
- في JumpCloud Admin، انتقل إلى SSO Applications
- انقر فوق + لإضافة تطبيق جديد
- حدد Custom SCIM
- قم بتهيئة:
-
Base URL:
https://api.scribblemaps.com/scim/v2 - Token Key: الصق رمز ScribbleMaps SCIM الخاص بك
- Authentication: Bearer Token
-
Base URL:
- انقر فوق Test Connection
- قم بتهيئة مخططات السمات (attribute mappings)
- قم بتعيين مجموعات المستخدمين للتطبيق
عمليات SCIM المدعومة
عمليات المستخدم (User Operations)
| العملية | الطريقة | مدعوم | الوصف |
|---|---|---|---|
| عرض قائمة المستخدمين | GET /Users | نعم | استرداد جميع المستخدمين مع تقسيم الصفحات والتصفية |
| الحصول على مستخدم | GET /Users/{id} | نعم | استرداد مستخدم معين بواسطة المعرف (ID) |
| إنشاء مستخدم | POST /Users | نعم | تهيئة مستخدم جديد |
| استبدال مستخدم | PUT /Users/{id} | نعم | تحديث كامل لسمات المستخدم |
| تحديث مستخدم | PATCH /Users/{id} | نعم | تحديث جزئي لسمات المستخدم |
| حذف مستخدم | DELETE /Users/{id} | نعم | إلغاء تنشيط المستخدم (حذف ناعم) |
عمليات المجموعات (Group Operations)
| العملية | الطريقة | مدعوم | الوصف |
|---|---|---|---|
| عرض قائمة المجموعات | GET /Groups | نعم | إرجاع مجموعات أدوار Admin و Member |
| الحصول على مجموعة | GET /Groups/{id} | نعم | استرداد المجموعة مع قائمة الأعضاء |
| تحديث مجموعة | PATCH /Groups/{id} | نعم | إضافة/إزالة الأعضاء من مجموعات الأدوار |
| إنشاء مجموعة | POST /Groups | لا | غير مدعوم (الأدوار ثابتة) |
سمات المستخدم المدعومة
| سمة SCIM | حقل ScribbleMaps | مطلوب |
|---|---|---|
userName |
عنوان البريد الإلكتروني | نعم |
externalId |
معرف موفر الهوية (IdP) الخارجي | لا |
name.givenName |
الاسم الأول | لا |
name.familyName |
اسم العائلة | لا |
displayName |
اسم العرض | لا |
active |
حالة الحساب | لا |
emails[].value |
عنوان البريد الإلكتروني | لا |
عوامل التصفية المدعومة
| عامل التصفية | مثال |
|---|---|
| التصفية حسب البريد الإلكتروني | userName eq "[email protected]" |
| التصفية حسب المعرف الخارجي (external ID) | externalId eq "12345" |
| التصفية حسب الحالة | active eq true |
إدارة دورة حياة المستخدم
عند تهيئة مستخدم
- يتم إنشاء حساب عضو فريق جديد في ScribbleMaps
- يتم ملء معلومات المستخدم (الاسم، البريد الإلكتروني) من موفر الهوية (IdP) الخاص بك
- إذا تم تهيئة منتج افتراضي وتوفرت مقاعد، فسيتم تعيين ترخيص تلقائيًا
- يمكن للمستخدم تسجيل الدخول على الفور عبر SSO (إذا تم تهيئته)
عند تحديث مستخدم
- يتم تحديث سمات المستخدم (الاسم، اسم العرض) لتطابق موفر الهوية (IdP) الخاص بك
- تتم مزامنة تغييرات البريد الإلكتروني (ما لم يقم المستخدم بربط حسابه)
عند إلغاء تهيئة مستخدم
- يتم إلغاء تنشيط حساب المستخدم (حذف ناعم)
- يتم إزالة جميع تراخيص المنتجات، مما يفرغ المقاعد
- يتم إبطال جميع الجلسات النشطة على الفور
- لم يعد بإمكان المستخدم تسجيل الدخول
- يتم حفظ بيانات المستخدم والخرائط (لا يتم حذفها)
- يمكن إعادة تنشيط الحساب إذا تمت إعادة تهيئة المستخدم
إدارة الأدوار عبر المجموعات
يعرض ScribbleMaps مجموعتي أدوار عبر SCIM:
| معرف المجموعة (Group ID) | الدور | الأذونات |
|---|---|---|
admin |
مسؤول (Administrator) | إدارة إعدادات الفريق والمستخدمين والفواتير |
member |
عضو (Member) | وصول قياسي لعضو الفريق |
لتعيين مستخدم كمسؤول، أضفه إلى مجموعة admin عبر SCIM PATCH. لا يمكن تعديل دور Owner عبر SCIM.
استكشاف الأخطاء وإصلاحها
المشكلات الشائعة
"401 Unauthorized" أو "Invalid token"
- تحقق من أن bearer token صحيح ولم يتم إلغاؤه
- تأكد من تمرير الرمز في ترويسة المصادقة (Authorization header) كـ
Bearer YOUR_TOKEN - تحقق مما إذا كانت صلاحية الرمز قد انتهت (إذا تم تعيين تاريخ انتهاء الصلاحية)
- قم بتوليد رمز جديد إذا لزم الأمر
"409 Conflict" - المستخدم موجود بالفعل
- يوجد مستخدم بهذا البريد الإلكتروني بالفعل في فريقك
- إذا تم إلغاء تنشيط المستخدم الحالي، فسيقوم SCIM بإعادة تنشيطه تلقائيًا
- تحقق من وجود عناوين بريد إلكتروني مكررة في موفر الهوية (IdP) الخاص بك
"400 Bad Request" - حقل مطلوب مفقود
- تأكد من تضمين
userName(البريد الإلكتروني) في الطلب - تحقق من أن تنسيق البريد الإلكتروني صالح
- تحقق من تهيئة تخطيط السمات (attribute mapping) لموفر الهوية (IdP) الخاص بك
تم إنشاء المستخدمين ولكن لم يتم تعيين أي منتج
- تحقق مما إذا كان قد تم تهيئة منتج افتراضي في إعدادات SCIM
- تحقق من توفر مقاعد شاغرة للمنتج الافتراضي
- يمكن تعيين المنتجات للمستخدمين يدويًا في Team Settings
تغييرات المستخدم لا تتم مزامنتها
- تقوم بعض موفرات الهوية (IdPs) بالمزامنة وفقًا لجدول زمني (على سبيل المثال، كل 40 دقيقة لـ Azure AD)
- حاول فرض مزامنة يدوية في موفر الهوية (IdP) الخاص بك
- تحقق من أن SCIM لا يزال مُمكّنًا وأن الرمز صالح
فشل اختبار الاتصال
- تحقق من أن SCIM Base URL هو بالضبط
https://api.scribblemaps.com/scim/v2 - تأكد من عدم وجود شرطات مائلة زائدة في النهاية أو أخطاء إملائية
- تحقق من أن شبكتك/جدار الحماية الخاص بك يسمح بمرور HTTPS الصادر إلى api.scribblemaps.com
هل تحتاج إلى مساعدة؟
إذا كنت تواجه مشكلات في تهيئة SCIM، فيرجى الاتصال بفريق الدعم لدينا مع تزويدنا بـ:
- اسم فريقك (Team name)
- موفر الهوية الذي تستخدمه
- أي رسائل خطأ من سجلات تهيئة موفر الهوية (IdP) الخاص بك
- لقطات شاشة لتهيئة SCIM الخاصة بك (مع إخفاء الرمز)
نحن هنا لمساعدتك في تهيئة SCIM لمؤسستك.
آخر تحديث