azure - 在订阅移动后更新密钥保管库关联的 Azure AD 租户,而无需同步部署所有相关应用
问题描述
我正在将订阅从 Azure AD 的一个租户转移到另一个租户。我已查看并遵循本文档中概述的流程。一切都很好。下一步是根据此文档更改已移动订阅的密钥保管库租户 ID. 这就是我想不出一种方法来做到这一点,即不涉及更改和部署依赖于 Key Vault 的多个应用程序以及移动。理想情况下,我想将第二个租户(新租户)与密钥保管库相关联,在新租户中注册应用程序,并让这些应用程序根据自己的发布周期更新配置,并且一旦所有应用程序都更新为使用新的 ClientID /Secret 在新的 Azure AD 租户中生成,我将删除旧的租户关联。但是,密钥保管库在任何给定时间只能与一个租户关联。可以使用什么策略来实现这种平稳过渡,而无需一次性同步部署所有相关应用程序?似乎唯一的解决方案是创建一个与新 AD 租户关联的新密钥库,注册应用程序并发布新的 ClientID/Secret 并让它们按照自己的部署计划上线。最终可以删除旧的密钥保管库。这似乎是一个相当麻烦的方法。还有其他方法吗?
更复杂的是,存储帐户密钥配置为由密钥保管库管理,所有应用程序都使用密钥保管库来访问存储,而不是直接使用存储帐户密钥。在这里,存储帐户也只能由单个密钥保管库链接和管理。
只有一个 Key Vault 对象应管理存储帐户密钥。不允许来自多个对象的密钥管理。
这意味着即使创建新的密钥保管库和迁移所有应用程序以使用这些方法也将不起作用,除非对存储密钥保管库链接的更新与使用此类存储的所有应用程序同步并部署。其中一些应用程序由不同时区的不同团队管理,因此同步部署相当困难,而且如果任何应用程序部署要回滚,它要么失去对存储帐户的访问权限,要么所有应用程序都必须回滚。
虽然将订阅移动到不同的 Azure AD 租户的情况可能并不常见,但我确信它已经完成,这就是为什么我想获得一些关于如何在不必进行同步部署的情况下执行此操作的指导所有依赖于密钥保管库的应用程序。
更新 1
事实证明,在移动订阅后,密钥库访问处于非常混乱的状态。旧租户的用户甚至看不到密钥保管库,因为没有订阅,只要密钥保管库的租户仍然是旧的,新租户的用户就无法做任何事情(看不到密钥、机密、证书或更新访问策略) . 如果密钥库更新到新租户,用户仍然看不到现有的密钥、机密和证书。他们确实可以访问以更新访问策略,但现有的密钥、机密和证书甚至无法从门户中查看。Powershell 可以列出/查看这些但不能更新任何值!所以那里也有差异。Key Vault 团队的某个人是否可以确认这些,或者租户移动中应该有一个大的红色警告,它会使对任何现有密钥的访问无效,
解决方案
让 KeyVault 移动租户会保留旧的租户值,以便现有的访问策略不会失败。但是,当租户值更新为新租户时,旧的访问策略将失效,因为新租户中不存在身份,必须使用新身份重新创建。这是设计使然。虽然不是官方文档,但我前段时间在博客上写过:
推荐阅读
- pdf - 如何使用 Pdfium 库获得 Line Ending 样式和 Line Dash 模式?
- java - IntelliJ IDEA 中不存在 Java 包
- r - 如何在新数据框中匹配两组因子水平?
- javascript - 在 AngularJS 中允许有条件的 .filter() 和 .map() on-change?
- java - 使用 Spring boot 2.1.1 时无法将 Dynamic Web Module 更改为 3.1
- wordpress - 如何使用 calc 在外部 CSS 样式表中使用 !important
- reporting-services - 如何将多个分组字段传递给参数
- rust - 在结构向量中借用
- java - 如何在 Spring Boot JPA 项目中设置 JDBC 映射?
- php - 将 recaptcha 添加到表达式引擎表单