Exchange 2010的单点登录选项

Modified on: Sun, 04 Aug 2019 20:20:02 +0800

我们正在开展一个项目,将员工电子邮件从Unix /开源(快递IMAP,exim,squirrelmail等)迁移到Exchange 2010,并试图找出Outlook Web Access单点登录的选项。到目前为止,我发现的所有选项都非常难看并且“不受支持”,并且可能根本不适用于Forefront。

我们已经为基于令牌的单点登录JA-SIG CASShibboleth。用户被引导到一个简单的内部门户(真正的Perl CGI),他们用它来登录大多数东西。我们有一个HA OpenLDAP集群已经与另一个AD域同步,并将与Exchange将使用的AD域同步。 CAS对LDAP进行身份验证。门户网站对CAS进行身份验证。 Shibboleth使用CAS进行身份验证,但从LDAP中提取其他数据。我们正在朝着使用CAS或Shibboleth进行身份验证的Web服务的方向发展。 (学生已经使用SAML / Shibboleth认证的Google Apps for Education)

使用Squirrelmail我们有一个可怕的黑客链接来自该门户网站页面,对CAS进行身份验证,获取您的原始明文密码(是的,我知道,邪恶),并为您提供一个预先填写所有必要的squirrelmail登录的HTTP表单使用javaScript onLoad的详细信息可以立即提交表单。

尝试确切地了解Exchange / OWA的可能性似乎很难。 “CAS”既是我们的单点登录服务器和Exchange组件的首字母缩写。从我能够分辨出来的有一个用于执行SAML的Exchange的插件,但仅用于联合诸如忙/闲日历信息之类的内容,而不用于对用户进行身份验证。此外,它需要额外的资金,所以没有办法试验它是否可以被哄骗做我们想要的。

我们对Exchange群集的计划涉及前端CAS服务器的DMZ中的Forefront威胁管理网关(新的ISA)。

所以,真正的问题:是否有人设法使用CAS(基于令牌的单点登录)或SAML进行Exchange身份验证,或者使用我可以合理地使用其中一个进行身份验证的内容(例如任何可以接受apache的内容)认证)?有了Forefront吗?

如果做不到这一点,任何人都有一些提示说服OWA基于表单的身份验证(FBA)让我们以某种方式“预登录”用户? (以他们身份登录并将cookie传回给用户,或者为用户提供一个预先填写的表单,与我们使用squirrelmail一样自动提交)。出于多种原因,这是最不受欢迎的选项,但它(几乎不能)满足我们的要求。根据我从实现Forefront的人那里听到的,我们可能必须将OWA设置为基本身份验证并在Forefront中执行表单以进行身份​​验证,因此甚至可能无法实现。

我确实找到了CasOwa,但它只提到了Exchange 2007 ,看起来有点可怕,而且我可以告诉的几乎是相同的OWA FBA黑客,我正在考虑与CAS服务器稍微集成。它看起来也不像很多人用它取得了很大的成功。它可能不适用于Forefront。

还有“CASifying Outlook Web Access 2“,但是那个人也吓到了我,并且涉及设置一个复杂的代理配置,这似乎更容易打破。并且,再次看起来它看起来不适用于Forefront。

我是否遗漏了Exchange SAML(OWA Federated whatchamacallit)可以配置进行用户身份验证而不仅仅是忙/闲访问授权的内容?

作者:,freiheit

最佳答案

我们认为将“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=...>,其余基本相同):

<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>
作者:freiheit

相关问答

添加新评论