多个服务可以使用一个依赖方吗?

时间:2018-04-20 00:04:25

标签: authentication oauth google-oauth openid openid-connect

我的公司将使用OpenID连接并使用Google作为身份提供商,我现在已阅读OpenID连接文档,仍然有一些问题,首先是我们有多项服务,我们应该为每项服务创建依赖方,或者可以使用为我们的所有服务创建一个依赖方?

例如,公司网站:company.com和3种完全不同的服务:service1.comservice2.comservice3.com,我们应该提供3个依赖方:{{1 }},auth.service1.comauth.service2.com,如果用户点击auth.service3.com上指向login的{​​{1}}按钮,则会将用户重定向到service1。< / p>

或者,我们是否可以为所有3项服务提供1个信赖方,auth.service1.com

2 个答案:

答案 0 :(得分:1)

首先了解依赖方在OpenID Connect(OIDC)上下文中的含义。来自specification

  

依赖方(RP)

     

要求最终用户身份验证的OAuth 2.0客户端应用程序     来自OpenID提供商的声明。

RP是OAuth 2.0客户端。因此,如果您检查OAuth 2.0规范的定义,请在下面找到definition(已提取,请参阅链接中的完整说明),

  

应用程序代表网站发出受保护的资源请求         资源所有者及其授权

正如我所见,答案依赖于那些突出的点。

  • 每项服务可以独立分类为一个应用程序吗?他们之间是否有独立的行为?
  • 授权约束如何对这些服务起作用。他们有独立的功能吗?它们如何代表最终用户(资源所有者)?

因此,如果您将每个服务视为一个独立的应用程序并拥有自己的授权约束,那么我认为他们应该考虑使用不同的RP。否则,如果这些服务相互依赖并且内部使用相同的授权约束,那么请使用单个RP来表示它们。

无论如何,如果不确切知道这些服务实际上做了什么,就很难正确回答。

答案 1 :(得分:0)

是的。如果逻辑不同,您只需在RP中需要一些自定义代码即可管理来自多个应用程序的请求。这也提供了一个从客户端抽象逻辑并避免代码重复的地方。