我创建了一个空的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验证用户身份。如何更改代码?
答案 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。