azure - 带有 API 管理访问令牌问题的 Azure Active Directory Oauth 2.0 客户端凭据流
问题描述
我一直在努力使我的 Azure Active Directory Oauth 2.0 客户端凭据流与 API 管理一起工作。但我也通过邮递员获得身份验证。但作为回报,我没有得到任何访问令牌,只是一堆 HTML。我怎样才能解决这个问题?应用程序的设置与文档完全一致,包括 JWT 策略的验证。
基本上,我希望我的客户端应用程序使用 Oauth 2.o 与我的 azure API 连接,而无需使用提供的客户端 id/secret 获得任何同意。我现在正在尝试使用 API 管理控制台开箱即用的 ECHO API 进行设置。
谢谢
解决方案
若要将应用程序权限与您自己的 API(而不是 Microsoft Graph)一起使用,您必须首先通过在 Azure 门户中的 API 应用程序注册中定义范围来公开 API。然后,通过在客户端应用程序的应用注册中选择这些权限来配置对 API的访问。如果未在 API 的应用注册中公开任何范围,则无法在 Azure 门户中的客户端应用程序注册中指定对该 API 的应用程序权限。
例如,如果我发送了具有自定义名称(如https://testwebapp.in/.default )的范围参数,而没有在 Azure AD 中配置与应用程序 ID URI 相同的名称,那么这是一种预期行为,您将收到错误 AADSTS500011。
scope
请求中的参数应该是你想要的资源的资源标识符(应用程序ID URI),加上.default 后缀。对于 Microsoft Graph 示例,该值为https://graph.microsoft.com/.default。此值告诉 Microsoft 标识平台,在您为应用程序配置的所有直接应用程序权限中,端点应为与您要使用的资源关联的权限颁发令牌。
推荐阅读
- json - 带有 Json 主体的 ASP.NET MVC 代码模型绑定失败
- c# - 当文档建议我不能阅读时,为什么我可以使用 Console.ReadLine 阅读超过 254 个字符?
- google-cloud-firestore - 如果 value==null,Firestore 跳过批量更新
- python - 为什么我不能在 Python 上安装模块
- javascript - 有人可以帮我弄清楚我的代码有什么问题吗?它将RNA序列翻译成蛋白质
- c++ - 如何定义包含模板化参数的枚举类型 (C++)
- sql - SQL IN“值太多”
- linux - ZSH 历史配置
- html - 如何用页脚覆盖所有空间?
- json - 如何在 MVC 中将数据从 sql server 绑定到 Kendo Grid