为了从 VSTS 部署到 Azure 应用服务,您需要在 VSTS 中定义 Azure 资源管理器服务终结点。对于此服务终结点,您需要:
- 订阅 ID
- 租户 ID
- 服务主体客户端 ID
- 服务主体
前两个很明显,但对于服务主体来说就没那么简单了。各种文章建议在 Azure AD 中注册一个新应用程序,为该应用程序创建一个 API 访问密钥,并为自动创建的用户设置贡献者角色。然后可以使用应用程序的 ID 和密钥的(隐藏)值来填写最后两个字段。
这可行,但我觉得这不是正确的做法。一个原因是应用程序注册要求登录 URL,而 VSTS 根本不需要该 URL。第二个原因是,这个注册的应用程序除了提供服务主体外,没有任何其他用途。实际的应用程序是 Azure 应用服务。
这是它的预期目的吗,或者是否有更好的方法来获取 VSTS 服务端点的服务主体?
答案1
是的,这是正确的做法。服务主体本质上是一个应用程序或一个应用程序身份,您确实会使用它作为应用程序的一些功能,例如授予对 API 的访问权限等。对 URL 的需求是从应用程序只有 Web 应用程序和服务主体的时代遗留下来的,可以说这可以成为可选的,但目前还没有,所以您通常只能自己编一个。