Azure AD 和核心身份角色混合
Azure AD and Core Idenity Roles Hybrid
是否可以同时使用 Azure AD 和核心身份角色?基本上,用户将使用 AD 登录应用程序,我已经完成了。但是当他们使用该应用程序时,他们的角色将基于 AspNetRoles 和 AspNetUsersRoles 表。我在想我必须使用 ClaimsPrincipal 工厂来扩展用户登录时创建的声明对象。
通过使用 ASP.NET 身份,您可以在数据库中本地管理用户,并将用户 Azure AD 作为外部身份提供者,使 AAD 帐户能够登录您的应用程序。您可以识别用户并将其 link 提供给本地数据库中的用户。然后,您还可以管理本地用户和 Azure AD 用户的角色。
阅读更多here。
使用个人用户帐户创建一个新应用程序。
安装这个包:Microsoft.AspNetCore.Authentication.AzureAD.UI
services.AddDbContext(options => options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection"))); services.AddDefaultIdentity() .AddEntityFrameworkStores();
services.AddAuthentication(sharedOptions => }).AddAzureAD(options =>
Configuration.Bind("AzureAd", options)).AddCookie();
更新 appsettings.json "AzureAd": { "Instance": "https://login.microsoftonline.com/",
"Domain": "xxx.onmicrosoft.com", "TenantId": "xxxxxx-xxxxx-4f08-b544-b1eb456f228d",
"ClientId": "xxxxx-xxxxx-4717-9821-e4f718fbece4", "CallbackPath": "/signin-oidc",
"CookieSchemeName": "Identity.External" },
这取决于用户选择使用本地身份验证登录还是 Azure AD Authentication.
是否可以同时使用 Azure AD 和核心身份角色?基本上,用户将使用 AD 登录应用程序,我已经完成了。但是当他们使用该应用程序时,他们的角色将基于 AspNetRoles 和 AspNetUsersRoles 表。我在想我必须使用 ClaimsPrincipal 工厂来扩展用户登录时创建的声明对象。
通过使用 ASP.NET 身份,您可以在数据库中本地管理用户,并将用户 Azure AD 作为外部身份提供者,使 AAD 帐户能够登录您的应用程序。您可以识别用户并将其 link 提供给本地数据库中的用户。然后,您还可以管理本地用户和 Azure AD 用户的角色。
阅读更多here。
使用个人用户帐户创建一个新应用程序。
安装这个包:Microsoft.AspNetCore.Authentication.AzureAD.UI
services.AddDbContext(options => options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection"))); services.AddDefaultIdentity() .AddEntityFrameworkStores();
services.AddAuthentication(sharedOptions => }).AddAzureAD(options =>
Configuration.Bind("AzureAd", options)).AddCookie();
更新
appsettings.json "AzureAd": { "Instance": "https://login.microsoftonline.com/",
"Domain": "xxx.onmicrosoft.com", "TenantId": "xxxxxx-xxxxx-4f08-b544-b1eb456f228d",
"ClientId": "xxxxx-xxxxx-4717-9821-e4f718fbece4", "CallbackPath": "/signin-oidc",
"CookieSchemeName": "Identity.External" },
这取决于用户选择使用本地身份验证登录还是 Azure AD Authentication.