用户存储

  • 进入Configuration->User Identity Stores,新建一个用户存储库,存储库的Name也就是user store的标识符需要记下来,下面配置会用到

Password Policy Validation Module

  • 登录OAM console,进入Application Security->Authentication Modules,找到Password Policy Validation Module模块
  • 配置User Identification Step,KEY_IDENTITY_STORE_REF输入user store标识符,KEY_SEARCH_BASE_URL输入用户搜索路径
  • 配置User Authentication StepKEY_IDENTITY_STORE_REF输入user store标识符
  • 配置User Password Status StepNEW_USERPSWD_BEHAVIOR修改为FORCEPASSWORDCHANGE表示强制要求更改密码,KEY_IDENTITY_STORE_REF输入user store标识符
所有的更改,除了点击SAVE以外,还需要点击APPLY令其生效

Authentication Schemes

  • 进入Authentication Schemes,找到项目使用的schema,设置Authentication Module为Password Policy Validation Module,点击APPLY

自定义修改密码页

  • Application Security->Password Policy可以自定义修改密码页,在这里还可以定义密码策略

默认是/oam/pages/pswd.jsp页面,这个是OAM自带的一个修改密码页面

OID or OUD

如果项目使用的是OIM进行用户管理,并且OIM集成OUD,那么通过以上的配置就已经完成了所有配置,否则需要按照以下步骤进行一些配置
  • 登录OID或者OUD的odsm,需要为用户增加这oblixorgpersonOblixPersonPwdPolicy两个class
在使用12.2.1.4.0版本的odsm添加时,碰到OblixPersonPwdPolicy无法添加的bug,如果你也遇到了同样的问题,解决方法就是不要从select里选,直接输入OblixPersonPwdPolicy即可
  • 点击Show Attributes,保证用户已经包含了obpasswordchangeflagoblogintrycount两个属性
当obpasswordchangeflag为true时,用户登录会跳转到修改密码的页面,因为OAM是根据obpasswordchangeflag属性来判断是否需要跳转修改密码页面,这个属性很重要。
如果修改密码的页面是自开发的话,需要保证用户修改完密码后obpasswordchangeflag属性设为false,否则用户每次登录都需要重新修改密码
  • 如果没有obpasswordchangeflag属性,那么需要自行创建,并且将属性添加到OblixPersonPwdPolicy中,进入schema搜索obpasswordchangeflag,如果没有点击创建
  • Name输入obpasswordchangeflag,Object ID输入一个数字即可,如果数字已经被占用,换一个就行,size输入10即可
  • 进入Object Class中,搜索OblixPersonPwdPolicy,并将obpasswordchangeflag添加到该class的属性中

如何修改用户的属性值

odsm不提供obpasswordchangeflag值的修改,如果需要修改,需要借助第三方ldap工具,这里推荐开源ldap客户端ldapadmin,软件操作很简单,基本都是傻瓜式,这里就不多介绍,连接oid或者oud后,找到用户,右键编辑就能编辑用户所有属性,这个工具比odsm好用多了。

验证

如果用户是通过OIM进行管理,在OIM上创建一个用户即可,否则登录odsm或者用ldapadmin创建用户,并且保证用户有oblixorgpersonOblixPersonPwdPolicy两个class,并且obpasswordchangeflag的属性是true。

  • 用户首次登录进入修改密码页面
  • 输入新密码后,点击界面上的连接可进入系统

自定义修改密码的页面如何知道要进入什么系统,OAM在跳转到自定义页面时是没有带上redirect url的,自定义的页面在完成密码修改后,需要跳转到https://host:port/oam/server/auth_cred_submit页面,交由OAM系统进行跳转,所以有一种方案就是自定义页面的路径配置为${自定义页面的url}?redrecturl=https://host:port/oam/server/auth_cred_submit,将路径hard code到自定义页面里,页面根据redrecturl进行跳转。

参考

,
Trackback

no comment untill now

Add your comment now