问题标签 [microsoft-identity-web]
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.
azure-active-directory - MSAL4j - 如何处理 MsalThrottlingException?
我使用 MSAL4j,并且有一个名为 MsalThrottlingException 的异常类型。抓到的时候怎么处理?我需要一个示例实现。
https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-error-handling-java
也有关于它的文档(您可以在上面的链接中看到屏幕截图),但它没有给出处理实现的示例。你能举个例子吗?
asp.net-core-3.1 - 从 Microsoft.Identity.Web 登录/注销捕获事件
我正在使用 Microsoft 的身份验证/授权平台来允许用户从 Azure AD 登录。我想将这些事件记录到数据库中。问题是,由于这种类型的身份验证利用中间件,我不确定如何注入代码来触发日志事件。
请让我知道是否存在我尚未找到的文档和/或如何编写自定义注入来记录这些事件。
谢谢!
javascript - 如何使用 Microsoft Share To Teams 按钮对用户进行身份验证?
如this microsoft offcial doc中所述,我在我的html页面上添加了共享到团队按钮,但是在打开的弹出窗口中它给出了错误
那么如何对用户进行身份验证,我们是否必须为此调用另一个 API 或其他任何东西......
当我搜索时,我发现了 Graph API,但不知道这是我需要的或如何使用它。
我创建了这个简单的 html 页面。
HTML 代码
asp.net-core - Microsoft Identity Web 为 redirect_url 生成 http 而不是 https
我有一个 ASP.NET Core MVC 应用程序,我想使用 Azure B2C 身份验证。
正在生成的 redirect_urlhttp
不是https
这样的:
这应该是https
,它导致了这个错误:
AADSTS50011:请求中指定的回复 URL 与为应用程序配置的回复 URL 不匹配:“9dbe40e0-7555-4ddf-9c17-b5218ed6ca89”。
我的appsettings.json
样子是这样的:
我的代码Startup.cs
是这样的:
出于某种原因,这在我的带有 localhost (redirect_url=https) 的开发机器上运行良好,但在服务器上它总是http
.
有任何想法吗?这让我整天发疯
编辑:已解决! 原来问题是我在 IIS 中没有 HTTPS 绑定,只有 HTTP 绑定......奇怪,因为我通过 https:// 访问该站点...... - 我猜 IIS 以某种方式提供了一个证书和允许 HTTPS,即使我没有绑定它
c# - 使用 DefaultAzureCredential 时,Web 应用会尝试在本地计算机上使用 ManagedIdentityCredential
我正在使用DefaulAzureCredential (Azure.Identity v1.2.3) 来访问 Azure 上的资源。在我的 Asp.Net Core 3.1 Web 应用程序的 Program.cs 中,我配置了 Azure 密钥保管库访问权限,如下所示:
当我通过按 F5 从 Visual Studio 2019 调试源代码时,上述代码在我的本地计算机上按预期工作。从 MS 文档(上面的链接)中,我看到 DefaultAzureCredential 将尝试按以下顺序使用各种凭据:EnvironmentCredential、ManagedIdentityCredential、SharedTokenCacheCredential、VisualStudioCredential 等。我通过将 DefaultAzureCredential 替换为以上凭据:
上面很快就抛出了异常:CredentialUnavailableException: EnvironmentCredential authentication不可用。环境变量未完全配置。
ManagedIdentityCredential 会引发类似的异常:CredentialUnavailableException:ManagedIdentityCredential 身份验证不可用。未找到托管身份端点。
但是,SharedTokenCacheCredential 和 VisualStudioCredential 都有效。
现在,我认为上述行为是正确的。我没有设置所需的环境变量(例如租户 ID、客户端 ID 等),并且我认为 ManagedIdentityCredential 仅在我的 Web 应用程序在 Azure 环境中运行时可用(请参阅此文档)。
现在关于这个问题。在我新安装的计算机上,我从 Visual Studio 2019 中运行了我的 Web 应用程序,但它失败了:AuthenticationFailedException: ManagedIdentityCredential authentication failed: Retry failed after 4 次尝试。
使用 EnvironmentCredential 会导致与我的旧计算机相同的异常,这是预期的。此外,使用 SharedTokenCacheCredential 和 VisualStudioCredential 就像在我的旧计算机上一样。从错误描述来看,我认为,在我的新计算机上,Web 应用程序尝试使用 ManagedIdentityCredential 并失败。是什么导致了这个问题?
c# - 是否可以在 Microsoft.Identity.Web 中设置用于获取令牌的发现 URI?
我有一个 .NET5 应用程序,它利用 Microsoft.Identity.Web 作为安全 API。尝试检索访问令牌时:
发生的第一件事是它向发现端点发出请求:
我在我的配置中指定了一个静态权限,我认为应该使用它。对于我的 Blazor 应用程序,它工作得很好。MS.Identity.Web 首先在我的权限下获取我的关键信息:
然而,使用 tokenAcquisition,它总是调用 login.microsoft.com,失败,然后最终重定向到我的端点。
挖掘 MS.Identity.Web 和 MS.Identity.Client 代码,他们肯定想到了这一点。
但我无法在 API 端找到它。当我查看 TokenAquisition 时,它正在调用 ConfidentialClientApplicationBuilder.CreateWithApplicationOptions
然后创建一个带有空 ApplicationConfiguration 对象的新 ConfidentialClientApplicationBuilder ,因此 CustomInstanceDiscovery 始终为空
所有的钩子似乎都在那里,所以我觉得我缺少一些配置,但它也可能是一个功能/错误请求。
asp.net-core - 使用 JwtBearerDefaults.AuthenticationScheme 时添加声明
AzureAD 正在执行身份验证。我想添加索赔。从表面上看,这将成为我需要的问题和答案:向 AspNetCore Azure Authenticated Application 添加自定义声明
但是,实现看起来像这样。
为什么要这样设置身份验证?我不知道。它似乎适用于我用来进行身份验证的帐户,这是一个 AzureAD 身份。
所以无论如何,我想为令牌添加一些声明,与引用的问题相同。我是否需要重写它才能像另一个问题一样工作,或者有什么方法可以添加声明,并按照目前的方式设置身份验证?
azure - 代表 api(不是用户)从另一个 WebAp 获取 401 Unauthorized call WebApi
我们代表用户调用 Azure 中的许多 ASPNET Core Web API。该用户通常已登录到同样在 Azure 中的 ASPNET 网站。
我们正在引入审计服务。感觉应该代表调用服务而不是经过身份验证的用户调用它。
- 审计服务在 Azure AD 中有关联的应用注册
- 审计服务有一个名为“access_as_application”的范围,虽然看过有关“.default”范围的文档,但我不确定我是否需要一个范围
- 调用应用程序(ASPNET Core 网站)已添加到前面提到的范围的“授权客户端应用程序”部分
在调用应用程序中,我通过使用获取应用程序而不是用户的访问令牌 GetAccessTokenForAppAsync
。
目前我正在本地开发机器上运行调用应用程序和审计服务。
当我打电话给审计服务时,我收到了 401 Unauthorized
更新
我已通过 App Manifest 将调用应用程序的 Azure Ad App Id 添加为审计服务上的 knownClientApplication。这并没有阻止 401
更新 2
我可以看到在 Visual Studio 中运行的服务实例正在报告堆栈跟踪。它指的是 IDW10201 问题。
有什么想法为什么?
oauth - Azure AD Ms Identity 回调 URL(错误 AADSTS50011)
我正在使用 Angular 在 Web 应用程序上集成 Azure AD 和 MS-Identity。它可以在我的机器上运行,但是当我部署它时,我遇到了回调 URL 的问题。
首先,为了确保回调 URL 正常,我从 Microsoft 登录弹出窗口的 URL 中提取它:
然后,我对内容进行 url 解码。该 URL 看起来不错,并且在我的 Azure 应用程序的重定向 URL 中可用。
然后我正常登录 Microsoft 并收到此错误(AADSTS50011):
然后我再次检查 URL(在 urldecoded 弹出窗口 URL 的查询字符串内),现在 URL 似乎已被“篡改”。现在是这样的: http://somedomain:80 /some_page/somequerystring 而不是 https ://somedomain/some_page/somequerystring 所以我想知道这是问题的一部分还是正常行为。
还提到“如果您联系管理员,请将此信息发送给他们”。我想我是“管理员”,那么我可以用“将信息复制到剪贴板”信息来调查问题吗?
azure - 在使用多个身份验证方案时防止 IDX10501 错误 (Microsoft.Identity.Web)
使用 Azure Active Directory 和 Azure B2C 保护的 ASPNET Core 3.1 Web API。
我们正在使用 Microsoft.Identity.Web (MSIW) 来配置我们的身份验证策略。该软件包从 1.10 版开始支持多种身份验证方案。
IDX10501 错误不是 MSIW 的错,虽然令人困惑,但它们并不是被调用端点“不工作”的迹象。AFAIK 的问题是,当使用多种方案时,与当前请求相关的方案以外的方案都失败了。这会填满 Azure 中的日志,这至少可以说是无济于事。
这个问题已经在这里讨论了一些解决方案在这里 Fixing-IDX10501-MultipleAuthScheme和更多在这里。
我想要做的是将 Olivier 的解决方案集成到我们使用 MSIW 的代码中,但我不确定如何。