Terima kasih banyak untuk semua kontributor individu
* Menggunakan salah satu proyek utama Ory dalam produksi.
Untuk memulai dengan beberapa contoh mudah, pergilah ke dokumentasi Get Start.
Pergilah ke dokumentasi pengembang Ory untuk mempelajari cara menginstal Ory Kratos di Linux, MacOS, Windows, dan Docker dan cara membangun Ory Kratos dari sumber.
Kami membangun ory di beberapa prinsip panduan ketika datang ke desain arsitektur kami:
Arsitektur Ory dirancang untuk berjalan paling baik pada sistem orkestrasi kontainer seperti Kubernetes, Cloudfoundry, OpenShift, dan proyek serupa. Binari adalah kecil (5-15MB) dan tersedia untuk semua jenis prosesor populer (ARM, AMD64, I386) dan sistem operasi (FreeBSD, Linux, MacOS, Windows) tanpa dependensi sistem (Java, Node, Ruby, LibxML, ...).
Ory Kratos adalah identitas API-pertama dan sistem manajemen pengguna yang dibangun sesuai dengan praktik terbaik arsitektur cloud. Ini mengimplementasikan kasus penggunaan inti yang hampir setiap aplikasi perangkat lunak perlu ditangani: Login dan pendaftaran swalayan, otentikasi multi-faktor (MFA/2FA), pemulihan dan verifikasi akun, profil, dan manajemen akun.
Ory Hydra adalah penyedia OpenID Certified ™ OAuth2 dan OpenID Connect yang dengan mudah terhubung ke sistem identitas yang ada dengan menulis aplikasi "jembatan" kecil. Ini memberikan kontrol mutlak atas antarmuka pengguna dan aliran pengalaman pengguna.
Ory Oathkeeper adalah BeyondCorp/Zero Trust Identity & Access Proxy (IAP) dengan otentikasi yang dapat dikonfigurasi, otorisasi, dan meminta aturan mutasi untuk layanan web Anda: Otentikasi JWT, Token Akses, Kunci API, MTLS; Periksa apakah subjek yang terkandung diizinkan untuk melakukan permintaan; Pencatat konten yang dihasilkan ke header khusus ( X-User-ID ), token web JSON dan banyak lagi!
Ory Keto adalah titik keputusan kebijakan. Ini menggunakan serangkaian kebijakan kontrol akses, mirip dengan kebijakan AWS IAM, untuk menentukan apakah suatu subjek (pengguna, aplikasi, layanan, mobil, ...) diizinkan untuk melakukan tindakan tertentu pada sumber daya.
Menjalankan infrastruktur identitas membutuhkan perhatian dan pengetahuan model ancaman.
Jika Anda pikir Anda menemukan kerentanan keamanan, silakan jangan mempostingnya secara publik di forum, obrolan, atau github. Anda dapat menemukan semua info untuk pengungkapan yang bertanggung jawab di Security.txt kami.
Layanan Ory mengumpulkan data yang dirangkum dan dianonimkan yang secara opsional dapat dimatikan. Klik di sini untuk mempelajari lebih lanjut.
Panduan ini tersedia di sini.
API HTTP didokumentasikan di sini.
Rilis baru dapat memperkenalkan perubahan yang melanggar. Untuk membantu Anda mengidentifikasi dan menggabungkan perubahan itu, kami mendokumentasikan perubahan ini dalam changelog.md. Untuk meningkatkan, silakan kunjungi panduan peningkatan.
Jalankan kratos -h atau kratos help .
Kami mendorong semua kontribusi dan mendorong Anda untuk membaca pedoman kontribusi kami
Anda perlu pergi 1.16+ dan (untuk suite tes):
Dimungkinkan untuk mengembangkan ory kratos di windows, tetapi perlu diketahui bahwa semua pemandu menganggap shell unix seperti bash atau zsh.
buat instal
Anda dapat memformat semua kode menggunakan make format . CI kami memeriksa apakah kode Anda diformat dengan benar.
Ada tiga jenis tes yang dapat Anda jalankan:
Tes pendek berjalan cukup cepat. Anda dapat menguji semua kode sekaligus
go test -short -tags sqlite ./...Atau uji hanya modul tertentu:
cd client ; go test -tags sqlite -short . Tes reguler memerlukan pengaturan database. Test suite kami dapat bekerja dengan Docker secara langsung (menggunakan Ory/Dockertest) tetapi kami mendorong untuk menggunakan Makefile sebagai gantinya. Menggunakan Dockertest dapat kembung jumlah gambar Docker pada sistem Anda dan cukup lambat. Sebaliknya kami merekomendasikan melakukan:
melakukan tes
Perlu diketahui bahwa make test menciptakan kembali database setiap kali Anda menjalankan make test . Ini bisa menjengkelkan jika Anda mencoba memperbaiki sesuatu yang sangat spesifik dan membutuhkan tes database sepanjang waktu. Dalam hal ini kami menyarankan agar Anda menginisialisasi database dengan:
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 ' Maka Anda dapat menjalankan go test sesering yang Anda inginkan:
go test -tags sqlite ./...
# or in a module:
cd client ; go test -tags sqlite . Beberapa tes menggunakan perlengkapan. Jika muatan berubah, Anda dapat memperbaruinya dengan:
make test-update-snapshots
Ini hanya akan memperbarui snapshot dari tes pendek. Untuk memperbarui semua snapshot, jalankan:
UPDATE_SNAPSHOTS=true go test -p 4 -tags sqlite ./...Anda juga dapat menjalankan perintah ini dari sub folder.
Kami menggunakan Cypress untuk menjalankan tes E2E kami.
softwareupdate --install-rosetta --agree-to-license
Cara paling sederhana untuk mengembangkan tes E2E adalah:
./test/e2e/run.sh --dev sqlite
Anda dapat menjalankan semua tes (dengan database) menggunakan:
buat tes-e2e
Untuk detail lebih lanjut, jalankan:
./test/e2e/run.sh
Jalankan hanya tes tunggal
Tambahkan .only untuk tes yang ingin Anda jalankan.
Misalnya:
it . only ( 'invalid remote recovery email template' , ( ) => {
...
} )Jalankan subset tes
Ini akan membutuhkan pengeditan file cypress.json yang terletak di folder test/e2e/ .
Tambahkan opsi testFiles dan tentukan tes yang akan berjalan di dalam folder cypress/integration . Sebagai contoh, kami hanya akan menambahkan tes network .
"testFiles" : [ " profiles/network/* " ],Sekarang mulai tes lagi menggunakan skrip run atau makefile.
Anda dapat membangun gambar Docker pengembangan menggunakan:
Buat Docker
make sdkmake docs/apimake docs/swagger