Интеграция с IdentityServer4 и Azure Active Directory - PullRequest
1 голос
/ 24 мая 2019

Я создал пользовательский интерфейс, в котором люди могут входить на основе 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. Я оглянулся, но не смог найти решение для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...