GithubHelp home page GithubHelp logo

tencentblueking / bk-iam Goto Github PK

View Code? Open in Web Editor NEW
68.0 68.0 42.0 29.58 MB

BK-IAM is a centralized permission management service provided by The Tencent BlueKing; based on ABAC

License: Other

Makefile 0.11% Shell 0.01% Go 99.09% Smarty 0.08% Dockerfile 0.03% Python 0.69%
abac bk-iam iam

bk-iam's People

Contributors

dependabot[bot] avatar kingofzihua avatar nannan00 avatar wklken avatar yetlau111 avatar zhu327 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

bk-iam's Issues

ldap相同ou无法测试

我们同一个ldap,ou=People,dc=xxx 想在蓝鲸中配置成两个登录域,但是实践的时候出现,可以新增ldap目录,但是同步用户数据更新的时候,出现【Duplicate entry 'People' for key 'code'】不允许配置两个相同People的操作,我们该如何配置,才能将同一个ldap配置成两个登录域

bk-iam后台的SQL语句中的 groups 与 mysql8 的keywords冲突

Bug: bk-iam后台的SQL语句中的 groups 与 mysql8 的keywords冲突

  • bkiam SaaS:1.9.4
  • bkiam 后台:1.12.5

发生了什么(What happened):
问题:bkiam后台服务使用 mysql 8.0.23 进行承载数据时,普通用户在根据 action_id 为 access_developer_center 进行鉴权时,后台日志出现以下报错:

Error 1064: You have an error in your SQL syntax; check the manual the corresponds to your MySQL server version for the right syntax to user near 'groups
    FROM subject_system_group
    WHERE system_id = 'bk_paas' AND subject_pk ' at line 3

经检查,是由于 iam 后台所定义的 sql 查询语句使用了 groups 的关键字,这是 mysql 8 新增的保留关键字,所以导致语法错误。
image

期望是什么(What you expected to happen):
在不修改数据库表结构的前提下,建议是把 SQL 语句中的所有关键字都使用反引号 ` 进行包括起来 ,也可以遵循 MySQL 的 不完全限定名 unqualified name ,使用 table_name.column_name 的方式进行编写 SQL 语句。
如:

SELECT
  `subject_pk`,
  `groups`,
FROM
  `subject_system_group`
WHERE
  `system_id` = ?
AND
  `subject_pk` IN (?)

如何复现(How to reproduce it):
只需要把 bkiam 后台切换成 mysql8 即可。

相关的日志详情(SaaS 及后台日志说明 https://bk.tencent.com/docs/document/6.0/160/8398)和截图等(Log & Screenshot):

备注(Anything else we need to know):

提供注册数据修改/回退接口

BUG反馈还是需求提交(Is this a BUG REPORT or FEATURE REQUEST)? (choose one):
需求提交

bk-iam-app SaaS/bk-iam后台版本(The versions used):
当前最新版本仍未有该功能

需求背景:
目前很多外部自研saas进行权限中心接入,接入过程经常需要进行注册数据调整(例如变更system_id)或回退注册动作进行重新操作,目前实现这个修改动作需要采用数据库方案, 不够便捷也不够安全

期望是什么(What you expected to happen):

  1. 权限中心提供与注册这块内容相关的页面,方便注册方了解自己注册的转态,修改注册的数据及回退注册动作
  2. 如果页面啥上实现不合适,那可以提供进行注册回退及相关修改的接口
  • 修改已注册系统ID的接口
  • 回退对应系统注册操作的接口(清楚所有该系统相关的注册数据)

版本信息有误

BUG反馈还是需求提交(Is this a BUG REPORT or FEATURE REQUEST)? (choose one):
缺陷

bk-iam-app SaaS/bk-iam后台版本(The versions used):
最新版存在该问题

发生了什么(What happened):
image

bk-iam 事务回滚方法建议优化

代码:https://github.com/TencentBlueKing/bk-iam/blob/master/pkg/database/utils.go
使用场景:

        // 生成统一的DB事务
	tx, err := database.GenerateDefaultDBTx()
	defer database.RollBackWithLog(tx)
        // err如果不为nil,tx会为nil
	if err != nil {
		err = errorWrapf(err, "define tx fail")
		return
	}
// RollBackWithLog will rollback and log if error
func RollBackWithLog(tx *sqlx.Tx) {
        // 这里加个tx nil判断 return最好
	err := tx.Rollback()
	if err != sql.ErrTxDone && err != nil {
		logging.GetSQLLogger().Error(err)
	}
}

接入权限中心时,支持选择无权限提示方式,无操作权限的页面和操作直接隐藏

需求背景
部分客户和系统希望对权限的控制均由管理员下放,不希望用户自主申请;把每个saas没有权限,跳转申请的的功能屏蔽掉。有些用户本来就不可以去申请这个资源的权限的,但是留了入口他也能申请,会有一堆这种权限申请的单子

需求
1、当前交互为无权限的操作置灰,且点击后支持前往申请。期望支持无权限的直接隐藏
2、若需求1暂不能支持。希望能够提供查询指定用户权限策略的接口

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.