如何使用Kratos管理身份和授权
#开源 #go #docker #kratos

kratos是用GO编写的API优先身份验证工具。它提供了最常见的身份验证功能,还支持OAuth,该功能使用户可以使用其社交媒体帐户登录。在这里,您如何使用Kratos。


授权和Kratos简介

授权是使用户访问资源或功能的过程。 Kratos 是API优先的开源身份,用户和授权管理工具。

Kratos提供通常的授权功能,例如:

  • 登录和注册:自助账户创建和登录。
  • 多因素身份验证(MFA/2FA):支持Oauth(RFC 6238,RFC 4226)。
  • 帐户验证和恢复:电子邮件地址验证和密码恢复。
  • 个人资料管理:用户可以编辑密码,用户名,链接配置文件等
  • 管理员的API功能:通过API调用导入,更新和删除帐户。

为什么我们和Kratos一起去

我们正在寻找授权解决方案,因为我们决定以语言开发平台的关键组成部分,如此 blog post

中所述。

我们花了一点时间通过绊倒 Fosite 来找到Kratos,因此我们决定使用它而不是创建自己的解决方案。 API优先的方法使我们能够使用完全适合使用的KRATO,包括我们自己的前端和数据库。这符合我们偏爱自己为自己托管解决方案,而不是依靠第三方申请。

KRATOS的其他一些优点是数据泄露密码检查器,我们不必维护它以为用户提供安全用途。选择Kratos的另一个好处是社会帐户的支持,这使我们的用户可以与他们的GitHub,Gitlab,Google或Azure AD登录。

我们选择与Kratos一起选择的长期方面是,Ory生态系统具有广泛的身份管理,授权等产品。可以公平地说,他们会在做什么,而当我们缩放dyrector.io时,我们会知道在哪里寻找解决方案。 KETO用于角色管理,用于访问控制的OATHKEEPER是我们已经关注以后使用的服务。

使用kratos的更多优势:

  • 所有内容都可以使用环境变量以及配置文件配置。
  • Kratos可以很好地管理迁移。
  • API的HTTP客户端。
  • API宁静且易于理解。

我们如何使用kratos

由于Kratos为每个功能提供了专用流量,例如登录和注册,因此我们能够在服务器端渲染期间从KRATOS获得新的或现有的流量。

同时,在客户端方面,我们从用户中获得了必须显示的输入列表,例如电子邮件地址和名称,并使用数据更新当前流。例如,当发生错误时,用户输入无效的电子邮件地址,或添加与Kratos密码检查器中的条目匹配的密码,我们将使用错误消息渲染页面。

流量成功时,我们将收到的cookie转发为从kratos或将用户重定向到它。

Kratos支持各种数据库,包括PostgreSQL,正如我们所熟悉的那样。对于本地设置和测试,我们使用MailsLurper,这是一款编写的开源SMTP服务器。

用星星支撑开源

确保支持 Kratos 或dyrector.io的开源项目,并在下面的链接上带有星星。


此博客文章是由dyrector.io团队撰写的。 dyrector.io是一个具有版本管理的开源连续交付和部署平台。

GitHub上的星星支持我们。