IdentityServer4是否与Active Directory集成?

时间:2019-04-02 21:37:04

标签: asp.net identityserver4

我创建了一个空的Asp.Net核心项目,并添加了以下几行以在IdentityServer4上播放。

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();

        services.AddIdentityServer()
            .AddDeveloperSigningCredential()
            .AddTestUsers(Config.GetUsers())
            .AddInMemoryIdentityResources(Config.GetIdentityResources())
            .AddInMemoryClients(Config.GetClients());
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseIdentityServer();
        app.UseStaticFiles();
        app.UseMvcWithDefaultRoute();
    }
}

public static class Config
{
    public static List<TestUser> GetUsers() => new List<TestUser>
        {
            new TestUser
            {
                SubjectId = "",
                Username = "User1",
                Password = "password",
                Claims = new List<Claim>
                {
                    new Claim("first_name", "first"),
                    new Claim("last_name", "last")
                }
            }
        };

    public static IEnumerable<IdentityResource> GetIdentityResources() => new List<IdentityResource>
        {
            new IdentityResources.OpenId(),
            new IdentityResources.Profile()
        };

    public static IEnumerable<Client> GetClients() => new List<Client>();
}

并且在我添加了快速入门UI组件后它可以工作。

现在,我希望它能够通过公司的Active Directory验证用户身份。如何更改代码?

1 个答案:

答案 0 :(得分:2)

基本上,AD是Identity Server的外部身份验证提供程序。

尽管已安装了QuickstartUI组件,但仍需要设置此提供程序。

2个主要步骤:

1。在<form onsubmit="checkForm(this,event);"> <input type="checkbox" name="choice1" value="choice1" id="confirm">choice 1<br> <input type="checkbox" name="choice2" value="choice2" >choice 2<br> <input type="checkbox" name="choice3" value="choice3">choice 3<br><br> <input type="submit" value="Submit" onclick="mFunction(event)"> </form>的{​​{1}}中,您需要添加提供程序(注册IdentitiyServer之后):

Startup.cs

2。在ConfigureServices中,您需要添加IISIntegration:

services.Configure<IISOptions>(iis =>
{
    iis.AuthenticationDisplayName = "Windows";
    iis.AutomaticAuthentication = false;
});

然后在登录页面上,要求您选择要使用的身份验证提供程序进行登录,然后将具有Windows按钮。您可以阅读更多here