Я пытаюсь сделать следующее:
- Получить управление пользователями и ролями Azure AD для работы с Identity Core.
- Цель -> еслипользователь входит в систему через Azure AD (внешний вход в систему), я получаю соответствующие данные пользователя из AD, используя ту же логику записи для синхронизации удостоверений с AD.
Проблема:
При использовании AD в качестве единственной схемы аутентификации для веб-приложения без идентификатора, можно получить больше данных из запроса AD с помощью утверждений. (Около 14 заявок на работу)
Однако при использовании AD в качестве схемы внешнего входа в систему с Identity я могу извлечь не более 4 заявок из AD.
Что я пробовал:
appsettings.json
**{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "domain name",
"TenantId": "aaaaaa-assss-assas--assa-ssss",
"ClientId": "aaaaaa-ssssss-ddddd-dddddd",
"CallbackPath": "/signin-oidc",
"SignedOutCallbackPath": "/signout-callback-oidc",
"ClientSecret": "clientsecret of the application",
"CookieSchemeName": "Identity.External"
},
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"GraphApiUrl": "https://graph.microsoft.com/beta"
}**
startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddMicrosoftIdentityPlatformAuthentication(Configuration)
.AddMsal(Configuration, new string[] { "User.Read", "Directory.Read.All" })
.AddInMemoryTokenCaches();
services.AddMSGraphService(Configuration);
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<IdentityUser>()
.AddRoles<IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>(); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
Мой результат
Заявки от Azure AD (в качестве единственной схемы аутентификации для приложения)
Роль пользователей в AD через утверждения. (в качестве единственной схемы аутентификации для приложения)
С помощью Azure Ad в качестве внешнего входа я могу получить только 4 заявки (не очень полезные данные)
Ссылка: Проект Github