问题标签 [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.
azure-active-directory - 旧版 Azure AD 应用注册中的“授予权限”按钮与新体验中的“授予管理员许可”有何不同?
当前 Azure AD 应用注册体验(在 Azure 门户 > Azure AD > 应用注册 >(应用)> API 权限下)中的“授予管理员同意”按钮有时会显示为灰色。在旧版体验中,我总是可以点击按钮。
两者有什么区别?
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
设置会话
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”授权类型)?
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
图书馆的情况下做到这一点。
c# - Microsoft 身份平台 - 用户令牌缓存 args.Account 始终为空
我有一个 MVC Web 应用程序想要使用 Office365 从一个电子邮件地址发送电子邮件。我正在调用 API,以便它显示用于登录的 microsoftonline 登录页面。成功登录后,我将从 API 接收代码并在Microsoft.Identity.Client.AuthenticationResult
代码的帮助下生成并保存在数据库中。tokenresponse.UniqueId
tokenresponse.Account.HomeAccountId.Identifier
我到了以下页面并成功登录,我的数据库已保存响应。 在此之后,我尝试使用以下代码发送电子邮件:
args.Account 总是返回 null。
我确保我的重定向 url 匹配,并且我没有从 API 调用中收到任何错误,以查看什么是错误的以及是什么使 args.Account 值为空,因此无法发送电子邮件。如果我再次请求登录页面,它仍会显示我登录的帐户。
azure-active-directory - 如何获取访问令牌以提取特定订阅的 Azure Monitor 指标?
我们需要生成一个 AAD 访问令牌,该令牌可用于客户端查询特定订阅的 Azure Monitor 指标(通过 Fluent API)。所以要求是: 1. 令牌只能用于查询特定订阅的指标,但不能用于其他 2. 只能从 Azure 监控中查询指标(我相信通过 ARM)
我们如何: 1. 获取访问令牌?2. Azure Management Fluent SDK,如何直接使用token?
谢谢!
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 行
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))。
我知道这是一个奇怪的案例,但生活很艰难:)
要求用户登录然后从令牌中检索值不是一种选择!
asp.net-core - .NET Core Web 应用程序 - Microsoft 身份数据库在哪里?
我正在使用 Microsoft Identity 开发一个 .NET Core Web 应用程序。用户所在的数据库在哪里?我需要修改和删除其中一些。我需要查看数据库,但我不知道它存储在哪里或如何打开它!
编辑:所以数据库在 app.db 文件中。但是,有谁知道一旦我将 Web 应用程序发布到 Azure 云中,我如何检查同一个数据库?就是在portal.azure.com 的某个地方。
任何人??
c# - 将 azure keyvault 机密 json 反序列化为 MicrosoftIdentityOptions
我在应用程序启动时加载 keyvault 机密,并且配置添加了保管库机密 ,正如我们在此处看到的那样。我正在使用 Microsoft.Identity.Web 添加 AD SSO 并注册 AddSignin(),如示例中所述。但是这个秘密并没有像预期的那样被序列化。但是,如果秘密保存在 appsettings.json 中,它可以正常工作。我怎样才能使这项工作?需要显式反序列化吗?
请在下面找到整个代码设置
1.Program.cs 有以下代码。
- 以下 json 格式的秘密存储在 keyvault 中
添加了对 Microsoft.Identity.Web 的引用
在 Startup.cs->ConfigureService 中注册了以下服务
- 在应用程序引导上,以下变量microsoftIdentityOptions 为空
文件 - WebAppServiceCollectionExtensions.cs
任何帮助深表感谢。
谢谢