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

نظرة عامة

Casdoor is a UI-first Identity Access Management (IAM) / Single-Sign-On (SSO) platform with a web UI that supports OAuth 2.0, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, RADIUS, Google Workspace, Active Directory, and Kerberos.

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

ميزات Casdoor

  1. Casdoor follows a frontend-backend separation architecture and is developed in Golang. It supports high concurrency, provides a web-based UI for management, and supports localization in over 10 languages.

  2. Casdoor supports third-party application login options, such as GitHub, Google, QQ, and WeChat, and supports extending third-party login capabilities with plugins.

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

  4. Casdoor provides phone verification codes, email verification codes, and password retrieval functionality.

  5. Casdoor supports auditing and recording of access logs.

  6. Casdoor integrates with Alibaba Cloud, Tencent Cloud, and Qiniu Cloud for image CDN and cloud storage.

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

  8. Casdoor supports integration with existing systems through database synchronization, enabling a smooth transition to Casdoor.

  9. Casdoor supports mainstream databases such as MySQL, PostgreSQL, and SQL Server, and supports extending to new databases with plugins.

كيف يعمل

مبدأ

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

  1. يتبع Casdoor عملية التفويض المبنية على بروتوكول OAuth 2.0. We highly recommend gaining a brief understanding of how OAuth 2.0 works. يمكنك الرجوع إلى هذه مقدمة لـ OAuth 2.0.

صورة

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

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

تلميحات

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

  • For client_id: you can find this under each individual Application.

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

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

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

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

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

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

The user opens the URL and provides credentials to Casdoor. Casdoor will say: "Looking good ~ this is the user (who is authorizing the Application to receive the code and state) I know in my database, and I will send the code and state back to the Application using the callback URL (redirect_uri)".

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

نصيحة

يوفر Casdoor أيضًا تسجيلات الدخول الخاصة بأطراف ثالثة. في هذه الحالة، بدلاً من رؤية صفحة إدخال بيانات الاعتماد، سترى قائمة بمقدمي الخدمات الخارجيين. You can log in to your app using these providers, with Casdoor acting as middleware.

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

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

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

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

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

في هذه الخطوة، يقول تطبيقك: "رائع! I just got the fresh access_token. الآن يمكنني استخدامه للوصول إلى شيء أكثر قيمة من خادم الموارد!"

ثم يتوجه تطبيقك إلى خادم الموارد ويقول: "مرحبًا صديقي، هل يمكنك التحقق من هذا رمز الوصول؟ لقد تلقيته من 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