问题标签 [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 回答
1577 浏览

azure-active-directory - 旧版 Azure AD 应用注册中的“授予权限”按钮与新体验中的“授予管理员许可”有何不同?

当前 Azure AD 应用注册体验(在 Azure 门户 > Azure AD > 应用注册 >(应用)> API 权限下)中的“授予管理员同意”按钮有时会显示为灰色。在旧版体验中,我总是可以点击按钮。

两者有什么区别?

0 投票
0 回答
59 浏览

asp.net-mvc - 从 ADFS 3.0 重定向回来后,asp.net MVC 应用程序上的会话集丢失

我有与 ADFS 集成的 MVC 应用程序。

概括

我在调用 ADFS 身份验证之前设置会话。ADFS 调用返回后,该会话丢失了我之前设置的。

详细说明

步骤 1 调用应用程序 URL

https://hrcentral/mainmodule/expense/index

步骤 2 上述调用将请求重定向到 WIF 组件,该组件是我的应用程序中的 httphandler,因此 url:https://hrcentral/federationMetaData/wif.axd ?ReturnUrl= https://hrcentral/mainmodule/expense/index

Web.config 我有如下设置用于重定向

第 3 步:在 WIF.axd httphandler 中设置一个会话,从查询字符串读取返回的 url

设置会话后,它将重定向到 ADFS

第 4 步 ADFS 身份验证和 POST 请求 https://hrcentral/federationMetaData/wif.axd 将在同一个 WIF 处理程序中发送。我们有一个条件来检查请求是否为 POST。由于此请求是 POST,先前存储的会话包含 ReturnUrl 并尝试重定向回并登陆到我们的应用程序。

现在的问题是在 wif.axd 中从 ADFS 重定向后无法访问在步骤 3 中设置的会话 (HttpContext.Current.Session["ReturnUrl"]=ReturnUrl)。一般来说,任何会话,在我们的应用程序中设置的任何会话在从 ADFS 重定向后都会丢失。

之后将进行身份验证,它将重定向到https://hrcentral/mainmodule/expense/index

设置会话

0 投票
2 回答
221 浏览

azure-active-directory - 是否可以为守护程序应用配置 Azure 数字孪生 API 访问?

为了自动维护 Azure 数字孪生实例,我们需要服务到服务 API 访问,以便我们可以使用 Azure 中间层选项作为守护程序应用程序(例如逻辑应用程序或函数)运行。

但是,在 Azure Active Directory 中注册应用程序时,Azure 数字孪生“预览”API(资源 id:0b07f429-9f4b-4714-9392-cc5e8e80c8b0)不支持应用程序权限(仅限委派权限)。但是,相关的 Microsoft Graph API(资源 id:00000003-0000-0000-c000-000000000000)支持这两种权限类型。

目前有什么方法可以在不需要登录 AAD 帐户的情况下对 Azure 数字孪生 API 的访问进行身份验证(即使用“client_credentials”授权类型)?

0 投票
2 回答
1081 浏览

c# - 无需用户干预即可进行 OAuth 2 授权代码授予/流程

尝试访问需要授予类型授权代码的 API 资源。我可以使用 Postman 及其授权工具取回有效的访问代码。

在此处输入图像描述

这涉及 Postman 弹出一个登录窗口,我在其中输入用户名和密码。

在没有用户干预的情况下,我如何才能完全解决这个问题?此授权类型似乎是唯一与此 API 一起使用的类型,因为当我尝试将 client_id 和 client_secret 与客户端凭据流一起使用时,我返回的访问令牌不允许我进入 API (401)。

我希望尽可能与代码无关。那就是我希望能够在不依赖在幕后做事的库的情况下做到这一点。理想情况下,一切都将通过 HTTP 完成,就像 cURL 一样。

我有一些 C# 代码可以满足我的需求,但它使用了Microsoft.IdentityModel.Clients.ActiveDirectory库 ( older version 2.29.0.1078)。好像可以通过传入用户名和密码来获取token

我想弄清楚的是如何在不依赖Microsoft.IdentityModel.Clients.ActiveDirectory图书馆的情况下做到这一点。

0 投票
0 回答
193 浏览

c# - Microsoft 身份平台 -​​ 用户令牌缓存 args.Account 始终为空

我有一个 MVC Web 应用程序想要使用 Office365 从一个电子邮件地址发送电子邮件。我正在调用 API,以便它显示用于登录的 microsoftonline 登录页面。成功登录后,我将从 API 接收代码并在Microsoft.Identity.Client.AuthenticationResult代码的帮助下生成并保存在数据库中。tokenresponse.UniqueIdtokenresponse.Account.HomeAccountId.Identifier

我到了以下页面并成功登录,我的数据库已保存响应。 登录页面 在此之后,我尝试使用以下代码发送电子邮件:

args.Account 总是返回 null。

我确保我的重定向 url 匹配,并且我没有从 API 调用中收到任何错误,以查看什么是错误的以及是什么使 args.Account 值为空,因此无法发送电子邮件。如果我再次请求登录页面,它仍会显示我登录的帐户。

0 投票
2 回答
517 浏览

azure-active-directory - 如何获取访问令牌以提取特定订阅的 Azure Monitor 指标?

我们需要生成一个 AAD 访问令牌,该令牌可用于客户端查询特定订阅的 Azure Monitor 指标(通过 Fluent API)。所以要求是: 1. 令牌只能用于查询特定订阅的指标,但不能用于其他 2. 只能从 Azure 监控中查询指标(我相信通过 ARM)

我们如何: 1. 获取访问令牌?2. Azure Management Fluent SDK,如何直接使用token?

谢谢!

0 投票
1 回答
662 浏览

microsoft-graph-api - 通过 Microsoft.Identity.Web 请求图形权限时出错

我在基于WebApp-graph-user sample的应用程序中收到以下错误堆栈。我只是想登录并获取 User.ReadBasic.All 图形权限的令牌。我检查了进入 AcquireTokenByAuthorizationCode 的所有参数,一切看起来都不错(没有空值)。应用程序是使用 .net core 3.1 的 MVC Web 应用程序。

堆:

NullReferenceException:对象引用未设置为对象的实例。Microsoft.Identity.Client.Internal.ClientCredentialWrapper.get_Thumbprint() Microsoft.Identity.Client.Internal.JsonWebToken+JWTHeaderWithCertificate..ctor(ClientCredentialWrapper credential, bool sendCertificate) Microsoft.Identity.Client.Internal.JsonWebToken.EncodeHeaderToJson(ClientCredentialWrapper credential, bool sendCertificate) Microsoft.Identity.Client.Internal.JsonWebToken.Encode(ClientCredentialWrapper credential, bool sendCertificate) Microsoft.Identity.Client.Internal.JsonWebToken.Sign(ClientCredentialWrapper credential, bool sendCertificate) Microsoft.Identity.Client.Internal.Requests.ClientCredentialHelper。 CreateClientCredentialBodyParameters(ICoreLogger 记录器,ICryptographyManager cryptographyManager,ClientCredentialWrapper clientCredential,CancellationToken cancelToken) Microsoft.Identity.Web.TokenAcquisition.AddAccountToCacheFromAuthorizationCodeAsync(AuthorizationCodeReceivedContext context, IEnumerable scopes) in TokenAcquisition.cs + var result = await application Microsoft.Identity.Web.WebAppServiceCollectionExtensions+<>c__DisplayClass2_1+<b__3>d.MoveNext() 在 WebAppServiceCollectionExtensions。 cs + 等待 tokenAcquisition.AddAccountToCacheFromAuthorizationCodeAsync(context, options.Scope).ConfigureAwait(false); Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler.RunAuthorizationCodeReceivedEventAsync(OpenIdConnectMessage 授权响应,ClaimsPrincipal 用户,AuthenticationProperties 属性,JwtSecurityToken jwt)Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler。

代码:来自 TokenAcquisition.cs - 第 127 行

0 投票
1 回答
70 浏览

azure-active-directory - 从共享租户获取 Microsoft 帐户的对象标识符 (9188040d-6c67-4c5b-b112-36a304b66dad)

有没有办法为 Microsoft 帐户获取“objectIdentifier”声明的价值?

案例:我有一个带有一个表单字段的应用程序,电子邮件(需要是 Microsoft 帐户)。输入此电子邮件后,服务器(后端)需要找出所有 Microsoft 帐户的公共租户中的对象标识符(用户 ID)的值(“tid”部分)。

通常,如果这是 Azure Active Directory 中的普通租户,我将创建 Azure AD 应用程序并生成用于访问 Graph API、目录端点的客户端密码。不幸的是,这是“特殊”租户,我不知道是否可以调用任何 API(作为应用程序)来获取用户 ID(最好的选择是 GetUserIdByEmail(email))。

我知道这是一个奇怪的案例,但生活很艰难:)

