Я создал пользовательский интерфейс, в котором люди могут входить на основе Azure Active Directory
. Реализация этого была довольно простой.
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
.AddAzureAD(options => {
options.Instance = "https://login.microsoftonline.com/";
options.Domain = "mydomain.onmicrosoft.com";
options.TenantId = "cc083aa1-XXXX-1bde2c10XXXX";
options.ClientId = "64a41b3a-XXXX-32e38f03XXXX";
options.CallbackPath = "/signin-oidc";
});
}
Я использую этот пакет Nuget Microsoft.AspNetCore.Authentication.AzureAD.UI
. Все работает нормально.
Теперь я хочу добавить роли или пользовательские данные для пользователя. Я должен добавить их пользователю, используя Microsoft Graph
для Azure B2C
. Я делал это в прошлом, но я не хочу ничего менять в Active Directory
, потому что лес обширный и очень сложный. Если я хочу удалить какие-либо пользовательские данные у пользователя, возникают некоторые проблемы с репликацией этих данных в лесу.
Тогда моя идея - объединить Azure Active Directory
с IdentityServer4
. В IdentityServer4
я могу легко добавлять \ удалять претензии и управлять пользователями. В пользовательском интерфейсе теперь я вижу новую кнопку для внешнего входа с AzureAD
.
Я ожидал, что ExternalLoginCallback
в AccountController
создаст нового пользователя после успешного входа в систему. Проблема в
var result = await HttpContext.AuthenticateAsync(
IdentityServerConstants.ExternalCookieAuthenticationScheme);
var info = await _signInManager.GetExternalLoginInfoAsync();
оба null
. Я оглянулся, но не смог найти решение для этого.