12
发帖
楼主: xxzbzx

OAuth2服务端配置问题

升级   4.49%

29

主题

32

回帖

449

积分

注册会员

Rank: 2

积分
449
发表于 2022-6-30 17:14:24 | 显示全部楼层
启蒙星 发表于 2022-6-28 11:22
搭了一个oauth测试服务http://doc.o2oa.net (用户名:演示用户一,密码:o2),客户度配置参考图示 ...

用了最新的7.1.3版本作为服务端测试成功,但是对接keycloak、casdoor等第三方标准OAuth2服务端还是不成功,但是用wordpress、nextcloud等系统对接以上服务端又全部成功,Postman调试也均可返回用户信息(uesrname、email等json字段),现在怀疑O2OA的OAuth2客户端代码有问题(初步估计是clientSecret没有按照最新OAuth2标准进行加密处理,因为keyclaok后台事件返回"invalid_client_credentials"错误提示,还是有劳官方严格测试一下O2OA与第三方OAuth2客户端对接的可行性。
我也提供一下我的测试环境:

——————————————————keycloak配置——————————————————————
keycloak测试环境地址:http://61.177.138.119:8011
keycloak管理员账号:admin
keycloak管理员密码:admin
keycloak测试用户账号:13915238436
keycloak测试用户密码:O2O2O2

keycloak_jyjy_o2oa接口配置:
————————————
ClientId:o2oa
clientSecret:A5oPNcOtVM9KgkrwrheZvZuAS3bcOTpT
authorization-uri: http://61.177.138.119:8011/auth/ ... openid-connect/auth
token-uri: http://61.177.138.119:8011/auth/ ... penid-connect/token
user-info-uri: http://61.177.138.119:8011/auth/ ... id-connect/userinfo

——————————————————O2OA配置——————————————————————
O2OA测试环境地址:http://61.177.138.119/
O2OA管理员账号:xadmin
keycloak管理员密码:o2
O2OA测试用户账号:13915238436
keycloak测试用户密码:238436



回复

使用道具 举报

升级   100%

0

主题

662

回帖

2

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2
发表于 2022-7-1 13:52:23 | 显示全部楼层
o2作为客户端对服务端参数配置可能有影响,试试这样的配置:
请求密钥方法参数:
client_id={$clientId}&redirect_uri={$redirect_uri}&response_type=code

请求令牌方法参数:
client_id={$clientId}&client_secret={$clientSecret}&redirect_uri={$redirectUri}&grant_type=authorization_code&code={$code}
回复

使用道具 举报

升级   4.49%

29

主题

32

回帖

449

积分

注册会员

Rank: 2

积分
449
发表于 2022-7-1 14:00:43 | 显示全部楼层
本帖最后由 xxzbzx 于 2022-7-1 14:22 编辑
启蒙星 发表于 2022-7-1 13:52
o2作为客户端对服务端参数配置可能有影响,试试这样的配置:
请求密钥方法参数:
client_id={$clientId}&re ...

redirect_uri={$redirectUri}修改后有效果,虽然登录keycloak认证界面后返回O2OA还是提示“无法获取用户凭证, 您可能未绑定“sso”账号。”,但是keycloak后台提示是能成功获取token的,如下图:


现在我的请求密钥方法参数:client_id={$clientId}&redirect_uri={$redirect_uri}&response_type=code&scope=profile&state=jyjy,
请求令牌方法参数:client_id={$clientId}&client_secret={$clientSecret}&redirect_uri={$redirectUri}&grant_type=authorization_code&code={$code}
请求信息方法参数:access_token={$access_token}

如下图:



按理说获取到token后,用户json信息应该也能获取到,下面是我用postman调试keycloak的OAuth2接口返回的信息:


返回json信息中有username和email字段,我在O2OA客户端“info信息中用于标识个人的字段”中也设置了“username",按理说字段名吻合不就能登陆成功吗?哪里还有错误呢?
还有就是"infoScriptText"字段是起什么作用的?能否简单说明一下?官网示例中都没有很好地说明。

还望管理员大大不吝赐教!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

升级   0.02%

83

主题

92

回帖

2

积分

注册会员

Rank: 2

积分
2
发表于 2022-12-17 16:39:41 | 显示全部楼层
xxzbzx 发表于 2022-7-1 14:00
redirect_uri={$redirectUri}修改后有效果,虽然登录keycloak认证界面后返回O2OA还是提示“无法获取用户凭 ...

现在问题解决了吗?我现在也在搞这个
回复

使用道具 举报

12
发帖

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表
viewthread