Прежде чем вы думаете, я должен опубликовать это на другом форуме - это вопрос, связанный с ОС Windows, а не программирование.
Я создаю интранет-сайт, который требует авторизации пользователя через Kerberos. После нескольких дней исследований я думаю, что использование PHP для этого не является лучшим способом сделать это, и мне нужно найти другое решение. Таким образом, у меня появилась идея, которая работает очень хорошо: я могу использовать свои знания в C #, чтобы использовать .NET Framework для своей работы. Поэтому я написал (пока) небольшое приложение, которое использует Kerberos для проверки учетных данных пользователя. Я запускаю приложение из PHP, чтобы проверить его код возврата что-то вроде:
myapplication.exe имя_пользователя password1!
(в ближайшее время он получит больше информации через командную строку)
Он возвращает код, основанный на проверке авторизации, поэтому мое PHP-приложение знает, было ли оно успешным или нет. Авторизация Kerberos зашифрована (это было очень легко с .NET), поэтому у меня есть "две птицы одним камнем". Конечно, весь процесс более сложный, поэтому мне не нужно использовать его каждый раз, когда пользователь входит в систему, но здесь дело не в этом.
Я задаю вопросы, потому что могу узнать что-то полезное и хочу быть уверенным:
Действительно ли этот подход безопасен? Кто-нибудь может получить пароль, который я передаю в командную строку? Это может быть зарегистрировано где-нибудь? И если да - могу ли я это предотвратить? Если это небезопасно - могу ли я передавать учетные данные более безопасно?
Это действительно только один вопрос "Это безопасно?"но я хочу дать вам некоторое представление о том, что я прошу. Я не хочу заходить слишком далеко с этим, если я не уверен, что это хорошая идея. Кроме того, пока все работает отлично.
Я использую сервер Apache на Windows Server с базой данных MySQL (вероятно, изменится на MSSQL Express).
[EDIT] Я должен отметить, что я использую команду exec() в PHP. Я спрашиваю, можно ли каким-то образом установить связь между службой Apache, запускающей / запускающей myapplication.exe, потому что пароль передается единовременно только в виде простого текста.