Где я могу посмотреть маршруты по умолчанию в IdentityServer4? - PullRequest
0 голосов
/ 18 февраля 2019

Я использую шаблон is4aspid для IdentityServer4.Когда сервер получает запрос на подключение / авторизацию, вызывается AccountController.Login.Вопрос.Где я могу увидеть все маршруты по умолчанию?Пример для выхода?И могу ли я изменить это?Пример, когда получает «connect / authorize», называемый OtherControl.MyLogin?

1 Ответ

0 голосов
/ 20 февраля 2019

Где я могу увидеть все маршруты по умолчанию?

Существует конечная точка обнаружения , которая используется для получения метаданных о вашем 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"))
   ...
}

Результат:

enter image description here

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