我有一个托管 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。
目前的结果是:
内部服务器错误:
目前无法访问此企业应用。请稍后再试...
后续步骤 客户端请求遇到内部服务器错误。
快速链接 了解有关应用程序代理服务的更多信息 对应用程序代理服务进行故障排除
我搜索了我发现的错误,没有找到任何匹配的问题.所以发帖问题.感谢是否有人提供了一些指导.
我的目标是在桌面客户端中访问图形API.我已经开始使用fiddler进行实验了.
请求令牌并使用Authorization标头中的令牌调用图API,获取以下错误.
https://graph.microsoft.com/v1.0/users
119
{
"error": {
"code": "Authorization_IdentityNotFound",
"message": "The identity of the calling application could not be established.",
"innerError": {
"request-id": "4c3a7bc6-e3d8-453c-adc9-5a12fec3b0ee",
"date": "2016-05-11T00:46:23"
}
}
}
Run Code Online (Sandbox Code Playgroud)