如何使用客户端凭据访问 Azure 代理 API

Man*_*har 5 azure-active-directory

我有一个托管 API 的本地服务器,并且我已按照此处提到的步骤使用 Azure AD 应用程序代理公开了该 API:https: //learn.microsoft.com/en-us/azure/active-directory/管理应用程序/应用程序代理添加本地应用程序

我可以使用 OAuth 2.0 通过代理访问 API,方法是从 Azure AD 获取授权代码,然后获取令牌,将代理 URI 指定为资源。

问题是,如何在不经过 OAuth 2.0 授权流程的情况下访问 API?

我通过创建另一个 Web API 应用程序 (App2) 并授予对代理应用程序的访问权限来尝试客户端凭据流程。我可以按照以下步骤使用客户端凭据流获取令牌。

https://login.microsoftonline.com/{tenantid}/oauth2/token
    ?grant_type=client_credentials
    &client_id={clientId}
    &client_secret={secret}
    &resource={proxyurl}
Run Code Online (Sandbox Code Playgroud)

当我使用此令牌访问代理 API 时,它说

当我尝试使用令牌(通过授权流程)时,我能够访问代理 API,但是当我尝试使用给予 App2 的令牌访问代理 API 时,我认为它应该允许访问 API。

目前的结果是:

内部服务器错误:

目前无法访问此企业应用。请稍后再试...

后续步骤 客户端请求遇到内部服务器错误。

快速链接 了解有关应用程序代理服务的更多信息 对应用程序代理服务进行故障排除