Как мне создать URL через Siteminder для доступа к странице? - PullRequest
0 голосов
/ 12 февраля 2020

У меня проблема, я не понимаю, как отлаживать. Я ищу идеи.

У меня есть C# .NetCore 2.2 код, который работает на моем рабочем столе через IIS Express. Я могу "Publi sh" на тестовый сервер.

Первое вероятное осложнение заключается в том, что мы используем продукт под названием «Siteminder» для аутентификации веб-сайта. SM настраивается для каждого сайта, для каждого приложения, для каждого элемента пути запроса, что вам нужно. Он наблюдает за входящим трафиком c, и если этот трафик c соответствует конфигурации, то SM захватывает запрос; вставляет себя как агент авторизации; и, при успешной авторизации, отправляет начальный запрос на сервер. В нашем случае он получает информацию об аутентификации из домена AD.

Вторым возможным осложнением является то, что тестовый сайт называется примерно так:

test-apps.mycompany.com

Мое приложение - одно из многих, под которым можно сидеть этот сайт, поэтому фактический URL-адрес приложения будет выглядеть следующим образом:

test-apps.mycompany.com/myApp

Затем мы перейдем к разделу controller / method / args, и это было для меня нечетко.

My Startup.cs В файле есть раздел маршрута, который выглядит следующим образом:

        var rules = new RewriteOptions().AddRedirect(
            "^$", "/myMainController/Index"
        );
        app.UseRewriter(rules);

        app.UseMvc(routes => {
            routes.MapRoute(
                "default",
                "{controller=myMainController}/{action=Index}"
            );

            routes.MapRoute(
                "people",
                "{controller=myMainController}/{action=People}/{groupName}"
            );
        });

Вопрос:

Когда я публикую sh, это на тестовом сервере, который запускает браузер, который пытается добраться до приложения. Запрос захватывается Siteminder, как я ожидаю. Я могу проверить подлинность через SM просто отлично. В результате отображается URL:

test-apps.mycompany.com/myApp

not

test-apps.mycompany.com/myApp/myMainController/Index

В результате я получаю страницу ошибки 401. Если я тогда попытаюсь установить путь:

test-apps.mycompany.com/myApp/myMainController/Index

, я получу тот же результат. Журналы веб-сервера абсолютно бесполезны.

Что я пробовал?

Я тоже пытался изменить маршруты:

        var rules = new RewriteOptions().AddRedirect(
            "^$", "/myApp/myMainController/Index"
        );
        app.UseRewriter(rules);

        app.UseMvc(routes => {
            routes.MapRoute(
                "default",
                "/myApp/{controller=myMainController}/{action=Index}"
            );

            routes.MapRoute(
                "people",
                "/myApp/{controller=myMainController}/{action=People}/{groupName}"
            );
        });

Я изменил путь назначения Publish с:

test-apps.mycompany.com/myApp

до

test-apps.mycompany.com/myApp/myMainController/Index

Это действительно помогло с частью URL, но страница 401 все еще появляется. Я не уверен, что попробовать дальше. Идеи?

...