Kerberos, делегирование и как это правильно сделать?
У нас есть два отдельных домашних приложения, которые должны общаться между собой. Одним из них является интерфейсное приложение (на самом деле asp.net), а другим - бэкэнд-интерфейс для бухгалтерского приложения. Внутренний интерфейс не был создан специально для этого интерфейса - это общий интерфейс, который многие другие приложения используют для интеграции с нашим продуктом.
Для удобства пользователей мы хотим обеспечить проверку подлинности Windows в нашем веб-приложении. Это означает, однако, что нам нужно передать учетные данные бэкэнд-приложению, которое должно их проверить.
Мы не хотим настраивать наш интерфейс как "доверенный» приложение к бэкэнду, которое может аутентифицировать себя как любой пользователь. Если фронтенд был взломан, он также поставил бы под угрозу бэкэнд-систему.
Насколько я понимаю, одним из способов сделать это с помощью аутентификации Windows является делегирование Kerberos. Однако для этого необходимо явно включить пользователя, которому необходимо делегировать, и машину, которая выполняет делегирование (сервер с нашим внешним интерфейсом). По умолчанию эти параметры отключены в Active Directory, и я подозреваю, что многие системные администраторы будут иметь резервирование для включения их для всех своих пользователей.
Также я'Я не совсем уверен, что именно для этого и была предназначена делегация Kerberos. Я ненам не нужен наш интерфейс, чтобы выдать себя за пользователя, который подключается. Мне просто нужно доказать, что этот пользователь аутентифицировался для меня.
Как бы вы это сделали?