- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个使用 Azure Active Directory 保护的 WebAPI。我现在需要对此进行测试并尝试将 fiddler 与授权 header 一起使用。我正在尝试使用以下代码生成 token 。
Target obj = (Target)cmbTarget.SelectedItem;
AuthenticationResult authenticationResult;
string aadInstance = obj.AADInstance; // "https://login.windows.net/{0}";
string tenant = obj.Tenant; //"rudderless.onmicrosoft.com";
string apiResourceId = obj.ApiResourceId; //"15b4ac7f-23a8-4958-96a5-64159254690d";
string clientId = obj.ClientId; // "47cdc6c3-226a-4c38-b08e-055be8409056";
Uri redirectUri = new Uri(obj.RedirectUri); //new Uri("http://nativeclient");
string authority = string.Format(aadInstance, tenant);
authContext = new AuthenticationContext(authority);
authenticationResult = this.authContext.AcquireToken(apiResourceId,
clientId, redirectUri, PromptBehavior.Always);
txtToken.Text = authenticationResult.AccessToken;
Clipboard.SetText($"Bearer {txtToken.Text}");
我成功生成了 token ,当我使用 token 调用 webapi 时,它抛出 401 消息
WWW-Authenticate: Bearer error="invalid_token", error_description="The audience is invalid"
最佳答案
我认为重新审视身份验证的不同步骤很重要,希望通过讨论您能够解决遇到的问题。
当客户端尝试获取资源的访问 token 时,它需要向 AAD 指定它想要获取哪个资源的 token 。客户端可以配置为调用多个资源,所有资源都具有不同的配置,因此期望资源始终在访问 token 请求中指定。
资源可以是资源的应用程序 ID GUID,也可以是在资源上注册的有效应用程序 ID URI。 AAD 应该能够根据您提供的值(value)唯一地识别您要尝试访问的资源。但请注意,如果您使用应用程序 ID GUID,您将从 AAD 获得一个 token ,其中受众声明是应用程序 ID GUID。或者,如果您使用应用程序 ID URI,您将看到该 URI 作为 token 中的受众声明。
在这两种情况下,您都将获得“相同”资源的 token ,但 token 中的声明将显示不同。此外,单个应用程序资源可能在其应用程序上注册了多个应用程序 ID URI。根据您在身份验证请求中使用的受众声明,您将在 token 中获得不同的受众声明,该声明与您传入的资源参数相匹配。
最后,一旦获得 token ,您就可以将其发送到资源 API,资源 API 将验证 token 的许多内容,例如:客户端 ID 声明、范围/角色声明、身份验证方法('acr ' 声明),并且绝对观众声明符合他们的期望!
这意味着资源 API 最终需要说“我接受
一天结束时,我的预感是这个错误来自您自己的 API,并且发生这种情况是因为您尚未将应用程序配置为接受与您的资源的应用程序 ID GUID 匹配的受众声明(它看起来像什么)当您根据代码示例获得 token 时,您就通过了)。
希望这能解决您的问题!
关于Azure AAD - 受众无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40336275/
来自他们的文档 - https://learn.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-pta-how-it-
AAD 管理角色只能直接分配给用户。无法通过 AAD 组分配它们。 现在 PIM 中有一个“特权访问组(预览)” Pane ,但我找不到任何方法在 Azure AD 组管理中启用角色可分配组。因此,P
AAD 应用程序需要哪些 OAuth API 和权限,以便我可以使用它来授权创建新的 AAD 应用程序,如本 example 中所述。 最佳答案 您可以在 Azure AD Graph API 上向应
我正在配置一堆 Azure Active Directory (AAD) 应用程序,并希望同一组用户成为所有应用程序的所有者。我创建了一个 AAD 组来放置这些用户,但是当我尝试将该组分配为所有者时,
AAD 应用程序需要哪些 OAuth API 和权限,以便我可以使用它来授权创建新的 AAD 应用程序,如本 example 中所述。 最佳答案 您可以在 Azure AD Graph API 上向应
我正在配置一堆 Azure Active Directory (AAD) 应用程序,并希望同一组用户成为所有应用程序的所有者。我创建了一个 AAD 组来放置这些用户,但是当我尝试将该组分配为所有者时,
需要将用户的照片持续同步(不仅仅是一次)到 AD 环境中,然后同步到 Azure AD 中。根据下面的文章,该属性仅在初始同步时同步一次。当有人获得新徽章时,我们的安全小组会更新这些照片,然后我们会更
我们有一个 Office 365 租户,用于为我们的组织提供基本 AD 功能(加入桌面 PC、身份验证等)。 我们还在构建一个独立的移动和网络应用程序。我们有一个与我们的主要 AAD 租户绑定(bin
有人可以帮我解决以下问题吗?提前致谢 我在实验室中设置 AD Connect,并且我的实验室 Active Directory 用户可以正常同步到我的实验室 Azure AD 然后,我第二次通过 Az
我们有一个 Office 365 租户,用于为我们的组织提供基本 AD 功能(加入桌面 PC、身份验证等)。 我们还在构建一个独立的移动和网络应用程序。我们有一个与我们的主要 AAD 租户绑定(bin
有人可以帮我解决以下问题吗?提前致谢 我在实验室中设置 AD Connect,并且我的实验室 Active Directory 用户可以正常同步到我的实验室 Azure AD 然后,我第二次通过 Az
我希望我们的团队在配置与生产 AAD 非常接近的开发 AAD 中完成所有开发工作。这样,我们的工作就不需要更改为在生产环境中工作。 目前我们的团队拥有: 生产 AAD 租户具有: 生产订阅 开发订阅;
使用 Confluence 和 Azure AAD 对 SCIM 实现进行测试,并使用 OIDC 进行身份验证,并遇到以下问题: 如果从 Confluence 中手动删除 SCIM 配置帐户,Azur
使用 Node.js 的 Microsoft MSAL 快速入门的修改版本(原始 here ),我使用隐式流成功接收了 Azure 存储 API 的访问 token 。该 token 包含组声明,但声
我想在遥测中记录以下内容以用于诊断和使用目的: Azure 订阅 ID AAD 租户 ID AAD 应用客户端 ID 我应该将它们视为 secret /PII 并对它们进行哈希/加密吗? (不用说,我
场景: 用户使用域帐户登录桌面 用户在 AAD 中拥有一个与域帐户不同的 Azure 帐户 为 Azure 帐户配置了 AAD 身份验证的 Azure SQL 数据库 用户如何使用 SQL Serve
场景: 用户使用域帐户登录桌面 用户在 AAD 中拥有一个与域帐户不同的 Azure 帐户 为 Azure 帐户配置了 AAD 身份验证的 Azure SQL 数据库 用户如何使用 SQL Serve
我创建了一个使用 Azure Active Directory 保护的 WebAPI。我现在需要对此进行测试并尝试将 fiddler 与授权 header 一起使用。我正在尝试使用以下代码生成 tok
使用 API Graph,我创建了一个包含电子邮件地址的 ADD 组。该地址的域会自动添加到租户中的主要域中。我无法更改租户上的默认域,但我需要将创建的组的域更改为主域以外的域。我怎样才能实现这个目标
我有几个 API(“A 组和 B 组”),它们调用一个中央 API(“API X”)。全部通过 Azure AD 进行身份验证。 在“API X”中,我想将几个路由限制为可用路由的子集。 /api
我是一名优秀的程序员,十分优秀!