Параметры единого входа для Exchange 2010

Мы работаем над проектом по переносу электронной почты сотрудников из Unix/open-source (курьер IMAP, exim, squirrelmail и т. Д.) В Exchange 2010 и пытаемся выяснить варианты единого входа в Outlook Web Access. Пока что все варианты, которые я нашел, очень уродливы и "не поддерживаются" и могут просто не работать с Forefront.

У нас уже есть JA-SIG CAS для единого входа на основе токенов и Shibboleth для SAML. Пользователи перенаправляются на простой внутренний портал (на самом деле Perl CGI), который они используют для входа в большинство материалов. У нас есть кластер HA OpenLDAP, который уже синхронизирован с другим доменом AD и будет синхронизирован с доменом AD, который будет использовать Exchange. CAS аутентифицируется по LDAP. Портал аутентифицируется против CAS. Shibboleth аутентифицируется с помощью CAS, но получает дополнительные данные из LDAP. Мы движемся в направлении аутентификации веб-сервисов на CAS или Shibboleth. (Студенты уже проходят проверку подлинности по Службам Google для образовательных учреждений SAML/Shibboleth)

С Squirrelmail у нас есть ужасный хак, связанный с той страницей портала, которая аутентифицируется на CAS, получает ваш оригинальный пароль в виде открытого текста (да, я знаю, злой) и дает вам HTTP-форму, предварительно заполненную всеми необходимыми данными для входа в squirrelmail с помощью javaScript OnLoad вещи, чтобы немедленно отправить форму.

Попытка выяснить, что именно возможно с Exchange/OWA, кажется трудной. "CAS" является одновременно аббревиатурой для нашего сервера единого входа и компонента Exchange. Из того, что я смог сказать, есть дополнение для Exchange, которое выполняет SAML, но только для объединения таких вещей, как информация о занятости в календаре, а не для аутентификации пользователей. Кроме того, это стоит дополнительных денег, поэтому невозможно поэкспериментировать с ним, чтобы понять, можно ли его уговорить сделать то, что мы хотим.

Наши планы для кластера Exchange включают Forefront Threat Management Gateway (новый ISA) в демилитаризованной зоне CAS серверов.

Итак, реальный вопрос: кому-нибудь удалось заставить Exchange аутентифицироваться с помощью CAS (единый вход в систему на основе токенов) или SAML, или с помощью чего-то, что я могу с достаточной вероятностью сделать аутентификационным с помощью одного из них (например, всего, что примет аутентификацию apache)? С Forefront?

Если это не удастся, у кого-нибудь есть несколько советов, как убедить OWA Forms Based Authentication (FBA) позволить нам каким-то образом "предварительно войти в систему" ​​пользователя? (войдите в систему как они и передайте пользователю файлы cookie или предоставьте пользователю предварительно заполненную форму, которая автоматически отправляет, как мы делаем с squirrelmail). Это наименее любимый вариант по ряду причин, но он (едва ли) удовлетворит наши требования. Из того, что я слышал от парня, внедряющего Forefront, нам, возможно, придется установить OWA на базовую аутентификацию и выполнить формы в Forefront для аутентификации, поэтому возможно, что это даже невозможно.

Я нашел CasOwa, но он упоминает только Exchange 2007, выглядит довольно страшно, и, насколько я могу судить, это в основном тот же хак OWA FBA, который я рассматривал, немного более интегрированный с сервером CAS. Это также не выглядело, как многие люди имели большой успех с этим. И это может не работать с Forefront.

Есть также " CASifying Outlook Web Access 2", но это меня тоже пугает и включает в себя настройку сложной конфигурации прокси, которая, скорее всего, сломается. И, опять же, не похоже, что это будет работать с Forefront.

Я что-то упускаю в Exchange SAML (OWA Federated whatchamacallit), где можно настроить аутентификацию пользователя, а не только авторизацию доступа free/busy?

3 ответа

Решение

