C# 与IdentityServer4和Azure Active Directory集成

C# 与IdentityServer4和Azure Active Directory集成,c#,azure-active-directory,identityserver4,C#,Azure Active Directory,Identityserver4,我已经创建了一个用户界面,人们可以基于Azure Active Directory登录。实现这一点相当容易 public void ConfigureServices(IServiceCollection services) { services.AddAuthentication(AzureADDefaults.AuthenticationScheme) .AddAzureAD(options => { options.In

我已经创建了一个用户界面,人们可以基于
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
IdentityServer 4
集成。在
IdentityServer4
中,我可以轻松添加\删除声明并管理用户。在UI中,我现在可以看到一个新的按钮,用于使用
AzureAD
进行外部登录

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

var result = await HttpContext.AuthenticateAsync(
                   IdentityServerConstants.ExternalCookieAuthenticationScheme);
var info = await _signInManager.GetExternalLoginInfoAsync();
都是
null
。我环顾了四周,但我找不到解决办法