c# - 如何在 API 管理上验证 MSAL 令牌?
问题描述
我有一个使用 ADAL 进行身份验证的桌面应用程序,该应用程序向 API Management azure 服务上的 API 发出请求。迁移代码以使用 MSAL 后,API 管理返回 401,表示我的令牌无效。我看到监视请求的唯一区别是 ADAL 向此端点/tenantID/oauth2/token
和 MSAL发出请求/tenantID/oauth2/v2.0/token
。
在我的 API 管理中,我有这个政策:
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid. AAD" require-expiration-time="false">
<openid-config url="https://login.microsoftonline.com/tenantID/.well-known/openid-configuration" />
</validate-jwt>
我试图将众所周知的 url 更改为 v2.0 端点,但得到了同样的错误。如何使用 MSAL 验证令牌?
解决方案
从文档中的注释中,将众所周知的 url 更改为 v2.0 时,您可能需要使用而不是.common
tenantID
<openid-config url="https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration" />
另外,请确保您已正确完成此链接中的第 10 步:
如果您使用 v2 端点,请使用您在默认范围字段中为后端应用程序创建的范围。此外,请确保在您的 应用程序清单中将 accessTokenAcceptedVersion属性的值设置为。
2
推荐阅读
- javascript - 为什么在 jquery ajax 发布后我的链接转到表单的操作页面?它没有停留在同一页面
- swiftui - SwiftUI 如何用线连接对象?
- apache-spark - 使用 Pyspark 覆盖 Parquet 文件
- sql - 如何比较同一张表中的两组行(Oracle 12c)
- c# - 选择后组合框显示重复
- python - 根据创建日期对我的文件路径进行排序?
- python - 在现有的 Chrome 浏览器窗口上运行 Selenium
- sql - 选择更新数据的 ID 哪个更好:使用 Temp 表加入或使用 OUTPUT INTO?
- android - Leanback 设置控制器可见性
- python - 如何创建自己的数据框?