Мы решили, что сочетание добавления "ClearPass" в CAS и изменения настроек Exchange будет слишком сложным в обслуживании, поэтому наше окончательное решение похоже на решение squirrelmail, которое нам не понравилось.

То есть мы отправляем HTML таким образом пользователю ($something обычно означает уже правильно экранированную переменную) от кнопки, которую они нажимают на нашем внутреннем портале. Это версия, в которой передний план просто выполняет прямую передачу:

<html>
<body onLoad="javascript:document.forms[0].submit()">
<noscript>
 <h1>Redirecting you to $title</h1>
 <p>If you are not taken to $title within 15 seconds,<br />
    please click the button below:</p>
 </noscript>
 <form method="POST"
       action="https://$exchangehost/owa/auth/owaauth.dll" 
       name="logonForm" 
       enctype="application/x-www-form-urlencoded" autocomplete="off">
   <input type="hidden" name="destination" value="https://$exchangehost/OWA/" />
   <input type="hidden" name="flags" value="0" />
   <input type="hidden" name="forcedownlevel" value="0" />
   <input type="hidden" name="trusted" value="0" />
   <input type="hidden" name="username" value="$uid" />
   <input type="hidden" name="password" value="$password" />
   <input type="hidden" name="isUtf8" value="1" />
   <noscript>
     <input type="submit" value="$title" />
   </noscript>
 </form>
 </body>
 </html>

В основном это происходит от копирования формы входа и превращения всего в скрытые поля, но вам нужно изменить URL-адрес действия с /owa/auth.owa в /owa/auth/owaauth.dll,

Мы также попытались с помощью переднего плана выполнить аутентификацию для OWA, вот форма для этого (<body onLoad=...> а в остальном в основном то же самое)

<form method="post" action="https://$exchangehost/CookieAuth.dll?Logon">
  <input type="hidden" name="curl" value="Z2FowaZ2F" />
  <input type="hidden" name="flags" value="0" />
  <input type="forcedownlevel" value="0" />
  <input type="formdir" value="1" />
  <input type="rdoPblc" value="1" />
  <input type="username" value="$domain\$uid" />
  <input type="password" value="$password" />
</form>

Решение Билла Томпсона на github хорошо, и оно заметно в (моей) презентации на конференции Jasig по расширению ClearPass CAS. Запись под названием ClearPass - расширение CAS, позволяющее воспроизводить учетные данные на Vimeo.

Я использую единый вход CAS для Exchange 2007.

В MS Exchange IIS CAS Server добавление нового виртуального каталога index.aspx,

Используя ссылку https://wiki.jasig.org/display/CAS/CASifying+Outlook+Web+Access+2.

bean id="OWAConnection"
   p:host="real-owa-server"
   p:port="443"
   p:scheme="https"
   p:owaauth="/exchweb/bin/auth/owaauth.dll"
   p:owalogon="/exchweb/bin/auth/owalogon.asp"
   p:trusted="4"
   p:flags="4"
   p:destination="/exchange/"

Измените owaauth.dll на этот index.aspx.

Index.aspx - получит пользователя, передаст из CAS через поток входа в CAS - сохранит пользователя, передаст зашифрованный в переменной приложения, когда пользователь успешно прошел проверку подлинности в CAS

В файле login.aspx на MS Exchange OWA настройте для перехода к index.aspx файл.

Это проверяет вход в систему с CAS, если он не перенаправлен в форму входа в CAS.

Когда пользователь проходит проверку подлинности с помощью CAS, он отправляет пользователя и передает его в файл индекса и сохраняет в памяти.

Когда браузер перенаправляет на index.aspx, он проверяет, что пользователь был аутентифицирован CAS, получает имя пользователя из CAS, получает пароль из памяти приложения и аутентифицирует пользователя с помощью owaauth.dll и сохранить куки в браузере клиента.

После этого он перенаправляет браузер в OWA.

Другие вопросы по тегам