我的公司将使用OpenID连接并使用Google作为身份提供商,我现在已阅读OpenID连接文档,仍然有一些问题,首先是我们有多项服务,我们应该为每项服务创建依赖方,或者可以使用为我们的所有服务创建一个依赖方?
例如,公司网站:company.com
和3种完全不同的服务:service1.com
,service2.com
,service3.com
,我们应该提供3个依赖方:{{1 }},auth.service1.com
,auth.service2.com
,如果用户点击auth.service3.com
上指向login
的{{1}}按钮,则会将用户重定向到service1
。< / p>
或者,我们是否可以为所有3项服务提供1个信赖方,auth.service1.com
?
答案 0 :(得分:1)
首先了解依赖方在OpenID Connect(OIDC)上下文中的含义。来自specification,
依赖方(RP)
要求最终用户身份验证的OAuth 2.0客户端应用程序 来自OpenID提供商的声明。
RP是OAuth 2.0客户端。因此,如果您检查OAuth 2.0规范的定义,请在下面找到definition(已提取,请参阅链接中的完整说明),
应用程序代表网站发出受保护的资源请求 资源所有者及其授权
正如我所见,答案依赖于那些突出的点。
因此,如果您将每个服务视为一个独立的应用程序并拥有自己的授权约束,那么我认为他们应该考虑使用不同的RP。否则,如果这些服务相互依赖并且内部使用相同的授权约束,那么请使用单个RP来表示它们。
无论如何,如果不确切知道这些服务实际上做了什么,就很难正确回答。
答案 1 :(得分:0)
是的。如果逻辑不同,您只需在RP中需要一些自定义代码即可管理来自多个应用程序的请求。这也提供了一个从客户端抽象逻辑并避免代码重复的地方。