更新时间:2024-04-23 GMT+08:00
分享

IAM后端服务配置

  1. 镜像版本

    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

  2. 启动配置

    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
  3. 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 = '授权管理';

    如果上述几项配置不正确,登录后菜单将加载失败。

  4. 登录访问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章节)。

  5. 问题排查
    1. DAAS系统登录不上

      确认主账号在IAM是否可以正常登录。(确保账号密码是正确的)

      确认登录时,daas security服务是否调用 iam-sso 成功。 (查看 iam 日志可以知道。ps: 没调用成功也会提示账号密码错误 )

    2. 登录成功,报错:该租户并未订阅该产品,请先订阅后再访问

      使用admin账号登录IAM中查看租户是否被授权了daas产品。如果确定了已经授权但还是报同样的错,则需要查看admin-openapi的日志分析问题。

      图4 登录成功1
      图5 登录成功2
    3. IAM登录admin账号,看不到所有用户

      参考7.5.2,将租户ID在启动脚本配置上

    4. 非主账号,登录成功,菜单访问不了

      需要登录主账号去给这个子账号配置权限

    5. 账号创建报错

      访问下面接口会返回"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 账号创建报错
    6. 访问iam出现nginx首页

      如果访问Iam出现以下页面,需要设置konga配置

      图7 访问iam出现nginx首页

      打开“konga > ROUTES”,找到deepexi-daas-iam-web配置,关闭“Strip Path”

      图8 图示1

      结果如下:

      图9 图示2

      保存,重新访问iam-console

      图10 图示3

相关文档