将 Azure AD 电子邮件记录到 ASP.NET 标识表中



我正在制作一个报告系统,允许用户使用 Azure 凭据登录,然后他们将订阅/取消订阅报告。

它目前正在使用 ASP.NET 身份,它可以完美运行,但需要更多的IT支持,人们忘记了他们的凭据等。

如何将 Azure 凭据保存到 ASP.NET 标识中?就像其他外部提供商(如Facebook等(一样,还是会避免一起使用 ASP.NET Identity并将电子邮件地址保存到表中并引用该表而不是 ASP.NET Identity版本?

启动.cs

services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
.AddAzureAD(options => Configuration.Bind("AzureAd", options));
services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
{
options.Authority = options.Authority + "/v2.0/";
// Per the code below, this application signs in users in any Work and School
// accounts and any Microsoft Personal Accounts.
// If you want to direct Azure AD to restrict the users that can sign-in, change 
// the tenant value of the appsettings.json file in the following way:
// - only Work and School accounts => 'organizations'
// - only Microsoft Personal accounts => 'consumers'
// - Work and School and Personal accounts => 'common'
// If you want to restrict the users that can sign-in to only one tenant
// set the tenant value in the appsettings.json file to the tenant ID of this
// organization, and set ValidateIssuer below to true.
// If you want to restrict the users that can sign-in to several organizations
// Set the tenant value in the appsettings.json file to 'organizations', set
// ValidateIssuer, above to 'true', and add the issuers you want to accept to the
// options.TokenValidationParameters.ValidIssuers collection
options.TokenValidationParameters.ValidateIssuer = false;
// Custom
options.Scope.Add("email");
//options.Scope.Add("profile");
options.SaveTokens = true;
options.GetClaimsFromUserInfoEndpoint = true;
options.TokenValidationParameters = new TokenValidationParameters
{
NameClaimType = "name"
};
});

感谢您的阅读。

编辑: 现在,我只是使用TokenValidified事件,然后使用UserManager和CreateAsync创建用户。

如果将 asp.net 核心标识与 Azure AD 一起使用作为外部标识提供者。使用 AAD 登录后,asp.net 标识将有助于创建本地用户,用户可以输入他的 AAD 电子邮件,以便在数据库中知道哪个本地用户与特定的 Azure AD 用户相关联。然后,您可以实现自定义逻辑,例如在本地数据库中进行授权。但本地用户不会影响 AAD 用户,更改本地账号的凭据不会影响云中的 AAD 用户凭据。下次,仍然需要使用 AAD 作为标识提供者而不是本地用户帐户登录。

不需要也不应将 Azure 凭据保存到本地数据库 中。如果要重置特定用户的凭据,可以使用Microsoft Graph更新用户。您的管理员 (IT( 用户应具有正确的权限(User.ReadWrite.AllDirectory.ReadWrite.All委派权限(才能更改租户中其他用户的信息。

这是Microsoft图形身份验证文档,这是 ASP.NET 核心的代码示例。

我不认为将 Azure 凭据保存到 ASP.NET 标识是实现目标的有用方法。

如果要使用 Azure 凭据登录,则需要将 Azure AD 集成到 ASP.NET 核心 Web 应用中,使用户能够使用工作和学校帐户登录。

此处快速入门的详细步骤/示例:使用 Microsoft 将登录添加到 ASP.NET Core Web 应用和具有 ASP.NET 核心的 Azure Active Directory。

相关内容

  • 没有找到相关文章

最新更新