5月
13
用户存储
- 进入
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 Step
,KEY_IDENTITY_STORE_REF
输入user store标识符

- 配置
User Password Status Step
,NEW_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,需要为用户增加这
oblixorgperson
和OblixPersonPwdPolicy
两个class

在使用12.2.1.4.0
版本的odsm添加时,碰到OblixPersonPwdPolicy无法添加的bug,如果你也遇到了同样的问题,解决方法就是不要从select里选,直接输入OblixPersonPwdPolicy即可
- 点击
Show Attributes
,保证用户已经包含了obpasswordchangeflag
和oblogintrycount
两个属性

当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创建用户,并且保证用户有oblixorgperson
和OblixPersonPwdPolicy
两个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进行跳转。
参考
Address: https://zhengjianfeng.cn/?p=349
no comment untill now