非常感謝所有個人貢獻者
*使用Ory生產中的主要項目之一。
要開始一些簡單的示例,請前往“入門文檔”。
前往Ory Developer文檔,以了解如何在Linux,MacOS,Windows和Docker上安裝Ory Kratos,以及如何從Source構建Ory Kratos。
在我們的建築設計方面,我們構建了幾種指導原則:
Ory的架構旨在在容器編排系統(例如Kubernetes,CloudFoundry,OpenShift和類似項目)上運行最佳。二進製文件很小(5-15MB),可用於所有流行的處理器類型(ARM,AMD64,I386)和操作系統(FreeBSD,Linux,MacOS,Windows,Windows),無系統依賴性(Java,Node,Ruby,Libxml,...)。
Ory Kratos是一種API優先身份和用戶管理系統,是根據Cloud Architecture最佳實踐構建的。它實現了幾乎每個軟件應用程序都需要處理的核心用例:自助登錄和註冊,多因素身份驗證(MFA/2FA),帳戶恢復和驗證,個人資料和帳戶管理。
Ory Hydra是OpenID認證™OAUTH2和OpenID Connect提供商,通過編寫微型“橋樑”應用程序,可以輕鬆連接到任何現有身份系統。它可以絕對控制用戶界面和用戶體驗流。
Ory Oathkeeper是一項超越/零信任身份和訪問代理(IAP),具有可配置的身份驗證,授權和請求的Web服務請求突變規則:身份驗證JWT,訪問令牌,API鍵,API鍵,MTLS;檢查是否允許包含的主題執行請求;將結果內容編碼為自定義標頭( X-User-ID ),JSON Web令牌等等!
Ory Keto是一個政策決策點。它使用一組類似於AWS IAM策略的訪問控制策略,以確定主題(用戶,應用程序,服務,汽車,...)是否有權對資源執行某些操作。
運行身份基礎架構需要關注和了解威脅模型。
如果您認為發現安全漏洞,請不要在論壇,聊天或Github上公開發布它。您可以在我們的security.txt中找到負責披露的所有信息。
Ory的服務收集了可以選擇關閉的匿名數據匯總的匿名數據。單擊此處以了解更多信息。
該指南可在此處找到。
此處記錄了HTTP API。
新版本可能會引入破壞變化。為了幫助您識別並結合這些更改,我們將這些更改記錄在ChangElog.md中。有關升級,請訪問升級指南。
運行kratos -h或kratos help 。
我們鼓勵所有貢獻,並鼓勵您閱讀我們的貢獻指南
您需要1.16+和(對於測試套件):
可以在Windows上開發Ory Kratos,但請注意,所有指南都假設bash或ZSH等UNIX殼。
進行安裝
您可以使用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 ./...您也可以從子文件夾運行此命令。
我們使用柏樹進行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' , ( ) => {
...
} )運行測試子集
這將需要編輯位於test/e2e/文件夾中的cypress.json文件。
添加testFiles選項並指定測試以在cypress/integration文件夾中運行。例如,我們將僅添加network測試。
"testFiles" : [ " profiles/network/* " ],現在,使用運行腳本或makefile再次開始測試。
您可以使用以下方式構建開發Docker映像
做碼頭
make sdkmake docs/apimake docs/swagger