我在 Azure 中执行了“公开 API”,但无法向客户端程序获取该范围的令牌

2023-11-30

我正在尝试构建一个 WebAPI 并希望使用范围来限制其他客户端应用程序的权限。我在“公开 API”边栏选项卡上创建了一个范围“BuildingAccess”,并将其他客户端应用程序添加到具有该范围的授权列表中。但是,当我使用客户端程序尝试获取具有该范围的令牌时,我得到“AADSTS70011: The provided request must include a 'scope' input parameter. The provided value for the input parameter 'scope' is not valid." error

 IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create("removed")
            .WithTenantId("removed")
            .WithClientSecret(ClientSecret)
            .Build();

        List<string> scopes = new List<string>();
        scopes.Add(".default");
        scopes.Add("https://localhost:44371/BuildingAccess");

        AuthenticationResult result = null;
        try
        {
            result = await app.AcquireTokenForClient(scopes).ExecuteAsync();
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("Token acquired \n");
            Console.ResetColor();
        }
        catch (MsalServiceException ex)
        when (ex.Message.Contains("AADSTS70011"))
        {
            // Invalid scope. The scope has to be of the form "https://resourceurl/.default"
            // Mitigation: change the scope to be as expected
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("Scope provided is not supported");
            Console.ResetColor();
        }

唯一有效的格式似乎是当范围设置为https://localhost:44371/.default。对于我尝试过的不同格式,下面添加 BuildingAccess 范围的所有其他组合均失败,并出现以下错误。

  • 范围api://333333-2222-1111-0000-aaaaaaaaaaaaa/BuildingAccess https://localhost:44371/.default无效。
  • 范围api://333333-2222-1111-0000-aaaaaaaaaaaaa/.default api://333333-2222-1111-0000-aaaaaaaaaaaaa/BuildingAccess无效。
  • 范围.default BuildingAccess无效。
  • 范围BuildingAccess无效。
  • 范围api://333333-2222-1111-0000-aaaaaaaaaaaaa/BuildingAccess
  • 范围https://localhost:44371/BuildingAccess无效。

如果那个有效的https://localhost:44371/.default,然后我的服务器端出现错误,因为它失败了

抛出异常: 'Microsoft.IdentityModel.Tokens.SecurityTokenInvalidAudienceException' 在 Microsoft.IdentityModel.Tokens.dll 中

我在客户端收到未经授权的回复。


1.您应该输入正确的格式范围,确保使用以下格式:api://{Your-Application-ID}/your_scope_name。

2.Then you should grant permissions to the API and select the administrator to agree. enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我在 Azure 中执行了“公开 API”,但无法向客户端程序获取该范围的令牌 的相关文章

