我的客户应该如何授权我的服务器端应用程序访问他们的 Azure 资源?

How should my customer authorize my server-side application to access their Azure resources?

我们构建了一个应用程序,可以读取有关客户云资源的信息并为他们提供见解。目前已为 AWS 实施。

在 AWS 中,我让我的客户创建一个具有信任策略和外部 ID 的 IAM 角色,并与我共享该信息。然后我"Assume Role"进入他们的账户。 Azure 中的等效方法是什么?

我看到了 "Application"、"Service Principal" 等概念 - 但我读到的所有内容似乎都超级关注 SSO 和授权企业用户 "access external apps" 而不是授权服务器端应用程序他们自己。

我是否应该创建一个 "application" 并让他们添加它?我是否创建一个用户并让他们邀请它?抱歉 - 我是 Azure 的新手,到目前为止,大多数文档都将我视为试图将 Jira 添加到 IdP 门户的 IT 管理员。

好吧,您可以让他们完成所有工作并为您提供凭据,或者构建一个允许他们半自动设置所有内容的应用程序。

手动选项要求他们创建应用注册,生成服务主体,然后将 RBAC 角色授予服务主体。然后他们可以给你租户 ID、客户 ID 和密码。除了秘密,您还可以创建证书并为他们提供 public 密钥。他们可以将其作为凭证添加到应用程序中。

他们也可以使用命令行工具来生成 SP 和应用程序 https://docs.microsoft.com/en-us/cli/azure/ad/sp?view=azure-cli-latest#az-ad-sp-create-for-rbac

半自动选项是您构建一个在 AAD 租户中注册为多租户应用程序的应用程序,并且需要以当前登录用户身份访问 Azure 资源管理 API。 然后他们可以登录,您可以获得他们的订阅列表,他们可以选择一个,然后您可以立即进行分析。 您也可以存储刷新令牌以保持更长时间的访问。