【问题标题】:Managed Identities for Azure AppService to AppService CallAzure 应用服务到应用服务调用的托管标识
【发布时间】:2018-11-09 17:33:36
【问题描述】:

我正在探索为托管在 Azure 应用服务中的 REST API 实施托管标识的可能性。此 API 使用多个第三方 API,这些 API 不在我们的控制范围内并由 AAD 保护。

目前,我们将 AAD ApplicationId / Secret 存储在配置中。每当我们需要使用任何第三方 API 时,我们都会遵循以下流程 -

  1. 使用 ApplicationId 和 Secret 生成 Token
  2. 使用标头中的令牌调用第三方 API
  3. 在通话期间检查令牌中的 clientId 以获取授权

我们可以在这种情况下使用托管身份吗? 这是否需要对其中任何 API 进行代码更改? 我能否访问可以载入第三方 API 以进行授权的 ClientId?

【问题讨论】:

  • 如何在第三方 API 中授予对 ApplicationID 的访问权限?您应该能够遵循相同的流程,而是向托管身份服务主体授予权限。
  • 我们给他们我们的 clientid,他们通常会在他们的 API 上列入白名单。如果我使用系统分配的托管标识,我将如何知道我的 clientID,或者我应该使用用户分配的托管标识。
  • @ArturoLucatero-MSFT 有没有办法找出托管身份正在管理的 SPN 的 ClientId?
  • 这个问题有更新吗?

标签: azure-active-directory azure-web-app-service azure-managed-identity


【解决方案1】:

AFAIK,您可能无法通过 MSI 做到这一点,MSI 用于让应用服务/功能应用访问其他天蓝色资源。如果您启用 Web 应用程序的 MSI,它只会自动创建服务主体,而无需 AD 应用程序。

有没有办法找出托管身份正在管理的 SPN 的 ClientId?

可以,导航到 Azure Active directory 中的 Enterprise applications-> 搜索您的 Web 应用程序的名称(您需要使用 All Applications 指定 Application Type 过滤器)-> 在Properties,你可以找到Application ID,也叫ClientID,你想要的。

但是即使你能找到它,你也无法生成服务主体的秘密。我认为您只能使用 AD 应用程序(应用程序注册)来做到这一点。

【讨论】:

    猜你喜欢
    • 2020-08-10
    • 2019-10-26
    • 1970-01-01
    • 2019-01-24
    • 2020-12-06
    • 1970-01-01
    • 2020-06-02
    • 2018-07-22
    • 1970-01-01
    相关资源
    最近更新 更多