提问者:小点点

我应该使用钥匙斗篷吗?


我刚刚开始一个新项目。结果将是一个API服务器和一个渐进式Web应用程序。API服务器使用TypeScript和NestJS框架实现,客户端使用Angular 6。

我已经和keycloak调情一段时间了。尽管如此,我还是不太确定它是否适合我。但是我不想再担心令牌更新之类的事情了,并且觉得Keycloak告诉我如何创建用户角色很性感。

困扰我的是下面的集成。对于我的用例来说,登录和密码重置等所有功能都是我的应用程序的一部分是必要的。这意味着我想自己创建表单,以便能够在我自己的设计中完美地做到这一点,而不是有第二个翻译过程等。Keycloak主题不是一个选择。那么有没有可能以这种方式隐藏keycloak,或者它太复杂了,我一开始就不应该使用Keyloak?Afaik已经存在密码重置的问题-我不能从用户端请求它,但必须向管理endpoint进行REST调用-这是可以的,但不理想,因为它需要我做更多的服务器端逻辑(这不是我想使用Keycloak的原因)。

此外,Keycloak过于关注GUI-这对我来说很困难,尤其是在开发期间。因为我也想在开发期间为我的团队提供一个keycloak的本地实例。但是将初始数据导入领域,应用程序以及用户导入Keycloak的概念是什么?我发现了一些JSON导入-但到目前为止仅适用于领域和应用程序。是否也有一个函数可以导入整个哑巴?

这样我的团队就建立在预先构建的设置之上,并且每个角色都有一个用户。使用Vagrat或Docker进行可重复的设置,其中包含初始数据的导入-这将是目标。

简而言之,我的问题是:

  1. 如果我想通过API使用所有东西,还是应该简单地使用Passport和JWT?
  2. 在我的开发过程中,我可以有一个可复制的设置,包括领域、应用程序、用户、用户角色等吗?

共2个答案

匿名用户

所以,几个月前提出的问题,但我也面临这个问题,我想回答这个问题。

我认为你不需要Keycloak,使用OAuth2和JWT就足够了。

让我们证明我的答案:

你只有一个客户端——Angular应用程序。Keycloak很有用,当你有很多客户端(web-js、移动平台)并且你想动态地创建和管理它们时。但是,我认为,在你的例子中,你只创建一次客户端,将来不需要修改。

此外,Keycloak非常有用,当您与第三方系统(Google,Fb,Twitter等)进行大量集成时,因为Keycloak具有开箱即用的功能。或者您需要与一些SAML或LDAP提供商集成。

如果您需要一些身份和用户管理平台,以及当您有复杂的用户访问流程时,您可以使用Keycloak。

最后,如果您需要SSO(单点登录)功能,您可以考虑Keycloak。登录Keycloak后,用户无需再次登录即可访问其他应用程序。但是,根据您的描述,您只有一个应用程序。

匿名用户

KeyCloak提供单点登录(SSO)、身份代理和社交登录、用户联合、客户端适配器、管理控制台和帐户管理控制台等功能。这是一个开箱即用的解决方案,用于快速开发安全层application.You可以为多个应用程序提供单一的公共安全层。您可以在不使用keycloak的情况下实现安全机制。