Ваше клиентское приложение, которое хочет пройти аутентификацию, должно взаимодействовать с приложением Identity Server по протоколу Open ID Connect (OIDC).Ядро Asp.net поддерживает это из коробки с расширением AddAuthentication().AddOpenIdConnect()
, которое можно использовать для IServiceCollection
в вашем файле Startup.cs
.
В методе Configure
вызов UseAuthetication
это то, что на самом деле «логин» пользователя (он будет добавлять претензии пользователя к входящим запросам).Поэтому, если вы используете, например, MVC, обязательно добавьте эту строку перед вызовом к UseMvc()
.
Документация Identity Server даже предоставляет пример этого здесь: http://docs.identityserver.io/en/latest/quickstarts/3_interactive_login.html#creating-an-mvc-client
Очень простой пример будет выглядеть примерно так:
public void ConfigureServices(IServiceCollection services)
{
// other configuration...
services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie()
.AddOpenIdConnect(options =>
{
options.Authority = Configuration["auth:oidc:authority"];
options.ClientId = Configuration["auth:oidc:clientid"];
});
// other configuration...
}
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
// other configuration...
app.UseAuthentication();
// other configuration...
}