Где я могу увидеть все маршруты по умолчанию?
Существует конечная точка обнаружения , которая используется для получения метаданных о вашем IdentityServer.
Он возвращает такую информацию, как имя эмитента, материал ключа, поддерживаемые области и т. Д., И вы можете видеть конечные точки (конечную точку токена, конечную точку userinfo и т. Д.).
Когда вы запускаете приложение IdentityServer, конечной точкой обнаружения являетсядоступно через /.well-known/openid-configuration относительно базового адреса, например:
http://youridentityserver/.well-known/openid-configuration
Пример для выхода?
"end_session_endpoint": "http://youridentityserver/connect/endsession",
А можно ли это изменить?
Невозможно изменить URL-адрес конечной точки обнаружения, он соответствует spec .
Редактировать
Но где я могу прочитать официальную документацию по этому поводу?И могу ли я изменить это поведение?
Исследуя документацию, я обнаружил, что вы можете использовать опции UserInteraction для перенастройки маршрутов (я согласен, что это должно быть лучше задокументировано),
Это означает, что вы можете установить свой собственный URL ( для LoginUrl, LogoutUrl, ConsentUrl, ErrorUrl ) для перенаправления пользователя.
Например:
Я разработал приложение .Net Core, которое перенаправляет пользователя на маршрут / Account / Login в соответствии со стандартной конфигурацией identityserver4.
Я хочу перенаправить пользователя на Test /NewLogin маршрут для входа пользователя.Таким образом, используя UserInteraction , я могу перенастроить LoginUrl в класс Startup.cs.
Решение 1: Добавление в метод параметров SetupIdentityServer
public void ConfigureServices(IServiceCollection services)
{
IIdentityServerBuilder builder = services.AddIdentityServer(SetupIdentityServer)
...
}
Ниже приведенреализация метода SetupIdentityServer:
private static void SetupIdentityServer(IdentityServer4.Configuration.IdentityServerOptions identityServerOptions)
{
identityServerOptions.UserInteraction.LoginUrl = "/Test/NewLogin";
}
Решение 2. С этим кодом я могу добиться того же результата
public void ConfigureServices(IServiceCollection services)
{
IIdentityServerBuilder builder = services.AddIdentityServer(options => options.UserInteraction.LoginUrl = "/Test/NewLogin"))
...
}
Результат: