5

我正在考虑使用 java 或 .NET 构建一个定制的解决方案,并且我想将身份验证层与 SiteMinder 集成。

A. 从​​我目前发现的情况来看,SiteMinder 似乎为外部应用程序提供了某种 API 以将登录凭据传递给 Siteminder,Siteminder 能够恢复登录凭据是否正确:

- https://support.ca.com/cadocs/0/CA%20SiteMinder%20r12%20SP2-ENU/Bookshelf_Files/PDF/siteminder_java_dev_enu.pdf

- https://support.ca.com/cadocs/0/CA%20SiteMinder%20r12%20SP2-ENU/Bookshelf_Files/PDF/siteminder_sdk_overview_enu.pdf

=> 根据您的经验,实施此操作时是否有任何问题?

B. 身份验证后,我设想 SiteMinder 会将登录用户 ID 传递给我要开发的应用程序,该应用程序将搜索数据库以查找与登录用户 ID 关联的角色和功能。这意味着我需要一个数据库表来存储来自 SiteMinder 的用户 ID 列表。

=> 有什么方法可以将站点管理员中的用户 ID 和名称导出到平面文件中?我正在考虑设置一个常规的数据接口作业,该作业将从站点管理员中提取用户信息并更新我要开发的应用程序。

4

3 回答 3

12

A.如果您没有义务,我强烈建议您不要使用 SDK。您的代码将过于依赖于 Siteminder,并且可能会在 Siteminder 基础架构的每次升级时中断。SDK 在没有其他解决方案时使用。
一种更标准的集成 Siteminder 的方法是在您的 Web/应用程序服务器上安装 Web 代理/J2EE 代理。Siteminder 将负责用户的身份验证过程,因此您不必担心密码和将凭据传递给 Siteminder。此身份验证过程对应用程序是完全透明的。 应用程序只需在传入的 HTTP 请求中获取并信任这些信息。
一旦用户通过 Siteminder 身份验证,Web 代理将向请求添加特定的 HTTP 标头以及用户信息(用户名、电子邮件地址、应用角色、其他信息......)。

B. 你有两种方法可以做到这一点:

  1. Siteminder 可以在标题中添加这些信息,因此您不必处理它们。
  2. 如果您真的需要数据库中的这些信息,Barra 已经为您提供了最重要的信息。
于 2011-09-04T00:07:24.160 回答
2

A. 创建 SiteMinder 会话的 API,但您需要用户的凭据输入

B. SiteMinder 不使用它自己的用户存储库。它外包给可选的 LDAP 或数据库服务器。因此,您无需通过 SiteMinder 即可处理该组件

于 2011-04-15T11:06:42.410 回答
1

If you don't want to install a Web Agent or are concerned about the security implications of using HTTP Headers, you might want to look into using SAML. SiteMinder includes support for SAML based user authentication which may be an easier solution to implement.

SAML is a standard SSO protocol, you should be able to find many examples and possibly even a ready built module that can be used.

于 2014-08-01T17:59:43.587 回答