我正在将订阅从Azure AD的一个租户转移到另一个租户。我已经审查并遵循了this doc中概述的过程。一切都好。下一步是根据this doc更改已移动订阅的密钥库租户ID。在这种情况下,我无法找到一种方式来实现,而该方式不涉及随密钥移动和更改和部署依赖于密钥保险库的多个应用程序。理想情况下,我想将第二个租户(新租户)与密钥保险库关联,在新租户中注册应用程序,并让这些应用程序根据其自己的发布周期更新配置,并且一旦所有应用程序都更新为使用新的ClientID /在新的Azure AD租户中生成的/ Secret,我将删除旧的租户关联。但是,密钥库只能在任何给定时间与一个租户关联。可以使用哪种策略以顺畅的方式进行此转换,而又不必一次强制同步所有从属应用程序?似乎唯一的解决方案是创建一个与新的AD租户关联的新密钥库,注册应用程序并发布新的ClientID /秘密,并根据自己的部署计划使它们生效。最终可以删除旧的密钥库。这似乎是一个相当麻烦的方法。还有其他方法吗?
为了使事情更加复杂,将存储帐户密钥配置为managed by key vault,并且所有应用程序都使用key vault to get access to storage,而不是直接使用存储帐户密钥。在这里,存储帐户也只能由单个密钥保管库链接和管理。
[只有一个Key Vault对象应管理存储帐户密钥。不允许从多个对象进行密钥管理。
这意味着,除非存储密钥库链接的更新与使用该存储的所有应用程序同步并部署,否则创建新密钥库并迁移所有应用程序以使用它们的方法将无法使用。其中一些应用程序由不同团队在不同时区管理,因此同步部署非常困难,而且如果要回滚任何应用程序部署,它将失去对存储帐户的访问权限,或者所有应用程序都必须回滚。
虽然这可能不是很常见的情况,其中将订阅移至另一个Azure AD租户,但是我确信已经完成了,这就是为什么我希望获得一些有关如何执行此操作的指导而不必这样做的原因。所有与关键保管库相关的应用程序的同步部署。
更新1
事实证明,移动订阅后,密钥库访问处于真正混乱的状态。只要没有密钥库,旧租户的用户甚至都看不到密钥库,而新租户的用户则无法执行任何操作(看不到密钥,机密,证书或更新访问策略),只要密钥库的租户仍旧。如果密钥库已更新为新的租户,则用户仍看不到现有的密钥,机密和证书。他们确实可以访问以更新访问策略,但是甚至无法从门户网站上查看现有的密钥,机密和证书。 Powershell可以列出/查看这些,但不能更新任何值!所以那里也有差异。 Key Vault小组的某人可以确认这些吗,还是在Tenant举动中应该有一个红色的大警告,它将使对任何现有密钥,机密和证书的访问无效。
让KeyVault迁移租户会保留旧的租户值,以使现有访问策略不会失败。但是,当租户值更新为新租户时,旧的访问策略将失效,因为新租户中不存在标识,因此必须使用新的标识重新创建它们。这是设计使然。尽管不是官方文档,但不久前我就写了博客: