Identityserver4 / oidc отправляет логин на неправильное доменное имя - PullRequest
0 голосов
/ 21 декабря 2018

Я установил Identity Server 4 и мое приложение на одном сервере, который запускается IIS.

Затем я настроил прокси-сервер для скрытия приложений с использованием SSL-разгрузки.

По какой-то неизвестной причине, когда я пытаюсь войти в свое приложение, меня отправляют на неправильное доменное имя.Пример.

У меня есть https://IDS.com & https://myapplication.com

Когда я открываю myapplication.com и пытаюсь получить доступ к странице, требующей аутентификации, я должен быть перенаправлен на https://IDS.com/connect/authorize...

вместо этого он пытается отправить меня на https://myapplication.com/connect/authorize..., что выдает ошибку 404.Однако если я сохраню URL в браузере и переключу имя домена на IDS.com, оно будет работать, как и ожидалось.

Есть ли способ заставить идентификаторы запрашивать правильное имя домена?

Iнемного повозился с моими правилами переписывания iis, чтобы посмотреть, смогу ли я это сделать.Я был почти успешен в том, что я мог перенаправить его на свой сервер идентификации вместо своего приложения для авторизации.Тем не менее, доменное имя остается прежним, и ни один из CSS или javascript не работает.Так что обойти это не стоит.

`.AddOpenIdConnect (AuthorizationConsts.OidcAuthenticationScheme, параметры
=> {

     options.SignInScheme = "Cookies";
     options.Authority = "http://DNS:5000";//DNS for IDS 



     options.RequireHttpsMetadata = false;
     options.ClientId = AuthorizationConsts.OidcClientId;
     //https://IDS.com gives me 403 error so i'm using the DNS:{Port} 

     options.Scope.Clear();
     options.Scope.Add(AuthorizationConsts.ScopeOpenId);
     options.Scope.Add(AuthorizationConsts.ScopeProfile);
     options.Scope.Add(AuthorizationConsts.ScopeEmail);
     options.Scope.Add(AuthorizationConsts.ScopeRoles);



     options.SaveTokens = true;

     options.TokenValidationParameters = new TokenValidationParameters
     {
         NameClaimType = JwtClaimTypes.Name,
         RoleClaimType = JwtClaimTypes.Role,
     };

     options.Events = new OpenIdConnectEvents
     {

         OnMessageReceived = OnMessageReceived,
         OnRedirectToIdentityProvider = OnRedirectToIdentityProvider

     };

Как указано, ожидаемый результат заключается в изменении имени доменас https://myapplication.com => https://IDS.com, чтобы сайт мог надлежащим образом аутентифицировать пользователей и избежать http 404

1 Ответ

0 голосов
/ 21 декабря 2018

После нескольких недель проблем со сборкой IDS и моего приложения для совместной работы на производстве я наконец-то понял это.Я не считаю, что это идеальное решение, так как я использовал перезапись URL, но это работает.

На прокси-сервере Откройте IIS Manager.Выберите сайт, который перенаправляет трафик.Выберите URL Rewrite.Добавьте правило для входящего трафика и для установленного шаблона: (. *) Условия добавления {URL} Соответствует шаблону: подключение / авторизация.затем вместо использования перезаписи для действия выберите Redirect.Введите доменное имя, к которому вы хотите подключиться: https://ids.com/{R:1} отметьте Добавить строку запроса.Снимки экрана ниже.

Я очень надеюсь, что это кому-нибудь поможет.

enter image description here

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