Security 不同提供商的集中身份管理

Security 不同提供商的集中身份管理,security,oauth-2.0,microservices,openid-connect,Security,Oauth 2.0,Microservices,Openid Connect,我将构建一个web应用程序,允许用户使用他们的Google或Twitter帐户登录。我认为OpenID Connect(OAuth2)是目前验证身份的标准。 我还想提供几个API服务,这些服务只能使用来自Google或Twitter的有效访问令牌进行访问 例如,上面所有四个API都将是公开的,因此我必须保护未经授权的用户。对于基于NodeJS的API服务,我可以使用它来保护所有API 假设,在未来,API的数量将增加,例如最多20个API,并允许使用Facebook帐户登录。 同样,所有的AP

我将构建一个web应用程序,允许用户使用他们的Google或Twitter帐户登录。我认为OpenID Connect(OAuth2)是目前验证身份的标准。 我还想提供几个API服务,这些服务只能使用来自Google或Twitter的有效访问令牌进行访问

例如,上面所有四个API都将是公开的,因此我必须保护未经授权的用户。对于基于NodeJS的API服务,我可以使用它来保护所有API

假设,在未来,API的数量将增加,例如最多20个API,并允许使用Facebook帐户登录。 同样,所有的API都必须得到保护,我必须用它做16次。 除了添加新的提供商Facebook,我还必须对所有20个API进行更改

问题是,它们是否是保持集中的一种方式,这意味着在未来,当我将提供更多的提供商(例如GITHUB)进行登录时,我希望在一个地方进行更改,而不是在20个地方进行更改。
这是我需要的工具吗?

这可能是OAuth 2.0和Open ID Connect的两个主要功能:

  • 通过多个身份提供者联合登录到您的UI,并能够以集中的方式轻松添加新选项,如GitHub

  • 完全控制访问令牌中包含的声明,以便您的API可以按照您的意愿授权请求

外部访问令牌

你应该避免在你的应用程序中使用这些。您的UI和API应该只使用您自己的授权服务器(Ory Hydra)颁发的令牌,该服务器管理与身份提供者的连接。然后,添加一个新的登录方法将只涉及集中的配置更改,UI或API中的代码更改为零

如果您还没有授权服务器

请看一下Security Identity Server和its,它对以下两个方面都有强大的支持:

外部资源


上述情况的一个例外是,您的API可能偶尔需要在登录后通过调用Google API访问用户的Google资源。这需要谷歌发行的代币。它可以通过-进行管理,尽管听起来您现在不需要它。

这可能是OAuth 2.0和Open ID Connect的两个主要功能:

  • 通过多个身份提供者联合登录到您的UI,并能够以集中的方式轻松添加新选项,如GitHub

  • 完全控制访问令牌中包含的声明,以便您的API可以按照您的意愿授权请求

外部访问令牌

你应该避免在你的应用程序中使用这些。您的UI和API应该只使用您自己的授权服务器(Ory Hydra)颁发的令牌,该服务器管理与身份提供者的连接。然后,添加一个新的登录方法将只涉及集中的配置更改,UI或API中的代码更改为零

如果您还没有授权服务器

请看一下Security Identity Server和its,它对以下两个方面都有强大的支持:

外部资源


上述情况的一个例外是,您的API可能偶尔需要在登录后通过调用Google API访问用户的Google资源。这需要谷歌发行的代币。它可以通过一个-虽然听起来你现在不需要它。

可以用作授权服务器?是的-这就是它在中的角色-不幸的是,不同的人使用不同的名称作为中央安全组件的角色,该组件接收OAuth 2.0和OpenID Connect消息并发出令牌。我没有使用过它,虽然它应该满足我上面提到的两个主要目标。所以我可以使用ory.sh/hydra来实现我上面所描述的,对吗?是的-除了API服务应该使用ory/hydra发行的令牌,而不是google或twitter令牌。我相当肯定hydra支持与这两个提供商以及其他很多提供商的登录集成,但请检查他们的文档以确定。非常感谢您的帮助。可以用作授权服务器吗?是的-这就是中的角色-不幸的是,不同的人使用不同的名称作为接收的中央安全组件的角色OAuth 2.0和OpenID连接消息并发出令牌。我没有使用过它,虽然它应该满足我上面提到的两个主要目标。所以我可以使用ory.sh/hydra来实现我上面所描述的,对吗?是的-除了API服务应该使用ory/hydra发行的令牌,而不是google或twitter令牌。我相当肯定hydra支持与这两个提供商以及其他一些提供商的登录集成,但请查看他们的文档以确定。非常感谢您的帮助。