Обход определенного пользователя в shibboleth SSO

#apache #jenkins #single-sign-on #reverse-proxy #shibboleth

#apache #дженкинс #единый вход #обратный прокси #shibboleth

Вопрос:

Я пытался обойти shibboleth sso для конкретного пользователя. Только одному пользователю требуется аутентификация паролем для приложения, работающего за обратным прокси-сервером Apache. Остальные все пользователи должны пройти через вход в систему единого входа.

Я попытался настроить несколько файлов карты атрибутов, но тщетно.

Есть идеи по изменению конфигурационного файла shibboleth для обхода единого входа для одного пользователя. Любые предложения по этому поводу приветствуются.

Ответ №1:

Есть ли у вас код, который создает «сеанс приложения» из заголовков / переменных среды в приложении, или приложение напрямую обращается к наличию / отсутствию заголовков / переменных среды, установленных Shibboleth?

Если у вас есть сеанс внешнего приложения, вам просто нужно развернуть некоторый код по отдельному пути, который не защищен Shib, но каким-либо другим способом (возможно, даже Apache Basic Auth), который создаст соответствующий файл cookie сеанса для приложения и выполнит перенаправление.

Если вы используете информацию о сеансе Shibboleth непосредственно в приложении, то вам, вероятно, лучше просто запросить учетную запись IdP.

В любом случае, вы находитесь на территории создания черного хода… поэтому вы должны проявлять крайнюю осторожность, чтобы не реализовать уязвимость, которая может быть каким-либо образом использована, и, честно говоря, StackOverflow недостаточно хорошо знает тонкости вашего приложения, чтобы дать больше, чем общие рекомендации.

Я полагаю, что короткий ответ таков… Я не думаю, что вы найдете короткий ответ.

Комментарии:

1. Серверное приложение, о котором я говорил, — это Дженкинс. Дженкинс работает за прокси-сервером apache reverese, и SSO до сих пор работает отлично. Теперь мы хотели использовать python-jenkins api для пользователя (уже включен токен API для пользователя), и каким-то образом он выходит из строя из-за неавторизованной ошибки из shibboleth.

2. к вашему сведению: пользователь API недоступен в ADP