четверг, 16 июня 2016 г.

Не пускает в OWA после успешной авторизации

Столкнулся с проблемой, когда после успешной авторизации в OWA происходит возвращение на страницу авторизации, при этом в логах всё хорошо, авторизация происходит успешно и красного нет (если только не посмотреть в тот самый глубоко зарытый лог и знать, что именно искать).

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

Далеко не с первого раза правильно сформулировав мантру поиска я нашел статью прям про мою проблему. Если вкратце, .Net не умеет Microsoft Software Key Storage Provider\CNG. Если более конкретно, из-за отсутствия доступа к приватному ключу auth.owa не может расшифровать cookie авторизации и редиректит обратно на авторизацию. Почему ТАК сделано и почему .NET не поддерживает CNG я не знаю, ну да ладно.

Единственное, что не указано в статье, но что надо учитывать, это что экпортированный из провайдера KSP pfx не удастся импортировать в "устаревший" CSP. Для обхода этой печали я использовал openssl:

  • Конвертируем PFX в PEM
  • Правим Cert, удаляя из него данные об использовании "Provider = Microsoft Software Key Storage Provider"
  • Собираем обратно PFX

После этой манипуляции сертификат успешно импортируется, а проблема исчезает после рестарта OWAAppPool.

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

Отправить комментарий