要求用户登录然后从令牌中检索值不是一种选择!

0 投票
1 回答
59 浏览

asp.net-core - .NET Core Web 应用程序 - Microsoft 身份数据库在哪里?

我正在使用 Microsoft Identity 开发一个 .NET Core Web 应用程序。用户所在的数据库在哪里?我需要修改和删除其中一些。我需要查看数据库,但我不知道它存储在哪里或如何打开它!

编辑:所以数据库在 app.db 文件中。但是,有谁知道一旦我将 Web 应用程序发布到 Azure 云中,我如何检查同一个数据库?就是在portal.azure.com 的某个地方。

任何人??

0 投票
1 回答
1261 浏览

c# - 将 azure keyvault 机密 json 反序列化为 MicrosoftIdentityOptions

我在应用程序启动时加载 keyvault 机密,并且配置添加了保管库机密 ,正如我们在此处看到的那样。我正在使用 Microsoft.Identity.Web 添加 AD SSO 并注册 AddSignin(),如示例中所述。但是这个秘密并没有像预期那样被序列化。但是,如果秘密保存在 appsettings.json 中,它可以正常工作。我怎样才能使这项工作?需要显式反序列化吗?

请在下面找到整个代码设置

1.Program.cs 有以下代码。

  1. 以下 json 格式的秘密存储在 keyvault 中
  1. 添加了对 Microsoft.Identity.Web 的引用

  2. 在 Startup.cs->ConfigureService 中注册了以下服务

  1. 在应用程序引导上,以下变量microsoftIdentityOptions 为空

文件 - WebAppServiceCollectionExtensions.cs

任何帮助深表感谢。

谢谢