IAM后端服务配置
- 镜像版本
iam-sso:deepexi-client-iam-admin:4.6.4-beta_arm64
iam-openapi:deepexi-client-iam-openapi:4.6.4-beta_arm64
iam-admin:deepexi-client-iam-admin:4.6.4-beta_arm64
- 启动配置
iam-admin、iam-openapi这两个服务的启动配置需要指定租户管理员的租户id。不指定默认值为:4e086791212649d79f30ec0527599aee
需要添加的配置项:
--deepexi.default.tenant-id=?
图1 启动配置
deepexi.default.tenant-id这个值在deepexi_client_iam数据库执行下面sql可以查询:
select tenant_id from deepexi_client_iam.account_account_info where is_main = 1 and enterprise_code = 'admin' and is_deleted = 0
- apollo配置
security服务apollo 配置中,下面这几项需要配置正确。(使用最新iam-4.4.0初始化sql初始化iam的数据库,配置项的值如下)初始化sql参考:
https://deepexi.yuque.com/docs/share/550fe007-a9db-4496-95fa-c4d8a14bf369?#
# 角色组id role.groups.id = 1 (角色组id默认为1) # 应用系统功能组id system.function.id = 1 # 应用项目功能组id project.function.id = 2 # 权限中心元素id permission.center.id = 12 # 账户管理元素id user.manager.id = 17 # 角色管理元素id role.manager.id = 14 # 权限管理元素id permission.manager.id = 54
以上配置来源通过查询deepexi_client_iam数据库相关表得到,相关sql如下:
select id from permission_role_group where name = '系统角色组';
select id from permission_function_group where name = '系统功能组';
select id from permission_function_group where name = '项目功能组';
select id from permission_element_resource where name = '权限中心';
select id from permission_element_resource where name = '账户管理';
select id from permission_element_resource where name = '角色管理';
select id from permission_element_resource where name = '授权管理';
如果上述几项配置不正确,登录后菜单将加载失败。
- 登录访问Iam系统
http://139.159.196.135/iam-console/index.html#/login
daas租户账号:daas/abcd1234,租户管理员账号:admin/abcd1234
租户账号登录只能管理自己租户,效果如下:
图2 登录访问Iam系统1
租户管理员账号登录可以管理所有租户及应用,效果如下:
图3 登录访问Iam系统2
如果使用admin(租户管理员)账号登录,存在多个租户时,页面账号列表却只有admin账号。要去检查iam-admin、iam-openapi启动配置的--deepexi.default.tenant-id这个值是否配置正确(参考7.5.2章节)。
- 问题排查
- DAAS系统登录不上
确认主账号在IAM是否可以正常登录。(确保账号密码是正确的)
确认登录时,daas security服务是否调用 iam-sso 成功。 (查看 iam 日志可以知道。ps: 没调用成功也会提示账号密码错误 )
- 登录成功,报错:该租户并未订阅该产品,请先订阅后再访问
使用admin账号登录IAM中查看租户是否被授权了daas产品。如果确定了已经授权但还是报同样的错,则需要查看admin-openapi的日志分析问题。
图4 登录成功1
图5 登录成功2
- IAM登录admin账号,看不到所有用户
- 非主账号,登录成功,菜单访问不了
- 账号创建报错
访问下面接口会返回"401","token失效请重新登录"
http://139.159.196.135/deepexi-daas-security/api/v1/users/currentUser?tenantId=985e029870ba47399933a6bf5e08eb3d&userId=10002&projectId=&businessSegmentsId=&_=1616033853562
确认security服务apollo配置,iam.signingKey = d20a0382a5f840f7afbd3f4df92ecaf8 是否为这个值。需要修改成这个值。security服务JWT解析编码要用到这个值
图6 账号创建报错
- 访问iam出现nginx首页
图7 访问iam出现nginx首页
打开“konga > ROUTES”,找到deepexi-daas-iam-web配置,关闭“Strip Path”
图8 图示1
结果如下:
图9 图示2
保存,重新访问iam-console
图10 图示3
- DAAS系统登录不上