与IdentityServer4和Azure Active Directory集成

时间:2019-05-24 11:12:00

标签: c# azure-active-directory identityserver4

我创建了一个用户可以基于Azure Active Directory登录的UI。实施起来非常容易。

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的{​​{1}}用户中。我过去曾经这样做过,但是我不会更改Azure B2C中的任何内容,因为森林非常大且非常复杂。如果我想从用户中删除任何自定义数据,则该数据在林中的复制存在一些问题。

然后,我的想法是将Active DirectoryAzure Active Directory集成在一起。在IdentityServer4中,我可以轻松添加/删除声明并管理用户。在用户界面中,我现在可以看到一个新按钮,用于使用IdentityServer4进行外部登录。

我希望AzureAD中的ExternalLoginCallback在成功登录后会创建一个新用户。问题是

AccountController

均为var result = await HttpContext.AuthenticateAsync( IdentityServerConstants.ExternalCookieAuthenticationScheme); var info = await _signInManager.GetExternalLoginInfoAsync(); 。我环顾四周,但找不到解决方案。

0 个答案:

没有答案