OIDC:多个权威机构共享同一个发行人,担心吗?
OIDC: Multiple authorities share same issuer, concern?
我们有一个多租户身份服务器 open id connect 解决方案,每个 tenant/customer 目前都有自己特定的授权 url 和元数据信息。我们使用相同的密钥为所有租户签署 jwt。一个租户的权限示例 url:https://auth.ourdomain.com/tenant123。 (原因是历史原因,不太容易改变)
虽然我们确实需要为每个租户提供不同的授权 url,但在构建内部 api 和为第三方验证签名的 jwt 时,我们真的希望尽可能简单。目前,颁发者 uri 也是租户特定的,但我们正在考虑更改此设置,以便所有租户共享相同的颁发者 uri,因此可以针对固定的授权 uri 执行 jwt 验证。
除了所有权威机构必须共享相同的签名 jwks 的依赖性之外,在涉及安全性、规范或只是推荐的最佳实践时,是否存在对多个权威机构共享相同发行者 uri 的担忧?
一般来说,我不建议使用同一个发行者,因为这会增加令牌在租户之间重复使用的风险,即一个租户的用户冒充另一个租户的另一个用户。
可以通过确保在标识预期 recipient/tenant 和 的令牌中发送 "audience" 来降低风险,确保收件人确实验证受众价值,但你会 - 甚至更多 - 依赖于接收者的正确实施,这很难确保。
另一项降低风险的措施是确保用户标识符在所有租户中都是唯一的,但这也很难确保。
FWIW:相同的论点适用于重复使用密钥:它使得更难防范 "cross play"。
注意:原则上,密钥重用也使滚动密钥变得更加困难(并避免所有租户之间的大爆炸方法),但在 OIDC 的密钥中,您可能无论如何都使用 jwks_uri
,它可以使事情自动化基于 TLS 服务器证书验证。
我们有一个多租户身份服务器 open id connect 解决方案,每个 tenant/customer 目前都有自己特定的授权 url 和元数据信息。我们使用相同的密钥为所有租户签署 jwt。一个租户的权限示例 url:https://auth.ourdomain.com/tenant123。 (原因是历史原因,不太容易改变)
虽然我们确实需要为每个租户提供不同的授权 url,但在构建内部 api 和为第三方验证签名的 jwt 时,我们真的希望尽可能简单。目前,颁发者 uri 也是租户特定的,但我们正在考虑更改此设置,以便所有租户共享相同的颁发者 uri,因此可以针对固定的授权 uri 执行 jwt 验证。
除了所有权威机构必须共享相同的签名 jwks 的依赖性之外,在涉及安全性、规范或只是推荐的最佳实践时,是否存在对多个权威机构共享相同发行者 uri 的担忧?
一般来说,我不建议使用同一个发行者,因为这会增加令牌在租户之间重复使用的风险,即一个租户的用户冒充另一个租户的另一个用户。
可以通过确保在标识预期 recipient/tenant 和 的令牌中发送 "audience" 来降低风险,确保收件人确实验证受众价值,但你会 - 甚至更多 - 依赖于接收者的正确实施,这很难确保。
另一项降低风险的措施是确保用户标识符在所有租户中都是唯一的,但这也很难确保。
FWIW:相同的论点适用于重复使用密钥:它使得更难防范 "cross play"。
注意:原则上,密钥重用也使滚动密钥变得更加困难(并避免所有租户之间的大爆炸方法),但在 OIDC 的密钥中,您可能无论如何都使用 jwks_uri
,它可以使事情自动化基于 TLS 服务器证书验证。