.NET Desktop (не веб-приложение), использующее единый вход SAML 2.0 с маркером Kerberos - PullRequest
0 голосов
/ 17 октября 2018

Я много читал об этом, чтобы реализовать это для клиента.Я на 100% уверен, что что-то неправильно понимаю, потому что сейчас у меня просто нет смысла.

Наш клиент хочет добавить в приложение, которое мы делаем, функцию единого входа.Идея состоит в том, что при запуске, когда программа установлена ​​на одном из их клиентов, приложение проверяет личность пользователя, используя SSO, чтобы выяснить, разрешено ли ему запускать его.

У клиента есть конечная точка,в интрасети, которая должна отвечать на наш запрос SAML со списком ролей, которые есть у пользователя, который мы проверяем по статическому списку авторизованных ролей, чтобы узнать, есть ли у этого человека правильные разрешения.

МыПредполагается использовать токен Kerberos.Теперь каждая страница, которую я проверяю в Интернете, похоже, говорит об этом по-другому.Сначала я подумал, что мне нужно каким-то образом получить этот токен и добавить его где-нибудь в запросе SAML POST.

Затем, когда поискать, как получить токен, я получаю больше и больше результаты говорят о том, что мне не нужно, что это делается автоматически, и что конечная точка знает, «кто» звонит.

Более того, большинство веб-сайты предполагают , что вызывающий объект (мое приложение) является веб-приложением, и в нем есть много шагов по обучению игре с Web.Config и серверами, оба из которыхУ меня нет.

Поскольку все, что я пытаюсь сделать, кажется неудачным, и так как у меня нет контроля над конечной точкой, чтобы проверить, как она работает или что происходит неправильно (я получаю только коды ошибок), яЯ полностью потерян.

Итак, этот вопрос касается постановки записи.

Мое приложение не на веб-основе, я не makeили см. Конечная точка, которая отвечает на мои запросы.

Приложениеработает в среде Citrix и должен общаться с конечной точкой в ​​интрасети.Я не нахожусь в этой интрасети, мы входим в Citrix из удаленного местоположения для целей тестирования.

Должен ли я получить токен Kerberos в своем коде явно, и если да, то как (Каждый метод, который я 'я видел, что это не работает для меня).

Нужно ли отправлять токен в запросе SAML 2.0 POST, и если да, то где он вписывается в структуру SAML?

1 Ответ

0 голосов
/ 18 октября 2018

На этот вопрос нет ответа.Мы не можем видеть ваше приложение, его интрасеть или какой-либо трафик, передаваемый по проводам.

Многие приложения используют Windows для аутентификации Kerberos (точнее, согласования), и Windows обычно делает это прозрачно.В пассивных сценариях на основе браузера веб-сервер запрашивает код ошибки 401 и заголовок «WWW-Authenticate: Negotiate», который браузер распознает и автоматически отвечает токеном.

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

Ничто из этого не имеет ничего общего с SAML, но поток токенов в основном такой же, с оговоркой, что естьдополнительный переход, где билет Kerberos обменивается на токен SAML.Этот дополнительный переход не определен, и его должен определить разработчик, но он может быть просто заголовком запроса при выполнении SAMLRequest.

...