随机推荐

  • Android 在退出应用程序和显示 Toast 时取消 Toast

    我已经在这里阅读过有关此类问题的信息 但答案似乎不起作用 我展示一个Toast当用户单击按钮时 当用户连续单击按钮时 即使用户退出 Activity Toast 也会不断显示 吐司的长度很短 由于文本很长 因此无法更改吐司的长度 这是我目前
  • Valgrind - 无法理解错误输出

    如果我最终做错了什么 我很抱歉 好的 我的问题如下 我刚刚编写了一些非常简单的代码 但是当你查看 Valgrind 错误输出时 它让我感到困惑 Code include
  • Azure AD B2C 审核日志 - 图形 API

    我正在尝试检索 Azure AD B2C 用户登录审核日志 但它抛出以下错误 var signIns await graphClient AuditLogs SignIns Request GetAsync 失败 Microsoft Asp
  • 使用 AngularJS 创建自定义属性

    我是 AngularJS 的新手 我正在尝试编写一个指令来设置background color of a div 基于某种场景 本质上 在我看来 我希望能够编写以下代码 div content here div or div content
  • Angular UI Router:根据父解析对象决定子状态模板

    这是我的 app js 文件 我有一个父状态和两个子状态 两个子视图都需要该对象 states push name parentstate url parent objId abstract true templateUrl views p
  • .Net core托管服务保证完成

    我正在查看 Net Core 2 1 新功能托管服务 我发现它们的模型非常相似队列背景工作项 队列后台工作项似乎有一个限制 任务必须在 90 秒内执行 AppDomain 关闭只能延迟 90 秒 实际上是 HttpRuntimeSectio
  • Perl 正则表达式 |如何从文件中排除单词

    我正在寻找一些关于我在项目中的一些要求的 Perl 正则表达式语法 首先 我想从 txt 文件 字典 中排除字符串 例如 如果我的文件有以下字符串 path Document txt tree car ship 我使用正则表达式 a1tes
  • 在 Android 中创建新项目时出错

    在 Eclipse 中创建新的 Android 项目时 出现以下错误 2011 03 16 09 49 50 p ERROR Unknown option debug mode 2011 03 16 09 49 50 p Android A
  • spring 3.0同时支持jsp和jspx

    我已经设置了一个 roo 应用程序 roo 中内置的默认视图解析器适用于 jspx 文件 是否也可以支持jsp文件 我尝试配置两个 viewResolvers 但似乎没有 urlBasedViewResolvers 可以共存 无论是其中之一
  • 如何检查URL是否有效[重复]

    这个问题在这里已经有答案了 我在该用户中有一个文本框输入 URL 但如果想在页面渲染时检查该 URL 该怎么办 这是我的代码 protected void btnRender Click object sender EventArgs e
  • 如何在 python 中使用 xpath 查询带有命名空间的 xml 数据

    我正在尝试使用以下代码将 XPath 查询应用于具有命名空间的 XML 数据 from lxml import etree from io import StringIO xml
  • Getter 不与任何字段关联

    我收到编译器错误 Getter getLength inch 不与任何字段关联 对于以下代码 getLength inch 只是一个实用方法 import io realm RealmObject public class Measurem
  • 写入正在运行的 Jar

    我正在尝试创建一个包含数据的 Jar 文件罐子里面在程序执行之间持续存在 我知道还有其他方法可以保存数据 但我想要一个完全独立的 Jar 文件 我有一些似乎有效的东西 我希望就您在我的方法中看到的任何漏洞提供反馈 例如feels对此很黑客
  • Angular 2动态组件点击事件

    我正在尝试动态创建组件 但我想向其添加单击操作 但我不知道如何操作 我试图这样做 constructor public navCtrl NavController private resolver ComponentFactoryResol
  • 握手失败;返回 -1,ssl 错误代码 1,net_error -202

    我试图在使用用户输入打开的每个浏览器窗口上添加身份验证代理 但出现这些错误 20792 21516 1222 011708 284 ERROR ssl client socket impl cc 935 handshake failed r
  • Tensorflow 对象检测 API `indices[3] = 3 is not in [0, 3)` 错误

    我正在重新训练 TF 对象检测 API 的 mobilenet v1 SSD 并且在训练步骤中遇到错误 INFO tensorflow Starting Session INFO tensorflow Saving checkpoint t
  • 从 ASP.NET 页面打开 pdf

    我有 PDF 我想从 ASP net 项目打开它 我不想导航到 PDF 但我想保持当前页面打开 但当用户单击链接时 我想在另一个页面中打开 PDF 文件 您可以在新窗口中打开 PDF
  • 如何选择多个连接表值满足选择条件的行?

    给定以下示例表架构 顾客表 CustID 1 2 3 发票表 CustID InvoiceID 1 10 1 20 1 30 2 10 2 20 3 10 3 30 目标是选择 InvoiceID 值为 10 和 20 不是 OR 的所有客
  • 使用 Javascript 切换图像 src 属性

    我正在尝试更改 HTML 图像src使用 JavaScript 我有两个图像 Plus gif 和 Minus gif 我已插入 HTMLimg标签并编写了一个 Javascript 函数来更改图像src当点击时 问题是当用户单击图像时我想
  • 我在 Azure 中执行了“公开 API”,但无法向客户端程序获取该范围的令牌

    我正在尝试构建一个 WebAPI 并希望使用范围来限制其他客户端应用程序的权限 我在 公开 API 边栏选项卡上创建了一个范围 BuildingAccess 并将其他客户端应用程序添加到具有该范围的授权列表中 但是 当我使用客户端程序尝试获