OAM简介

2011年10月15日 dick.luo 发表评论 阅读评论

OAM简介

什么是OAM

OAM是针对web访问管理以及用户身份管理的Oracle身份管理的解决方案。OAM是被设计去支持复杂,不均匀的企业环境的。OAM由两个紧密集成的组件组成的:访问及身份系统。身份系统提供了用户配置文件的委托管理以及创建,更新以及更新这些配置文件的工作流。它还提供了应用给用户去self-registration,管理密码以及动态组管理。访问系统为运行在各种不同的WEB以及应用服务器的WEB应用以及J2EE资源提供了访问控制以及单点登录。

OAM组件

OAM包含了以下三个组件:

  • Access Server:一个独立的服务器,为Acces gates提供了授权,验证以及审计等服务,安装OAM的时候自带的。
  • WebGate:拦截HTTP请求并将其转向Acces Server中进行验证与授权,需要额外安装的插件。
  • Identity Assertion Provider (IAP) :一类安全provider,通过验证产生cookie中的头信息对用户身份进行断言。
OAM功能

OAM为企业应用提供了以下功能

  • 身份验证
  • 身份管理(通过与OID进行集成)
  • 访问控制
  • 单点登录
OAM单点登录流程

一般情况下,用户会通过浏览器对weblogic中运行的程序进行访问,例如此次配置的webcenter spaces,discussion应用。Oracle HTTP Server(OHS)会使用OAM Webagte对用户发出的请求进行拦截,并将其转向到OAM的Policy服务器进行身份验证。OAM对用户身份验证成功之后,OAM会产生一个回话凭证,一个cookie,该cookie可以比作单点登录的令牌。获得令牌以后OAM会根据其身份信息,使用IAP进行断言并进行授权,根据授权级别以及授权结果,返回相应的请求资源。

详细的登录流程如下:

OAM单点登录的流程主要包括以下三个步骤:

1. 检查用户请求的资源是否为受保护的

2. 进行验证

3. 进行授权

  • 第一步:检验资源是否为受保护的资源

image

如上图:

1. 用户请求资源

2. 经过Webgate处理,将请求转向OAM进行策略评估

3. OAM主要做了两个工作

a) 验证单点登录cookie是否存在

b) 检查所请求的资源是否为被保护的(有公开的和被保护的两种)

4. OAM记录下来并返回检查结果

5. 根据返回结果判断是否为被保护的资源,Webgate根据是否为被保护资源,做出的反应如下:

a) 公开资源:资源被提供给用户,流程结束

b) 受保护的资源:

i. 用户请求被重定向到credential collector

ii. 提供给一个基于验证策略的登录表单给用户

iii. 验证流程开始

image

  • 第二步:验证过程

image

6. 用户发送凭证

7. OAM对用户发送过来的凭证进行验证

8. OAM启动会话并创建下面host-based的cookies:

a) One per partner:Webgate使用从OAM接收到的身份验证的令牌进行设置OAMAuthnCookie,每个会话需要一个合法的cookie

b) OAM Server端:OAM_ID

9. OAM记录下验证结果并返回到用户

10. OAM credential collector将用户请求重定向到webgate,授权流程开始

  • l 第三步:对用户进行授权

image

11. Webgate提醒OAM Server去进行查询策略,并将他们与用户身份进行比对,决定用户的授权级别

12. OAM记录下策略决定以及检查session,cookie

13. OAM评估授权策略并将结果进行缓存

14. OAM记录并返回其决定

15. Webgate回应如下:

a) 如果授权策略允许访问,请求会被重定向到mod_wl,mod_wl会依次将请求重定向到webcenter spaces应用所运行的weblogic上,并将内容展示给用户。用户成功进行反问请求的资源,登录成功。

WebGate -> mod_wl -> Spaces [, Discussion, .. etc] --> Content is server tothe authenticated user

b) 如果授权策略拒绝访问,用户会被重定向到管理员指定的URL

OAM单点登录组件原理

了解了OAM单点登录的流程以后,我们可以通过下面图来解析下通过OAM以及其他中间件组件是如何来实现单点登录的。

通过此图,我们可以清楚的看到在此方案中,每个使用组件的功能:

image

1. OAM:

  • 验证策略
  • 授权策略

2. Webgate:进行用户HTTP的拦截

3. Webtier:将OHS上的代理重定向到weblogic上

4. OID:进行用户信息的存储以及管理

  • OAM策略模型

在一个OAM应用域的环境中,OAM策略模型同时支持验证和授权服务(旧的版本 中OAM策略域中提供)。策略模型依赖着外部的user identity stores以及验证模型,这个是整体系统配置的一部分。

下图中显示了OAM 11g策略模型中不同的元素:

image

OAM 11g策略模型构造的最高层是OAM应用域(Application domain)。每个应用域都为资源和相关的决定谁能访问这些资源的验证及授权策略提供了一个逻辑容器。

应用域的大小和数量是由管理员决定的,还可以根据各个应用资源或其他任何需要的逻辑分组来决定。在注册一个Agent的时候会自动去创建一个应用域。同时,管理员还可以使用单个agent来维护多个应用域,通过手动去创建应用域以及添加资源和策略。

共享的策略组件:

  • l 资源类型

被保护资源的类型。每个资源都会有一个单独的资源类型,然而,每个资源类型可以有任意个资源。当您需要定义一个资源,首先得去定义该资源的类型。

  • l 主机标识
  • l 验证方案

 

初来咋到,请大家多多关照!

 

 

关于作者:

昵称:dick.luo
档案信息:本人罗昌辉,英文名为Dick,目前就职于上海汉得信息技术股份有限公司中间件事业部,担任中间件技术顾问,专注于Oracle融合中间件产品在企业中的应用以及二次开发。
联系方式:你可以通过changhui.luo@gmail.com联系作者
点击查看dick.luo发表过的所有文章...
本文永久链接: http://blog.retailsolution.cn/archives/2849

 

 

对本文的评价:

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

 

 

  1. handy
    2011年10月15日23:42 | #1

    很好,很强大

  2. 2011年10月16日11:15 | #2

    @handy
    初来咋到,多多关照!

  1. 本文目前尚无任何 trackbacks 和 pingbacks.
您必须在 登录 后才能发布评论.