Openid OIDC:多个机构共享同一个发行人,关注点?

Openid OIDC:多个机构共享同一个发行人,关注点?,openid,multi-tenant,openid-connect,identityserver4,authority,Openid,Multi Tenant,Openid Connect,Identityserver4,Authority,我们有一个multitenant identityserver open id connect解决方案,每个租户/客户当前都有自己的特定授权url和元数据信息。我们使用相同的密钥为所有租户签署jwts。一个租户的授权url示例:。原因是历史性的,不太容易改变 虽然我们确实需要为每个租户提供不同的授权url,但在构建内部API和为第三方验证签名的JWT时,我们确实希望尽可能简单。目前,颁发者uri也是特定于租户的,但我们正在考虑对此进行更改,以便所有租户共享相同的颁发者uri,从而可以针对固定的授

我们有一个multitenant identityserver open id connect解决方案,每个租户/客户当前都有自己的特定授权url和元数据信息。我们使用相同的密钥为所有租户签署jwts。一个租户的授权url示例:。原因是历史性的,不太容易改变

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


除了所有机构都必须共享相同的签名JWK这一依赖性之外,在安全性、规范或只是推荐的最佳实践方面,是否存在多个机构共享同一颁发者uri的问题

一般来说,我不建议使用同一个颁发者,因为这会增加令牌在租户之间重复使用的风险,即来自一个租户的用户在不同租户中模仿另一个用户

可以通过确保在标识预期收件人/承租人的令牌中发送受众,并确保收件人实际验证受众价值来降低这种风险,但您更依赖于收件人的正确实现,这很难确保

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

FWIW:重复使用密钥也有同样的理由:这使得防止交叉游戏变得更加困难

注意:原则上,密钥重用也使得在所有租户中滚动密钥和避免大爆炸的方法变得更加困难,但在OIDC的密钥中,您可能会使用jwks_uri来实现这一点,它会根据TLS服务器证书验证来自动化事情