使用 OWSM 保护 Siebel Web 服务(第 I 部分)

作者:Ken Fiedler、Nathan Ritter [2007 年 12 月]


图 1

我们发现了一个业务需求,即为客户和员工创建一个不同于架构师的简单门户界面,因为这样有助于提升 Oracle 支持系统的技术水平。我们选择针对这个项目使用最新的面向服务的体系结构 (SOA) 和融合中间件,因为这样可以控制对可能驻留在各个不同系统中的公司和客户敏感数据的访问。

在该网志中,我们将介绍使用 Oracle Web 服务管理器 (OWSM) 以及 Oracle 的一次性登录和 LDAP 服务器保护 Siebel web 服务,以控制 ADF 应用程序对 Siebel web 服务的访问所需的步骤。

我们将实施上面图 1 所示的情形。用户身份验证全部通过 Oracle 的 SSO 服务器进行,并由 Oracle 的 Internet Directory (OID)/LDAP 服务器中存储的责任控制。OWSM 将使用应用程序 OID 的访问控制列表 (ACL) 中存储的责任来判定用户是否得到授权可以运行 Siebel 的 EAI/自定义应用程序对象管理器提供的 web 服务。

在本网志后面部分,我们将介绍用于存储责任的 LDAP 结构以及帐户。我们还将介绍如何设置 Siebel 信任令牌以处理访问管理器登录会话的应用程序验证,讨论如何使用安全适配器针对 LDAP 进行 web 服务的用户身份验证。然后,还将讨论针对 LDAP 结构授权所需的 SOAP 头结构和 OWSM 网关策略配置。最后,我们还将介绍一些使用该安全模型从 ADF 调用 Siebel web 服务的示例。



使用 OWSM 保护 Siebel Web 服务(第 II 部分)

作者:Ken Fiedler、Nathan Ritter [2008 年 3 月]

 


图 1

本部分继续该网志上一部分的内容,介绍如何针对 Siebel Web 服务的 Oracle Web 服务管理器 (OWSM) LDAP 验证设置 Oracle Internet Directory (OID) 结构,并提供这方面的示例。下一部分将对 Siebel Web 服务进行详细介绍。(参见图 1,用红色标注的重点区域)。

要利用 OWSM LDAP 验证策略,必须首先在 OID 中定义存储它们的结构。OID 责任应该在 OracleContext 对象内进行创建(cn=OracleContext、dc=oracle、dc=com)。下面的步骤说明创建图 2 所示的结构以及 OWSM 和 Siebel 所需的 LDAP 帐户的过程。

 

在域中创建 ADF 客户责任:

该责任将用于允许授权用户运行 Siebel web 服务。

使用 ldapadd 运行以下 ldif 文件:

 dn: cn=ADF Customer,cn=OracleDefaultDomain,cn=OracleDBSecurity,cn=Products,cn=OracleContext,dc=oracle,dc=com
                    description: ADF Customer<
                    displayname: ADF Customer
                    cn: ADF Customer
                    orclisvisible: true
                    objectclass: top
                    objectclass: orclDBEnterpriseRole
                    objectclass: orclDBEnterpriseRole_82
                    objectclass: orclDBEnterpriseRole_10i
                    objectclass: groupofuniquenames
                    objectclass: orclprivilegegroup
                    objectclass: orclgroup

将一个用户 (john_user) 添加到 ADF 客户责任中,授予其运行 Siebel Web 服务的访问权限。

 dn: cn=ADF Customer,cn=OracleDefaultDomain,cn=OracleDBSecurity,cn=Products,cn=OracleContext,dc=oracle,dc=com
                    changetype: modify
                    add: uniquemember
                    uniquemember: cn=john_user,l=users,dc=oracle,dc=com

创建 WSM 客户端

OWSM 的 LDAP 验证策略和 OC4J 应用程序使用该 OID 帐户查询用户的责任。
使用 ldapadd 运行以下 ldif 文件。

dn: orclApplicationCommonName=WSMClient,cn=JAZNContext,cn=Products,cn=OracleContext
                    orclapplicationcommonname: WSMClient
                    objectclass: orclApplicationEntity
                    objectclass: top
                    userpassword: <password>

向 JAZN 管理组中添加应用程序帐户

如果要允许 OC4J 应用服务器安全性查询用户的责任,则需要进行该操作。
使用 ldapmodify 运行以下 ldif

dn: cn=JAZNAdminGroup,cn=Groups,cn=JAZNContext,cn=Products,cn=OracleContext
                    changetype: modify
                    add: uniquemember
                    uniquemember: orclApplicationCommonName=WSMClient,cn=JAZNContext,cn=Products,cn=OracleContext

更新责任域的 ACL

授予 WSMClient 用户读取 ACL 的权限。
将 ldapmodify 与以下 ldif 结合使用。

dn: cn=OracleDefaultDomain,cn=OracleDBSecurity,cn=Products,cn=OracleContext,dc= 
                    oracle,dc=com
                    changetype: modify
                    add: orclaci
                    orclaci: access to attr=(uniquemember) filter=(objectClass=orclDBEnterpriseRole* 
                    ) by dn="orclApplicationCommonName=WSMClient,cn=JAZNContext,cn=Products,cn=OracleContext" 
                    (read,search,compare)

在该网志后面的部分,我们将介绍如何利用 OWSM 内的这些结构和 ADF 应用程序并结合使用 Siebel 信任令牌来保护 Siebel web 服务。