شكرا جزيلا لجميع المساهمين الأفراد
* يستخدم أحد مشاريع أوري الرئيسية في الإنتاج.
للبدء مع بعض الأمثلة السهلة ، توجه إلى وثائق Get Sent.
توجه إلى وثائق مطور Ory لمعرفة كيفية تثبيت Ory Kratos على Linux و MacOs و Windows و Docker وكيفية بناء ory kratos من المصدر.
نحن نبني أوري على عدة مبادئ توجيهية عندما يتعلق الأمر بتصميم الهندسة المعمارية لدينا:
تم تصميم بنية ORY لتشغيل أفضل على نظام تزامن الحاويات مثل Kubernetes و CloudFoundry و OpenShift ومشاريع مماثلة. الثنائيات صغيرة (5-15 ميجابايت) ومتاحة لجميع أنواع المعالجات الشائعة (ARM ، AMD64 ، I386) وأنظمة التشغيل (FreeBSD ، Linux ، MacOS ، Windows) بدون تبعيات النظام (Java ، Node ، Ruby ، Libxml ، ...).
ORY KRATOS هو نظام هوية و API-First وإدارة المستخدم الذي تم تصميمه وفقًا لأفضل ممارسات Architecture Cloud. إنه ينفذ حالات الاستخدام الأساسية التي يحتاجها كل تطبيق تقريبًا إلى التعامل معها: تسجيل الدخول إلى الخدمة الذاتية وتسجيلها ، ومصادقة متعددة العوامل (MFA/2FA) ، واستعادة الحساب والتحقق ، والملف الشخصي ، وإدارة الحساب.
Ory Hydra هو موفر OpenID Certified ™ OAUTH2 ومقدم OpenID Connect الذي يتصل بسهولة بأي نظام هوية موجود عن طريق كتابة تطبيق "جسر" صغير. إنه يعطي تحكمًا مطلقًا على واجهة المستخدم وتدفقات تجربة المستخدم.
ORY OATHKEPER هو وكيل ما وراء CORP/Zero Trust Identity & Access (IAP) مع مصادقة قابلة للتكوين ، والترخيص ، وطلب قواعد الطفرة لخدمات الويب الخاصة بك: مصادقة JWT ، و ACCENT OKENS ، و API KEYS ، و MTLS ؛ تحقق مما إذا كان الموضوع المحترم مسموحًا بتنفيذ الطلب ؛ تشفير المحتوى الناتج إلى رؤوس مخصصة ( X-User-ID ) ، ورموز الويب JSON والمزيد!
Ory Keto هي نقطة قرار السياسة. ويستخدم مجموعة من سياسات التحكم في الوصول ، على غرار سياسات AWS IAM ، من أجل تحديد ما إذا كان موضوع (المستخدم ، التطبيق ، الخدمة ، السيارة ، ...) مخول لأداء إجراء معين على مورد.
تشغيل البنية التحتية للهوية يتطلب الاهتمام ومعرفة نماذج التهديد.
إذا كنت تعتقد أنك وجدت ثغرة أمنية ، فيرجى الامتناع عن نشرها علنًا على المنتديات أو الدردشة أو github. يمكنك العثور على جميع المعلومات عن الكشف المسؤول في security.txt لدينا.
تقوم خدمات Ory بجمع بيانات ملخصة ومجهولة يمكن إيقاف تشغيلها اختياريًا. انقر هنا لمعرفة المزيد.
الدليل متاح هنا.
تم توثيق API HTTP هنا.
قد تقدم الإصدارات الجديدة تغييرات كسر. لمساعدتك في تحديد هذه التغييرات ودمجها ، نقوم بتوثيق هذه التغييرات في changelog.md. للترقية ، يرجى زيارة دليل الترقية.
تشغيل kratos -h أو kratos help .
نشجع جميع المساهمات ونشجعك على قراءة إرشادات مساهمةنا
تحتاج إلى GO 1.16+ و (لأجنحة الاختبار):
من الممكن تطوير Ory Kratos على Windows ، ولكن يرجى العلم أن جميع الأدلة تفترض قشرة Unix مثل Bash أو Zsh.
اجعل التثبيت
يمكنك تنسيق كل التعليمات البرمجية باستخدام make format . يتحقق CI الخاص بنا إذا تم تنسيق الكود الخاص بك بشكل صحيح.
هناك ثلاثة أنواع من الاختبارات التي يمكنك تشغيلها:
اختبارات قصيرة تعمل بسرعة إلى حد ما. يمكنك إما اختبار جميع الكود في وقت واحد
go test -short -tags sqlite ./...أو اختبار فقط وحدة محددة:
cd client ; go test -tags sqlite -short . تتطلب الاختبارات العادية إعداد قاعدة بيانات. إن مجموعة الاختبار الخاصة بنا قادر على العمل مع Docker مباشرة (باستخدام Ory/DockerTest) ولكننا نشجع على استخدام Makefile بدلاً من ذلك. يمكن أن يؤدي استخدام Dockertest إلى زيادة عدد صور Docker على نظامك وبطء للغاية. بدلاً من ذلك نوصي بالقيام:
اجعل الاختبار
يرجى العلم أن make test يعيد إنشاء قواعد البيانات في كل مرة تقوم فيها make test . قد يكون هذا مزعجًا إذا كنت تحاول إصلاح شيء محدد للغاية وتحتاج إلى اختبارات قاعدة البيانات طوال الوقت. في هذه الحالة ، نقترح أن تقوم بتهيئة قواعد البيانات بـ:
make test-resetdb
export TEST_DATABASE_MYSQL= ' mysql://root:secret@(127.0.0.1:3444)/mysql?parseTime=true '
export TEST_DATABASE_POSTGRESQL= ' postgres://postgres:[email protected]:3445/kratos?sslmode=disable '
export TEST_DATABASE_COCKROACHDB= ' cockroach://[email protected]:3446/defaultdb?sslmode=disable ' ثم يمكنك تشغيل go test بقدر ما تريد:
go test -tags sqlite ./...
# or in a module:
cd client ; go test -tags sqlite . بعض الاختبارات تستخدم المباريات. إذا تغيرت الحمولات ، يمكنك تحديثها بـ:
make test-update-snapshots
سيؤدي ذلك إلى تحديث لقطات الاختبارات القصيرة فقط. لتحديث جميع اللقطات ، قم بتشغيل:
UPDATE_SNAPSHOTS=true go test -p 4 -tags sqlite ./...يمكنك أيضًا تشغيل هذا الأمر من مجلد فرعي.
نستخدم Cypress لتشغيل اختبارات E2E الخاصة بنا.
softwareupdate --install-rosetta --agree-to-license
أبسط طريقة لتطوير اختبارات E2E هي:
./test/e2e/run.sh -dev sqlite
يمكنك تشغيل جميع الاختبارات (مع قواعد البيانات) باستخدام:
اجعل اختبار E2e
لمزيد من التفاصيل ، قم بتشغيل:
./test/e2e/run.sh
قم بإجراء اختبار فريد فقط
أضف .only إلى الاختبار الذي ترغب في تشغيله.
على سبيل المثال:
it . only ( 'invalid remote recovery email template' , ( ) => {
...
} )تشغيل مجموعة فرعية من الاختبارات
سيتطلب ذلك تحرير ملف cypress.json الموجود في test/e2e/ المجلد.
أضف خيار testFiles وحدد الاختبار لتشغيله داخل مجلد cypress/integration . على سبيل المثال ، سنضيف اختبارات network فقط.
"testFiles" : [ " profiles/network/* " ],الآن ابدأ الاختبارات مرة أخرى باستخدام البرنامج النصي Run أو Makefile.
يمكنك بناء صورة Decker Development باستخدام:
جعل Docker
make sdkmake docs/apimake docs/swagger