IdentityServer4 интегрировать с Active Directory? - PullRequest
0 голосов
/ 03 апреля 2019

Я создал пустой основной проект 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>();
}

И он работает после добавления компонентов пользовательского интерфейса Quick Start.

Теперь я хочу, чтобы он мог аутентифицировать пользователя с помощью Active Directory компании.Как изменить код?

1 Ответ

2 голосов
/ 03 апреля 2019

В основном AD является поставщиком внешней аутентификации для Identity Server.

Несмотря на компоненты QuickstartUI (которые вы уже добавили), вам необходимо настроить этого поставщика.

2 основных шага:

1.В Startup.cs, в ConfigureServices необходимо добавить провайдера (после регистрации IdentitiyServer):

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

2. В Program.cs вам необходимо добавить IISIntegration:

var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();

Затем на странице входа в систему вам будет предложено выбрать поставщика аутентификации для входа, и у вас будет доступна кнопка Windows. Вы можете прочитать больше здесь .

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