تسجيل الدخول الأحادي (SSO) ومصادقة Windows
يدعم Cockpit تسجيل الدخول الأحادي (SSO) والمصادقة بدون كلمة مرور للتكامل مع مزودي الهوية المؤسسيين (IdPs) وبيئات النطاق (Domain environments).
بروتوكولات المصادقة
يتكامل Cockpit مع أطر عمل SSO القياسية للتحقق من جلسات المستخدمين:
- SAML 2.0: يتكامل مع مزودي الهوية المؤسسيين مثل Okta وKeycloak وPing Identity وMicrosoft Entra ID.
- OpenID Connect (OIDC): طبقة مصادقة خفيفة الوزن مبنية فوق OAuth 2.0 لتكاملات دليل السحابة (Cloud directory).
- مصادقة Windows المدمجة (Kerberos / GSSAPI): تسمح للأجهزة العميلة المنضمة إلى النطاق بالمصادقة تلقائيًا باستخدام تذكرة أمان Windows النشطة الخاصة بها، مما يلغي الحاجة إلى إدخال بيانات الاعتماد يدويًا.
1. إعداد مصادقة جلسة Windows (Kerberos)
يتطلب نشر مصادقة Kerberos إنشاء ملف keytab على وحدة التحكم بالنطاق (Active Directory Domain Controller) وتسجيل وحدة GSSAPI على Cockpit.
الخطوة أ: تحضير خادم Active Directory
قم بتشغيل الأوامر الإدارية التالية على وحدة التحكم بالنطاق لتسجيل اسم كيان الخدمة (SPN) وإنشاء ملف keytab:
cmd
# 1. Register the Cockpit service principal name under the service account
setspn -a HTTP/cockpit.corp.awan.io svc-cockpit
# 2. Export the cryptographic keytab file to "cockpit.keytab"
ktpass /out cockpit.keytab /princ HTTP/cockpit.corp.awan.io@CORP.AWAN.IO /mapuser svc-cockpit /pass Password123 /crypto AES256-SHA1 /ptype KRB5_NT_PRINCIPALالخطوة ب: إعداد خدمة Cockpit
- انسخ ملف
cockpit.keytabالمُنشأ بشكل آمن إلى/etc/cockpit/cockpit.keytabعلى خادم Cockpit. - أضف المعلمات التالية إلى قسم
[auth]في/etc/cockpit/cockpit.conf:
ini
[auth]
sso_enabled = true
sso_method = "kerberos"
sso_keytab_path = "/etc/cockpit/cockpit.keytab"
sso_realm = "CORP.AWAN.IO"
sso_service_principal = "HTTP/cockpit.corp.awan.io@CORP.AWAN.IO"2. إعداد تكامل SAML 2.0
لتوصيل Cockpit بمزودي الهوية الخارجيين مثل Okta أو Azure AD:
- قم بتسجيل الدخول إلى Cockpit بصفة مسؤول.
- انتقل إلى Settings > Identity Management > SAML.
- حدد Metadata Import وقم بتحميل ملف XML الخاص ببيانات توجيه مزود الهوية (Identity Provider Metadata).
- استخرج إعدادات Cockpit لتسجيل التطبيق على مزود الهوية:
- Entity ID:
https://cockpit.corp.awan.io/api/v1/auth/saml/metadata - Assertion Consumer Service (ACS) URL:
https://cockpit.corp.awan.io/api/v1/auth/saml/acs
- Entity ID:
- قم بإعداد تعيين السمات (Attribute mapping) في مزود الهوية:
- Username Attribute: قم بتعيينه إلى البريد الإلكتروني الرئيسي للمستخدم أو المعرف الفريد (
NameIDأوuid). - Groups Attribute: قم بتعيينه إلى حقل تأكيد المجموعة (
memberOfأوgroups) لتمكين التعيين التلقائي للأذونات.
- Username Attribute: قم بتعيينه إلى البريد الإلكتروني الرئيسي للمستخدم أو المعرف الفريد (