ASP.NET 应用程序与带有 Kerberos 的 GSA 集成
我们公司购买了GSA(GSA 6.8.0.G.30),我们正在努力 将搜索集成到我们的门户(ASP.NET)应用程序中。这 Kerberos 已在 GSA 上配置,我可以使用 IE 进行安全操作 使用default_frontend进行搜索,我可以得到安全的结果 无需通过登录表单。
然而,当我们尝试集成时,我们遇到了一些挑战 搜索到我们的 Portal,从我们的 ASP.NET 代码中,我们可以获取用户的 WindowsIdentity 并创建一个WindowsImpersonationContext,然后我们使用 用于提交搜索的 HttpWebRequest 对象,GSA 首先响应 302,以及传输 URL“https://my_gsa_hostname/security-manager/ samlauthn?SAMLRequest=fZLLTsM...”,然后我们创建一个新的请求点 对于新的 URL,GSA 返回 401 - 未经授权。
任何人都可以照亮我们吗?
Our company purchased GSA (GSA 6.8.0.G.30), and we are trying to
integrate search into our portal (an ASP.NET) application. The
Kerberos is already configured on GSA, I can use IE to do a secure
search by using the default_frontend, and I can get back secure result
without go thru the login form.
However, we have some challenge when we are trying the integration
search to our Portal, from our ASP.NET code, we can obtain user's
WindowsIdentity and create a WindowsImpersonationContext, we then use
a HttpWebRequest object to submit a search, GSA first response with
302, and a transport URL "https://my_gsa_hostname/security-manager/
samlauthn?SAMLRequest=fZLLTsM...", then we create a new request points
to the new URL, GSA returns 401-unauthorized.
Anyone can shed us a light?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
默认情况下,WindowsIdentity 和 WindowsImpersonationContext 无法委托。您需要设置信任委托。您的请求将以匿名方式发送给 GSA。我不久前写了一篇博客文章,介绍如何编写一些 .NET 代码来与设备握手。您可以在这里阅读:
http://www.mcplusa.com/blog/2009/06/remotely-calling-the-google-search-appliance-restful-web-services-when-saml-is-启用/
关键是让您的网站通过 kerberos 对您的用户进行身份验证,因为 NTLM 不可委托。所以..kerberos 到 GSA 网站。
在通用登录管理器之前,我们使用 Windows Saml Bridge 进行静默身份验证。有一个很棒的文档描述了如何设置 kerberos
http:// /code.google.com/p/google-saml-bridge-for-windows/wiki/ConfigKerberos
The WindowsIdentity and WindowsImpersonationContext can not delegate by default. You'll need to set up the delegation of trust. Your request is between sent to the GSA anonymously. I wrote a blog entry a while back regarding how to write some .NET code to handshake with the appliance. You can read that here:
http://www.mcplusa.com/blog/2009/06/remotely-calling-the-google-search-appliance-restful-web-services-when-saml-is-enabled/
The key will be getting your website to authenticate your users via kerberos as NTLM is not delegate-able. So..kerberos to website to GSA.
Before the Universal Login Manager, we use the Windows Saml Bridge for silent authentication. There is a great document describing to set up kerberos
http://code.google.com/p/google-saml-bridge-for-windows/wiki/ConfigKerberos