非常感谢所有个人贡献者
*使用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),无系统依赖性(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