Security 不同提供商的集中身份管理
我将构建一个web应用程序,允许用户使用他们的Google或Twitter帐户登录。我认为OpenID Connect(OAuth2)是目前验证身份的标准。 我还想提供几个API服务,这些服务只能使用来自Google或Twitter的有效访问令牌进行访问 例如,上面所有四个API都将是公开的,因此我必须保护未经授权的用户。对于基于NodeJS的API服务,我可以使用它来保护所有API 假设,在未来,API的数量将增加,例如最多20个API,并允许使用Facebook帐户登录。 同样,所有的API都必须得到保护,我必须用它做16次。 除了添加新的提供商Facebook,我还必须对所有20个API进行更改 问题是,它们是否是保持集中的一种方式,这意味着在未来,当我将提供更多的提供商(例如GITHUB)进行登录时,我希望在一个地方进行更改,而不是在20个地方进行更改。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
这是我需要的工具吗?这可能是OAuth 2.0和Open ID Connect的两个主要功能:
- 通过多个身份提供者联合登录到您的UI,并能够以集中的方式轻松添加新选项,如GitHub
- 完全控制访问令牌中包含的声明,以便您的API可以按照您的意愿授权请求
上述情况的一个例外是,您的API可能偶尔需要在登录后通过调用Google API访问用户的Google资源。这需要谷歌发行的代币。它可以通过-进行管理,尽管听起来您现在不需要它。这可能是OAuth 2.0和Open ID Connect的两个主要功能:
- 通过多个身份提供者联合登录到您的UI,并能够以集中的方式轻松添加新选项,如GitHub
- 完全控制访问令牌中包含的声明,以便您的API可以按照您的意愿授权请求
上述情况的一个例外是,您的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支持与这两个提供商以及其他一些提供商的登录集成,但请查看他们的文档以确定。非常感谢您的帮助。