OpenidConnect с приложением IIS - PullRequest
1 голос
/ 29 июня 2019

Я пытаюсь использовать owin.openidconnect с сервером idp, все отлично работает на локальном сервере, но при развертывании на сервере iis я не вижу события MessageReceived , запускаемого в уведомлениях для OpenIdConnect.Когда я вызываю страницу с перенаправленной страницей IDP и после входа в систему возвращаюсь к приложению, но она остается не аутентифицированной.

1 Ответ

0 голосов
/ 02 июля 2019

Наконец-то нашел ответ после того, как пару дней разбил мне голову о разных форумах. Проблема в том, что когда я установил redirect-uri для идентификатора клиента на сервере IDP, я не поставил "/" в конце URL , Но AuthenticateCoreAsync в компоненте OWIN имеет следующую проверку

if (Options.CallbackPath.HasValue && Options.CallbackPath! = (Request.PathBase + Request.Path)) вернуть ноль;

URL моего приложения, например http: /// и CallbackPath был / appName и Request.PathBase + Request.Path был как '/ appName' + '/' . Так что нет совпадений и не удалось подтвердить подлинность.

Таким образом, здесь у меня было два варианта, один из них был быстрым, устанавливая URL обратного вызова, как показано ниже

Option1 новые OpenIdConnectAuthenticationOptions { AuthenticationType = "OpenIdConnect", Authority = OIDC_baseUrl, ClientId = clientId, ClientSecret = clientSecret, RedirectUri = redirectUri, ResponseType = "code id_token", Scope = "openid", CallbackPath = '/ appName /', Уведомления = новый OpenIdConnectAuthenticationNotifications { AuthorizationCodeReceived = async (context) => { await GetAccessTokenAndStoreWithIdentity (context); } } }

Вариант 2. Измените URI перенаправления на сервере IDP с помощью символа "/" в конце.

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