问题标签 [microsoft-identity-platform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4157 浏览

azure - 来自 Microsoft 的罕见 AADSTS7000215 错误(提供了无效的客户端密码)

有时在尝试获取令牌时:

我收到错误:

我确信 client_secret 是正确的并且没有过期。大多数具有相同 client_secret 的请求都是成功的,但其中一些会返回此错误。

这种行为的原因是什么?

请求正文:

0 投票
1 回答
115 浏览

asp.net-core - 在 .Net Core API 中,当我使用 Microsoft Identity AddSignIn 而不是旧解决方案时 AddAuthentication CORS 不起作用

因此,我使用 Microsoft.Identity.Web 的预览版进行 Azure 身份验证,它工作正常。但是我们的前端是 React 并托管在其他地方。所以我们需要为此启用 Cors。但我收到如下 Cors 错误:

已从源“http://localhost:3000”访问“https://login.microsoftonline.com/....”(从“https://localhost:44323/imrprojects/search”重定向)获取被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。

如果我更改代码并使用旧的解决方案,它工作正常!startup.cs 中的代码:

如果我使用 services.AddAuthentication 它可以工作,但是当我使用 services.AddSignIn 它不工作。

顺便说一句,我有 services.AddCors 和 app.UseCors 。

0 投票
1 回答
25 浏览

azure-ad-b2c - 我可以使用哪些方法将在线游戏的 Azure B2C 令牌转换为“休息一下”提醒?

我想在发行者级别配置一种方法来查看身份验证令牌是否已更新,重定向屏幕似乎会提醒(或强制执行)冷静期,例如,如果我正在玩帝国时代,文明,或在线模拟城市我需要类似的东西来保存我的游戏(只需再转一圈......)。

  • 有什么方法可以确定 OIDC 会话何时到期,和/或 OAuth 资源令牌需要续订,是否已续订?

  • B2C 功能应用程序能否读取 AppInsights(或其他日志)以loading...页面形式提供心理健康提醒(或其他各种改善生活的东西)?(类似于 Apple iOS 启动屏幕指南,但创建了身份和隐私的扩展)

0 投票
1 回答
759 浏览

azure-active-directory - Microsoft 身份平台 Azure AD 应用程序角色在 NET Core 3.1 Razor 页面中不起作用

我一直在这里关注最近的 MS 项目示例:https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/tree/master/5-WebApp-AuthZ/5-1-Roles

我找不到 Razor 项目的任何示例,只有 MVC 移植了我认为支持使用 Azure AD 应用角色和使用与项目示例中相同的 AuthorizationPolicyBuilder 库进行授权所需的所有内容。

我通过更新应用清单文件并将用户分配给此 WebApp 所需的角色,在 Azure AD 中创建了一个应用角色。我相信我已经涵盖了 Azure 中所需的步骤,因为我可以清楚地看到所需的角色“ViewLogs”包含在成功登录后从 Azure 返回的 ID 令牌中。

在此处输入图像描述

问题是一个受“ViewLogs”授权策略保护的页面,每次我尝试加载该页面时都会给我一条拒绝访问消息。我不确定如何诊断它以了解为什么它不让我进入。

启动.cs

应用角色类.cs

我想访问的页面:

提前致谢...

0 投票
1 回答
350 浏览

oauth-2.0 - Azure 多租户应用程序 - 请求管理员同意自己应用程序的角色

我制作了一个多租户应用程序(客户端 ID:“abc-efg”),它需要我的客户租户图表的一些资源。为了获得他们图表的权限,我创建了一个我的客户的 Azure 管理员单击并同意的 URL:

如果我将应用程序权限(即 Groups.Read)添加到客户端 ID 为“abc-efg”的应用程序,客户将获得一个同意屏幕并可以将应用程序添加到他的租户。
这很好用!

我现在有另一个应用程序公开了一些自己的权限(即:Custom.Read.All)。该应用程序公开了这些权限,同时也拥有这些权限。这是需要的,因为该应用程序是受自定义权限保护的 api 的唯一消费者。

我的应用程序现在需要客户的这些自定义权限,所以我尝试使用与图表相同的方式:

但这会引发错误消息:

应用程序正在为自己请求令牌。仅当使用基于 GUID 的应用标识符指定资源时才支持此方案。

所以我只用 GUID 试试:

但是找不到这个应用程序,因为该资源不存在。

如果我用谷歌搜索这条错误消息,我只能找到旧 V1 端点的评论,而不是 V2 的评论。

有人对此有解释吗?对于我自己的应用程序定义的权限,我如何为我的客户租户获取应用程序权限?

最后,我希望能够接收具有我客户的发行者租户 ID 的令牌,但我自己的应用程序的角色/范围。

0 投票
1 回答
2178 浏览

access-token - 空 MSAL 令牌缓存

我有以下简单的 .NET 脚本:

我的期望是第一个 Login(...) 调用执行交互式身份验证,然后第二个调用 var accounts = await app.GetAccountsAsync() 返回之前登录的帐户。但是,这些帐户没有任何项目。因此,似乎令牌缓存不是这些调用的一部分。

有没有办法在第一次通话中存储登录的帐户?不应该是自动的吗?

0 投票
2 回答
874 浏览

oauth-2.0 - 如何使用 OAuth 2.0 使网页上空闲的用户超时,并要求重新输入凭据?

大家好,

我有一个托管在 Azure 中的网站。它使用 Blazor 作为前端在 .net core 3.1 上运行。我正在使用 OAuth 2.0 和 OpenID Connect 与 Microsoft Identity Client 4.14 对站点的用户进行身份验证。我还使用需要同意的委托权限对 Azure 进行 API 调用。

我想实现站点安全并仍然允许用户使用他们的 OAuth 凭据。

  1. 我希望用户不必专门为此站点创建凭据。
  2. 我想利用 Microsoft Identity Platform 权限、同意等。
  3. 我想设置一个空闲超时。

这是我无法弄清楚如何实现的部分。

  1. 当用户在站点上并且闲置了特定时间段(我将使用 15 分钟作为示例)时,我希望页面锁定,因此用户必须重新输入凭据。
  2. 如果用户关闭浏览器并再次尝试访问该站点,我希望他再次接受凭据挑战。我意识到这也意味着对该站点的初始访问也需要输入凭据。
0 投票
1 回答
215 浏览

asp.net - 将 AzureAdB2C 与 Microsoft.Identity.Web 一起使用时访问用户令牌

我有一个简单的 Blazor 服务器端应用程序,它使用 microsoft-identity-web 0.2.1-preview 包登录用户。

目的是使用 AzureAdB2C 登录提供身份验证,该登录允许用户使用其 Microsoft 个人帐户登录并使用委派访问权限来调用 Microsoft Graph 功能。(将来我想将其扩展到包括其他云提供商,因此使用 B2C)。

在我的 Startup.cs 中,我添加了 MicrosoftWebAppAuth 和我的服务,如下所示:

使用初始化的 ITokenAcquisition 正确调用了我的服务

如果我随后调用await tokenAcquisition.GetAccessTokenForAppAsync(scopes);A NullReferenceException ,则会使用以下堆栈跟踪抛出:

确切的代码适用于 AzureAd 身份验证。我假设这不是使用 B2C 身份验证时访问用户令牌的正确方法?我应该调用什么来进行委派的 Microsoft API 调用?

0 投票
1 回答
1937 浏览

.net-core - ADFS 注销问题 ID4037:无法从以下安全密钥标识符解析验证签名所需的密钥

我们有一个自主开发的 webapp A 和一个第 3 方 webapp B。两者都是我们在 Windows 2019 数据中心上的本地 ADFS 4.0 服务器中的依赖方。

Webapp A 使用 WS-Federation,webapp B 可能使用 SAML 2.0,但不能 100% 确定。Webapp A 没有签名证书。Webapp B 具有有效的签名证书。

只要这发生在不同的浏览器会话中,用户就可以登录到 webapp A 和 webapp B 并退出而不会出现任何问题。

但是,如果用户在 webapp A 中并打开另一个浏览器选项卡以转到 webapp B,并尝试从 webapp A 注销,他们会收到错误“MSIS7054:SAML 注销未正确完成”。

ADFS 事件查看器显示以下异常:

Webapp A 是一个 dotnet 核心 MVC 应用程序。这是退出代码:

启动.cs

0 投票
1 回答
46 浏览

asp.net-core - Microsoft 身份平台 4-WebApp-your-API/4-1-MyOrg/

使用Microsoft 示例代码时 “如何使用 Microsoft 身份平台(以前称为 Azure Active Directory for Developers)保护使用 ASP.NET Core 构建的 Web API”

在按照 TodoList 服务的注册步骤(他们建议 1 个范围,但我添加了 1 个附加)时,我添加了 2 个范围。在 TodoListService 中有一个 Task PrepareAuthenticatedClient() 链接到代码

我只将默认范围添加到 appsettings.json 配置中,当您遵循 MS 指令但当代码运行并且我获取访问代码并使用jwt.ms对其进行解码时,您被要求在应用程序的配置部分中注册该配置

我似乎有“scp”:“access_as_editor access_as_user”,

我原以为我只会看到 access_as_user”,因为那是在 _TodoListScope 中传递的范围。我应该只看到 1 还是两者都看到?