0

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

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

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

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

4

1 回答 1

0

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

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

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

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

于 2018-11-12T07:47:27.493 回答