0

我们有一个多租户身份服务器开放 id 连接解决方​​案,每个租户/客户当前都有自己的特定授权 url 和元数据信息。我们使用相同的密钥为所有租户签署 jwts。一个租户的示例授权 URL:https://auth.ourdomain.com/tenant123。(原因是历史性的,不容易改变)

虽然我们确实需要为每个租户提供不同的授权 url,但在构建内部 api 和第三方验证签名的 jwt 时,我们真的希望尽可能简单。目前,颁发者 uri 也是特定于租户的,但我们正在考虑更改这一点,以便所有租户共享相同的颁发者 uri,因此可以针对固定权限 uri 执行 jwt 验证。

除了所有机构必须共享相同的签名 jwks 的依赖性之外,当涉及到安全性、规范或只是推荐的最佳实践时,是否有多个机构共享相同的颁发者 uri 的担忧?

4

1 回答 1

1

一般来说,我不建议使用同一个发行者,因为这会增加跨租户重复使用令牌的风险,即来自一个租户的用户冒充不同租户的另一个用户。

可以通过确保在标识预期接收者/租户的令牌中发送“受众”确保接收者实际验证该受众价值来降低这种风险,但您将依赖 - 甚至更多 - 在收件人,这很难保证。

另一项降低风险的措施是确保用户标识符在所有租户中都是唯一的,但这也很难确保。

FWIW:同样的论点也适用于重复使用密钥:它使得防止“交叉游戏”变得更加困难。

注意:原则上,密钥重用也会使密钥翻转变得更加困难(并避免在所有租户之间采用大爆炸式方法),但在 OIDC 的密钥中,您可能jwks_uri无论如何都使用 a ,它可以根据 TLS 服务器证书验证自动执行操作。

于 2017-11-03T15:07:13.170 回答