idam oracle_spring boot 集成 Oracle Access Manager(OAM)单点登录

1.介绍

Oracle Access Manager(OAM)是oracle公司开发的身份认证和资源管理解决方案。结合WebGate和OHS可实现系统间单点登录集成。

oracle中间件产品可以非常方便的与OAM进行集成,通过配置weblogic安全域(Security Realms),应用几乎不用做任何改动即可实现单点登录。

后台接口开发中获取当前登录用户是不可避免的一个步骤,spring boot也是如此,本文介绍spring boot与OAM集成的一个可行并且认为是简单的方案。

2.实现

2.1 问题

要实现两者之间的集成需要解决两个问题:

spring boot是无状态应用,如何获取当前用户信息

spring boot不是部署weblogic上,无法通过weblogic 安全域进行单点登录集成(当然spring boot也可以部署到weglogic上,这个不是本文讨论的方向)

2.2 思路

通过ohs代理,spring boot可以获取cookie等信息

调用OAM SDK通过cookie获取当前用户信息

只要实现以上两点就能实现spring boot 在脱离weblogic的情况下也能获取用户信息,如果可行,该方案适用于任何后端程序。

2.3 准备工作

2.3.1 SDK下载安装

在这里可以下载sdk,下载时请选择对应的OAM版本,本文使用11.1.1.5.0版本。

为了使用方便,可以将jar包安装到本地maven仓库

mvn install:install-file -Dfile="/Users/asan/workspace/mpaas/lib/oamasdk-api.jar" -DgroupId=com.oracle -DartifactId=oamasdk-api -Dversion=11.1.1.5.0 -Dpackaging=jar

这样可以通过以下方式在pom中引用

com.oracle

oamasdk-api

11.1.1.5.0

2.3.2 配置webgate

登录oamconsole(一般是http://host:7001/oamconsole),在欢迎界面创建一个新的OAM 11g Webgate输入Name和Host Identifier,这两个默认一样,一定要将Access Client Password设置为空,因为在实践中,sdk无法解析密码,报错信息如下

2018-10-10 22:46:18 oracle.security.am.asdk.AccessClient initialize

严重: Oracle Access SDK 初始化失败。

oracle.security.am.asdk.AccessException: OAMAGENT-02072: 无法执行encrypt password操作。

at oracle.security.am.asdk.impl.Configuration.setEncryptedPassword(Configuration.java:321)

at oracle.security.am.asdk.impl.ConfigXMLHandler.processConfig(ConfigXMLHandler.java:580)

at oracle.security.am.asdk.impl.ConfigXMLHandler.readConfigurationFromFile(ConfigXMLHandler.java:126)

at oracle.security.am.asdk.AccessClient.initialize(AccessClient.java:634)

at oracle.security.am.asdk.AccessClient.(AccessClient.java:553)

at oracle.security.am.asdk.AccessClient.createDefaultInstance(AccessClient.java:242)

...

官方说是sdk版本问题,但笔者试过所有的sdk版本还是无法解决。

点击右上角Apply后可以有系统提示,在提示路径下可以找到ObAccessClient.xml文件,这个就是webgate的配置文件,在实际环境配置中,需要将该文件放到$OHS_HOME/config/webgate/config目录下,才能实现ohs资源拦截认证。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值