产品生态系统中的身份validation和授权

我有一个由多个产品组成的产品生态系统,例如:angular度应用程序,网站和混合应用程序,所有这些应用程序都由节点后端供电。

所以,现在我想为整个生态系统添加一个单一的authentication和授权,也需要模块化和可扩展性。

另外,我正在遵循三层架构,即: [APPLICATION] – > [API] – > [DB] ,只有可访问数据库的API层。

现在我也希望身份validation和授权是另一个应用程序在生态系统,可以插入到其他应用程序和使用没有太多的设置。

另外,由于它是(身份validation和授权模块)另一个应用程序,我不希望它直接访问数据库,我希望它做API调用,再加上它不应该使用像auth0第三方authenticationscheme。

重要的是除了身份validation和授权模块之外的应用程序都不应该有任何身份validation相关的逻辑。

基本上这应该是模块比插入时允许身份validation和授权和无缝集成。

这个设置是可能的吗? 如果是这样,我该怎么办呢? 如果不是authentication和授权在其他生产级生态系统中是如何实现的?

提前致谢!

authentication绝对可以被认为是一个模块; 只是一个具有数据库后端的小部件,它接收凭证并吐出错误消息或授权令牌。 然而,授权有点复杂, 一旦你收到这些授权令牌,你需要决定他们的意思。

不知道你的应用程序的任何事情,我会说,你需要创build一个特权映射到每个应用程序的用户帐户。 如果你只是想限制用户访问对方的内容,这是微不足道的,但如果你想给一些用户更多(或更less)的权力比其他用户更难。 如果是这样,比我build议你使用某种forms的基于angular色的访问控制 。 你可以在这里find更多关于如何处理授权的讨论。