التخطي إلى المحتوى الرئيسي

نظرة عامة

Casdoor هو منصة إدارة الهوية والوصول (IAM) / تسجيل الدخول الفردي (SSO) مع واجهة مستخدم ويب تدعم OAuth 2.0، OIDC، SAML، CAS، LDAP، SCIM، WebAuthn، TOTP، MFA، RADIUS، Google Workspace، Active Directory وKerberos.

Casdoor يخدم كل من واجهة المستخدم الويب وطلبات تسجيل الدخول من مستخدمي التطبيق.

ميزات Casdoor

  1. Casdoor يتبع هندسة منفصلة للواجهة الأمامية والخلفية، تم تطويره بواسطة Golang. يدعم التزامن العالي، يوفر واجهة مستخدم ويب للإدارة، ويدعم التوطين بأكثر من 10 لغات.

  2. Casdoor يدعم تسجيل الدخول للتطبيقات الطرفية الثالثة، مثل GitHub، Google، QQ، وWeChat، ويدعم توسيع تسجيل الدخول الطرفي الثالث بالإضافات.

  3. Casdoor يدعم إدارة التفويض بناءً على Casbin. يدعم نماذج التحكم في الوصول ACL، RBAC، ABAC، وRESTful.

  4. Casdoor يوفر وظائف رمز التحقق عبر الهاتف، رمز التحقق عبر البريد الإلكتروني، واسترجاع كلمة المرور.

  5. Casdoor يدعم التدقيق وتسجيل سجلات الوصول.

  6. Casdoor يتكامل مع Alibaba Cloud، Tencent Cloud، وQiniu Cloud لتخزين الصور CDN السحابي.

  7. Casdoor يسمح بتخصيص صفحات التسجيل، تسجيل الدخول، واسترجاع كلمة المرور.

  8. يدعم Casdoor التكامل مع الأنظمة القائمة من خلال مزامنة قاعدة البيانات، مما يمكن من الانتقال السلس إلى Casdoor.

  9. يدعم Casdoor قواعد البيانات الرئيسية مثل MySQL وPostgreSQL وSQL Server، ويدعم توسيع قواعد البيانات الجديدة باستخدام الإضافات.

كيف يعمل

مبدأ

الخطوة 0 (المعرفة المسبقة)

  1. يتبع Casdoor عملية التفويض المبنية على بروتوكول OAuth 2.0. يُنصح بشدة بالحصول على فهم موجز لكيفية عمل OAuth 2.0. يمكنك الرجوع إلى هذه مقدمة لـ OAuth 2.0.

صورة

الخطوة 1 (طلب التفويض)

يجب أن يقوم تطبيقك (الذي قد يكون موقعًا إلكترونيًا أو أي تطبيق آخر) بتكوين عنوان URL على النحو التالي: endpoint/login/oauth/authorize?client_id=xxx&response_type=code&redirect_uri=xxx&scope=read&state=xxx. استبدل endpoint بعنوان URL الخاص بـ Casdoor وxxx بمعلوماتك الخاصة.

تلميحات

كيفية ملء أجزاء xxx؟

  • بالنسبة لـ client_id: يمكنك العثور على هذا تحت كل تطبيق فردي

  • بالنسبة لـ redirect_uri: يجب أن تضبط هذا على عنوان URL الخاص بالتطبيق الخاص بك. سيستخدم Casdoor هذه المعلومات لإرسال الرد بعد التفويض.

  • بالنسبة لـ state: يجب أن تملأ هذا بإسم تطبيقك.

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

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

الخطوة 2 (منح التفويض)

هذه الخطوة بسيطة: يتم توجيه المستخدم إلى العنوان الذي تم تكوينه في الخطوة 1، وسيرى المستخدم صفحة تسجيل الدخول من Casdoor. من خلال إدخال اسم المستخدم وبيانات الاعتماد الصحيحة في صفحة تسجيل الدخول، يعرف Casdoor الآن هوية المستخدم وهو على وشك إرسال قطعتين من المعلومات إلى عنوان URL الخاص بالتطبيق المضبوط في الخطوة 1: code وstate.

يفتح المستخدم الرابط ويقدم بيانات الاعتماد إلى Casdoor. سيقول Casdoor: "تبدو جيدة ~ هذا هو المستخدم (الذي يفوض التطبيق للحصول على الرمز والحالة) أعرفه في قاعدة بياناتي، وسأرسل الرمز والحالة إلى التطبيق باستخدام عنوان URL للرد (redirect_uri)".

مع هاتين القطعتين من المعلومات المرسلتين إلى تطبيقك، يتم منح التفويض للتطبيق، ويكتمل منح التفويض.

نصيحة

يوفر Casdoor أيضًا تسجيلات الدخول الخاصة بأطراف ثالثة. في هذه الحالة، بدلاً من رؤية صفحة إدخال بيانات الاعتماد، سترى قائمة بمقدمي الخدمات الخارجيين. يمكنك تسجيل الدخول إلى تطبيقك باستخدام هؤلاء المقدمين، مع تصرف Casdoor كطبقة وسيطة (middleware).

الخطوة 3 (منح التفويض)

في هذه الخطوة، يمتلك تطبيقك بالفعل الرمز من الخطوة 2، وسيتحدث إلى Casdoor: "مرحبًا، وافق المستخدم على منحي الرمز. هل يمكنك التحقق من هذا الرمز وإعطائي رمز الوصول؟"

الخطوة 4 (رمز الوصول)

يستجيب Casdoor لتطبيقك: "تعلم ماذا، يبدو هذا الرمز صحيحًا. يجب أن تكون التطبيق الصحيح. إليك رمز الوصول لك." مع هذا الرمز، يؤكد Casdoor أنه تطبيق مفوض (مفوض من قبل المستخدم الصحيح في الخطوة 2) يحاول الحصول على رمز الوصول (الذي سيتم استخدامه لاحقًا للوصول إلى المزيد من الموارد).

الخطوة 5 (رمز الوصول)

في هذه الخطوة، يقول تطبيقك: "رائع! لقد حصلت للتو على رمز الوصول الطازج واللذيذ. الآن يمكنني استخدامه للوصول إلى شيء أكثر قيمة من خادم الموارد!"

ثم يتوجه تطبيقك إلى خادم الموارد ويقول: "مرحبًا صديقي، هل يمكنك التحقق من هذا رمز الوصول؟ لقد تلقيته من Casdoor. هل تريد التحقق مما إذا كان هذا هو الرمز الصحيح الذي أصدرته لـ Casdoor؟"

الخطوة 6 (المورد المحمي)

يستجيب خادم الموارد لتطبيقك: "ليس سيئًا. يبدو تمامًا مثل الذي أصدرته لـ Casdoor، ويقول Casdoor إن من يحمل هذا رمز الوصول يمكنه الوصول إلى هذه الموارد المحمية. لذا تقدم وخذه!"

وهذا بشكل أساسي كيف يعمل Casdoor مع تطبيقك.

تلميح

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

عرض توضيحي عبر الإنترنت

Casdoor

هنا عرض توضيحي عبر الإنترنت نشر بواسطة Casbin.

تسجيل دخول المسؤول العالمي:

  • اسم المستخدم: admin
  • كلمة المرور: 123

Casbin-OA

Casbin-OA هو أحد تطبيقات الويب الخاصة بـ Casbin. يستخدم Casdoor للمصادقة.

Casnode

Casnode هو المنتدى الرسمي الذي طورته مجتمع Casbin.

يستخدم Casdoor كمنصة للمصادقة ويدير الأعضاء.

الهندسة المعمارية

يتكون Casdoor من جزأين:

الاسمالوصفاللغةالكود المصدري
واجهة المستخدم الأماميةواجهة المستخدم الأمامية لـ CasdoorJavaScript + Reacthttps://github.com/casdoor/casdoor/tree/master/web
الخلفيةواجهة برمجة التطبيقات RESTful الخلفية لـ CasdoorGolang + Beego + SQLhttps://github.com/casdoor/casdoor