蓝鲸用户管理是蓝鲸智云提供的企业组织架构和用户管理解决方案,为企业统一登录提供认证源服务。

Overview

蓝鲸用户管理


license Release Version PRs Welcome

简体中文 | English

蓝鲸用户管理是蓝鲸智云提供的企业组织架构和用户管理解决方案,为企业统一登录提供认证源服务。

总览

功能

  • 支持多层级的组织架构管理
  • 支持通过多种方式同步数据:OpenLDAP、Microsoft Active Directory(MAD)、Excel 表格等
  • 支持用户密码周期管理、密码强度校验、用户登录试错限制、邮件发送随机密码等安全措施

详细介绍请参考功能说明

快速开始

路线图

支持

蓝鲸社区

  • BK-CI:蓝鲸持续集成平台是一个开源的持续集成和持续交付系统,可以轻松将你的研发流程呈现到你面前。
  • BK-BCS:蓝鲸容器管理平台是以容器技术为基础,为微服务业务提供编排管理的基础服务平台。
  • BK-CMDB:蓝鲸配置平台(蓝鲸CMDB)是一个面向资产及应用的企业级配置管理平台。
  • BK-PaaS:蓝鲸PaaS平台是一个开放式的开发平台,让开发者可以方便快捷地创建、开发、部署和管理SaaS应用。
  • BK-SOPS:标准运维(SOPS)是通过可视化的图形界面进行任务流程编排和执行的系统,是蓝鲸体系中一款轻量级的调度编排类SaaS产品。

贡献

对于项目感兴趣,想一起贡献并完善项目请参阅 Contributing Guide

腾讯开源激励计划 鼓励开发者的参与和贡献,期待你的加入。

协议

基于 MIT 协议, 详细请参考LICENSE

Comments
  • 社区版蓝鲸6.0.5无法部署usermgr2.3.1

    社区版蓝鲸6.0.5无法部署usermgr2.3.1

    问题描述 社区版蓝鲸6.0.5默认使用2.2.6-b3版本的usermgr,但是无法同步MAD,为了能同步MAD,将usermgr升级到2.3.1,但发现部署2.3.1时: $ ./bk_install saas-o bk_user_manage 执行成功 image

    $ ./bkcli install usermgr 执行失败

    E33791329C3B432600EBCF6CBF3C6939

    看了报错信息显示缺少env文件,尝试做了以下操作: $ source /data/install/utils.fc $ source /data/install/load_env.sh $ ./bkcli stop usermgr $ ssh $BK_USERMGR_IP 'rmvirtualenv usermgr-api' $ ./bkcli install usermgr 依然报错。。。导致我无法进入 【用户管理】平台

    版本

    • 2.3.1
    • 蓝鲸社区版6.0.5
    • OS: [Centos Linux release 7.6.1810 (Core)]
    Layer: api Type: deploy 
    opened by lianghuiyuan 12
  • 发布支持【二进制/Smart】格式包

    发布支持【二进制/Smart】格式包

    用文字描述你遇到的问题

    请用简练的文字描述你遇到的问题,问题描述的清晰程度决定了问题被解决的效率。

    重现方法

    请描述问题重现的方法,如果不方便描述,可以通过截图或者视频辅助。

    预期行为

    预期的正常行为

    版本

    • 提供用户管理的具体版本号
    • 是否是企业版问题?

    如果是 SaaS 页面问题,请提供使用的操作系统和浏览器信息

    • OS: [e.g. iOS]
    • Browser [e.g. chrome, safari]
    • Version [e.g. 22]

    额外信息

    任何你觉得有助于问题解决的内容

    Sign: feature requested 
    opened by Laotanling 10
  • 同步LDAP用户报错

    同步LDAP用户报错

    第一个问题:同步LDAP用户时报错,报错日志如下: ldap3.core.exceptions.LDAPAttributeError: invalid attribute type memberOf

    ldap3.core.exceptions.LDAPAttributeError: invalid attribute type memberOf File "/data/bkce/usermgr/api/bkuser/categories/vendors/ldap/adapter.py", line 291, in _fetch_data bkuser.categories.exceptions.FetchDataFromRemoteFailed: 无法获取用户数据, 请检查配置

    Type: bug Layer: api Module: LDAP/MAD 
    opened by hlilhuang 9
  • 修改用户密码有效期不同步更新密码修改时间字段

    修改用户密码有效期不同步更新密码修改时间字段

    功能需求背景,例如你遇到了什么问题

    新建用户密码修改时间字段为空,如果在一个月之后修改用户的密码有效期为一个月。按照代码的逻辑(如果密码修改时间字段为空则用新建用户时间) 用户是直接过期的。

    描述你觉得更好的解决方案

    在修改用户密码有效期时,同步更新密码修改时间字段

    额外信息

    任何你觉得有助于理解的信息

    Sign: feature requested Layer: api 
    opened by qq1114631740 9
  • LDAP用户同步失败

    LDAP用户同步失败

    用文字描述你遇到的问题 新建LDAP用户目录测试连接正常,同步用户失败

    重现方法 错误日志如下: image ldap配置如下: image image

    版本

    • 用户管理后台版本 2.2.6-b3
    • 用户管理saas版本 2.2.6

    原贴地址:https://bk.tencent.com/s-mart/community/question/3903?type=answer

    Type: question Layer: api Module: LDAP/MAD 
    opened by ganzaofang 9
  • [API] department接口查询性能

    [API] department接口查询性能

    用户管理department_departments表count查询需要10分钟

    SELECT `departments_department`.`name`
    FROM   `departments_department`
    WHERE  ( `departments_department`.`lft` <= 17510
             AND `departments_department`.`rght` >= 17511
             AND `departments_department`.`tree_id` = 2 )
    ORDER  BY `departments_department`.`lft` ASC 
    

    确认:

    1. 是哪个api导致的
    2. 如何优化这里的性能(是独立的三个索引, 但是lft/rght分别有大于小于比较)
    Type: enhancement Priority: Middlum Layer: api todo 
    opened by wklken 8
  • [重写] 去 SaaS 层方案

    [重写] 去 SaaS 层方案

    过渡期: 保留bk-user saas, 但是所有接口call_through到后台

    1. 去掉SDK所有代码
    2. 去掉大部分header头
    3. 报错日志/可观测性需要有所增强
    4. 新写 API, 不依赖原先任何逻辑(proxy model+custom manager+独立viewset等)

    https://github.com/TencentBlueKing/bk-user/issues/613

    PR: #644

    Layer: api Layer: saas Priority: High backlog 
    opened by wklken 8
  • 复杂度分析

    复杂度分析

    Part0: 日志/报错/可观测性

    这块的缺失, 给问题排查带来了比较大的阻碍; 已经优化了几轮, 补齐了大部分日志打印/上下文, 增加调用来源app_code/request_id等等, 并且把后台报错也向上传递到了SaaS, 近期在接入otel

    仍然存在的问题:

    1. 日志全部输出到标准输出, 混在一起, 导致非常难以捞日志
    2. 同步相关的过程日志过多

    Part1: 整体调用链路及架构

    前端vue -> SaaS -> SDK -> API

    存在一个由 API 反向生成的 SDK 嵌入到了 SaaS;

    并且, SaaS 调用 API 除了 SDK, 还存在call_through透传的方式;

    另外, 通过 SDK 调用 API 拼装了一批 headers, 用于控制返回值等 bkuser_shell/apis/viewset.py

    本身功能并不多, 是否可以考虑:

    1. 简化甚至去掉SDK, 使用独立文件封装
    2. 简化SaaS到API之间的协议, 去掉大部分header封装 (可能需要引入/api/v3)
    3. 优化报错提示, 后台报错到SaaS再到前端, 直接在页面可见

    Part2: API auth的复杂度 (运维切换耗时最多)

    最早没有api auth, 后来也没有统一接入esb走jwt, 而是实现了自定义token进行的api auth

    后来优化实现 bkuser_core/enhanced_account/authentication.py

    三种认证, 四种场景:

    1. app_code / app_secret (用于容器化前后台调用的接口认证, 此时saas 和api的app_code/app_secret一致)
    2. TOKEN 认证 (原先的token认证, 目前在逐步去除, 外部版已去除, 内部上云版规划去除中)
    3. jwt (内外部版均已支持, 从esb过来的流量)
    4. 无认证 (原先二进制版, 未暴露服务, 无认证)

    目前, 需要逐步推动去掉 2/4; 只保留 1/3; 主推 3;(只有本项目自己模块内调用用 1)

    Part3: API 层的复杂度 (bug重灾区)

    当前由于历史原因, 存在

    • /api/v1(login在用)
    • /api/v2(当前主要暴露的接口)
    • /api/v3(已有实现, saas有两个接口调用)

    存在问题:

    • /api/v2由于接口非常灵活, 同一个viewset有多重继承, 并且由参数控制了input slz/output slz以及一些过滤的逻辑, 导致整体耦合在一起;
      • 不好排查问题
      • 目前已经有性能问题, 但是难以优化, 因为一些参数已经放出, 使用方误用/滥用无法控制
    • /api/v3当前的实现方案还是过于灵活, 需要考虑去掉重做方案

    目标: 对外提供简单 API, 所有参数可控; 降低参数与逻辑的耦合; 强单一职责, 一个viewset只做一件事情;

    • 给 SaaS 的API, 尽量灵活(可控的, 减少开发量)
    • 给外部的 API, 尽量简单(不可控, 降低风险)

    Part4: 目录同步的复杂度 (排查问题耗时最多)

    当前的plugin及同步:

    • local
    • ldap
    • mad
    • http
    • tof

    重点是local+ldap/mad;

    当前存在的问题:

    1. 过于抽象, 层层嵌套;
    2. 使用了十分动态的语法糖实现, 导致很难跟踪代码调用链路, 很难拿到明确的报错及堆栈;

    需要考虑的处理:

    1. 简化模型, 减少抽象(足够当前 5 种plugin即可), 统一的数据模型+适当的adapter;
    2. 去动态化, 去掉dataclass(post_init)和get_attr等语法糖, 明确的注入及调用链, 明确的报错堆栈
    3. 减少约定;

    可以考虑设计一个新的数据模型+plugin模型, 逐步迁移;

    Part6: 权限模块

    权限模型比较特殊, 资源是基于目录的递归(都是同一种类型, 但是带层次)

    所以实现时, 做了大量定制;

    目前这块逻辑需要考虑如何优化, 必要时考虑重新设计权限模型(尽量简化)

    iam_filter_actions = ("list", "list_tops")
    
    =>  self.filter_queryset
    =>  
    

    https://github.com/wklken/bk-user/blob/891cb75458ccf514e0e87415784beee51617f4a7/src/api/bkuser_core/apis/v2/viewset.py#L231

    问题: 权限落在api上, api需要处理来自saas的请求(有iam), 也要处理来自esb的请求, 此时 SaaS 的场景会更多, 导致 api 很多地方没法配合理的权限(多个场景调用统一个 API) => 应该把权限控制移动到saas层

    Part6: 分层及缓存

    • 分层: 目前缺少一层中间抽象层, 例如service; (由于是django models, 这层本身就比较模糊), 但是需要考虑切一层出来
    • 缓存: 目前用的 cache_page(有bug), django localmem(jwt获取公钥缓存)

    考虑的处理方式:

    • api层到viewset
    • service层 (缓存控制/权限控制)
    • model层
    Type: proposal 
    opened by wklken 8
  • 对蓝鲸平台进行安全扫描时发现,用户管理存在DDE注入漏洞

    对蓝鲸平台进行安全扫描时发现,用户管理存在DDE注入漏洞

    客户在对蓝鲸平台进行安全扫描时发现,用户管理存在DDE注入漏洞

    漏洞路径 | /console/o/bk_user_manage/api/v2/categories/1/export_template -- | -- 漏洞威胁 | 高危 漏洞类型 | 命令注入 业务功能描述 | 该功能点是web官方站点的用户管理下载模版处。

    Type: enhancement Type: question Layer: saas Sign: security 
    opened by abbyWJM 7
  • 用户展示字段优化

    用户展示字段优化

    背景:基于审计需要,增加用户相关字段展示; 实现:用户相关字段展示 增加 <过期时间>一栏,支持编辑;已存在的用户字段 <账号状态> 增加<已过期>类型; 关联issue:https://github.com/TencentBlueKing/bk-user/issues/221

    opened by Canway-shiisa 7
  • 蓝鲸6.0.4新增用户,提示邮件发送成功,实则失败

    蓝鲸6.0.4新增用户,提示邮件发送成功,实则失败

    用文字描述你遇到的问题

    请用简练的文字描述你遇到的问题,问题描述的清晰程度决定了问题被解决的效率。

    重现方法

    请描述问题重现的方法,如果不方便描述,可以通过截图或者视频辅助。

    预期行为

    预期的正常行为

    版本

    • 提供用户管理的具体版本号
    • 是否是企业版问题?

    如果是 SaaS 页面问题,请提供使用的操作系统和浏览器信息

    • OS: [e.g. iOS]
    • Browser [e.g. chrome, safari]
    • Version [e.g. 22]

    额外信息

    任何你觉得有助于问题解决的内容

    蓝鲸版本:6.0.4

    问题场景:配置邮件服务器,用于邮件接收通知

    问题现象:

    • 配置邮件服务器成功,curl命令测试发送邮件成功
    • 用户管理-新增用户后,提示用户创建成功并已发送邮件,实则未收到邮件 查看相关日志提示: component.log ERROR [2021-12-31 15:48:40] component(ln:96): Component return error message: Signature [bk_signature] and APP Secret [bk_app_secret] cannot be empty at the same time, request_id=f22b19b317b247b0a0c92c3fd1ccd4a8, url=http://我们的域名:80/api/c/compapi/v2/cmsi/send_mail/, params=None, data={'title': '蓝鲸智云社区版 - 您的帐户已经成功创建
    Type: question 
    opened by jackchenkai 7
  • 【登录优化】用户希望登录时输入账号提示的登陆页交互能够更友好

    【登录优化】用户希望登录时输入账号提示的登陆页交互能够更友好

    功能需求背景,例如你遇到了什么问题

    用户登录账号时,会弹出该账号匹配的域名信息供用户选择,但是弹出至隐藏状态时的判断条件不够友好,需要特定机制触发(点击周边空白处)才能隐藏,会导致一些情况下用户体验不好

    描述你觉得更好的解决方案

    (1)希望输入的内容与已有的账号以及域名完全命中时,提示的内容能够完全消失,而不需要客户再手动选择 image

    (2)当前焦点离开对话框以及下拉列表时,希望能够隐藏掉下拉列表 (3)域名问题的设计可以参考weops或下图,让账号信息与域名隔离开,就可以一并解决以上问题。同时支持设置默认域名,可以一并解决之前部分客户提出的【希望登录时不输入域名的需求】 image

    额外信息

    任何你觉得有助于理解的信息

    opened by pagezz-canway 0
  • 2.5.2 登录页面忘记密码没有反应

    2.5.2 登录页面忘记密码没有反应

    步骤一:paa6环境,进入登录页面,点击忘记密码,显示没有反应。

    步骤二:进入登录页面,点击忘记密码,没有反应,输入账户和密码进行登录,跳转密码重置页面。请问这样的操作符合预期吗??而在输入的账户和密码是正确的才能跳转密码重置页面

    image


    原因: 二进制版的登录是 bk-PaaS下的登录, 不是bk-user下的, 所以如果有相关的修改, 二进制版的也得同步处理

    Type: bug Layer: login Priority: High 
    opened by wklken 1
  • 协作开发 CodeReview CheckList

    协作开发 CodeReview CheckList

    目标: 减少 CR 时间, 提升协作效率, 尽量在前期规避掉命名/风格/规范/冲突/扫描等初级问题

    开发前

    • 需要从 PR 目标分支切出来改
    • 一个需求一个 PR, 禁止多个需求放在一个 PR 中一起提交

    必须符合一些基础的规范

    • 除了logger, 其他字符串拼装尽量用 f-string
    • 所有函数/参数, 尽量要使用 typehint
    • 常量/方法名/ErrorCode 名称最好多人review确认(这块每次都会有)
    • 一致性: 一个概念只有一个确定的命名, 不要有多个; 不同概念的命名必须不同
    • 单一职责原则, 一个函数只做一件事情
    • 函数的返回值必须一致, 要么都是bool要么都raise; 所有return的参数必须一致
    • URL 需要检查是否符合restful风格
    • DRF的输入/输出都必须有 SLZ, 禁止直接构造dict放入response
    • log打印要包含尽量都得上下文, 看到这个日志能定位问题(反例: 只打个error, 或者data, 没有上下文/不知道是谁)
    • except代码块中打日志用 logger.exception
    • 不能吞掉异常 except: pass
    • 禁止: 在代码中使用print打印日志
    • 禁止: 日志打印中禁止打印敏感信息, 例如密码/解密的明文等信息

    提交前

    • 需要经过严格自测, 再小的变更也得验证(防止类似语法错误等低级问题进入下一阶段)
    • 提交 PR的开发者需要签名 CLA
    • 新增文件头需要带license, 并且是本项目的license头
    • 必须配置pre-commit, 必须本地检查都通过才能提交(flake8/isort/black/mypy)

    提交 MR 后

    • 提交后: 有冲突需要修复
    • 提交后: github action需要检查通过, 风格检查+单测
    • 提交后: 腾讯内部的codecc扫描失败需要确认, 大概率是复杂度超过最大限制, 需要重构拆解函数

    第一轮, 导师Review

    按照需求/上面的checklist进行review, 可能review多次, 直到符合导师的 Review 要求 全部修复确认无误后, 进入下一轮

    第二轮, 项目/模块负责人Review


    其他:

    • 每次 Review 后的修复需要关闭对应的conversation, 如果有不处理的需要说明原因
    • 需要有单测(当前未要求, 未来会要求)

    相关链接:

    • 蓝鲸最佳实践
    • 书籍: <<编写可读代码的艺术>>
    • 书籍: <<编写高质量代码—改善Python程序的91个建议>>
    Type: proposal 
    opened by wklken 0
Releases(v2.5.2-alpha.3)
  • v2.5.2-alpha.3(Dec 21, 2022)

    Add

    • 合并二进制出包build文件到github仓库(support-files等从原内部adapters仓库迁出) => #806
    • enable faulthandler in wsgi.py => #805
    • 【安全】密码试错次数超过设置,自动锁定账户对admin生效 #810 => #827
    • 【安全】用户修改密码以及重置密码时密码需加密传输#808 => #818
    • 【安全】admin账户重置密码需要先输入原密码进行校验#811 => #840
    • 需支持忘记密码可选择短信、微信方式 #631 => #837

    Bugfix

    • 修复xss问题 => #800
    • 修复expired_after_days配置导致的异常 #757 => #809
    • 修复审计-登陆日志导出ugettext_lazy 导出失败 => #814
    • 修复职位展示问题 #820 => #822
    • 通过excel导入用户组织支持全量更新 #728 => #813
    Source code(tar.gz)
    Source code(zip)
  • v2.5.2-pre-alpha.1(Nov 21, 2022)

  • v2.5.1(Nov 15, 2022)

  • v2.5.0(Nov 14, 2022)

    REFACTOR

    • 全新架构,去除 SDK 层, 所有接口代理到后台服务
    • 解耦 SaaS API 与 Open API(esb api)
    • 重构产品所有功能相关代码
    • 重构 SaaS API 相关权限控制逻辑
    • 去除冗余代码

    OPTIMIZATION

    • 性能优化: 优化数据库索引/增加缓存/减少接口 SQL 查询量
    Source code(tar.gz)
    Source code(zip)
  • v2.5.0-beta.3(Nov 2, 2022)

    THIS IS A PRE_RELEASE, FOR TEST ONLY!

    REFACTOR

    • 全新架构,去除 SDK 层, 所有接口代理到后台服务
    • 解耦 SaaS API 与 Open API(esb api)
    • 重构产品所有功能相关代码
    • 重构 SaaS API 相关权限控制逻辑
    • 去除冗余代码

    OPTIMIZATION

    • 性能优化: 优化数据库索引/增加缓存/减少接口 SQL 查询量
    Source code(tar.gz)
    Source code(zip)
  • v2.5.0-beta.2(Oct 27, 2022)

    THIS IS A PRE_RELEASE, FOR TEST ONLY!

    REFACTOR

    • 全新架构,去除 SDK 层, 所有接口代理到后台服务
    • 解耦 SaaS API 与 Open API(esb api)
    • 重构产品所有功能相关代码
    • 重构 SaaS API 相关权限控制逻辑
    • 去除冗余代码

    OPTIMIZATION

    • 性能优化: 优化数据库索引/增加缓存/减少接口 SQL 查询量
    Source code(tar.gz)
    Source code(zip)
  • v2.5.0-beta.1(Oct 24, 2022)

    THIS IS A PRE_RELEASE, FOR TEST ONLY!

    REFACTOR

    • 全新架构,去除 SDK 层, 所有接口代理到后台服务
    • 解耦 SaaS API 与 Open API(esb api)
    • 重构产品所有功能相关代码
    • 重构 SaaS API 相关权限控制逻辑
    • 去除冗余代码

    OPTIMIZATION

    • 性能优化: 优化数据库索引/增加缓存/减少接口 SQL 查询量
    Source code(tar.gz)
    Source code(zip)
  • v2.5.0-alpha.3(Oct 18, 2022)

    THIS IS A PRE_RELEASE, FOR TEST ONLY!

    REFACTOR

    • 全新架构,去除 SDK 层, 所有接口代理到后台服务
    • 解耦 SaaS API 与 Open API(esb api)
    • 重构产品所有功能相关代码
    • 重构 SaaS API 相关权限控制逻辑
    • 去除冗余代码

    OPTIMIZATION

    • 性能优化: 优化数据库索引/增加缓存/减少接口 SQL 查询量
    Source code(tar.gz)
    Source code(zip)
  • v2.5.0-alpha.2(Oct 17, 2022)

    THIS IS A PRE_RELEASE, FOR TEST ONLY!

    REFACTOR

    • 全新架构,去除 SDK 层, 所有接口代理到后台服务
    • 解耦 SaaS API 与 Open API(esb api)
    • 重构产品所有功能相关代码
    • 重构 SaaS API 相关权限控制逻辑
    • 去除冗余代码

    OPTIMIZATION

    • 性能优化: 优化数据库索引/增加缓存/减少接口 SQL 查询量
    Source code(tar.gz)
    Source code(zip)
  • v2.4.3(Oct 9, 2022)

  • v2.5.0-alpha.1(Oct 8, 2022)

    THIS IS A PRE_RELEASE, FOR TEST ONLY!

    REFACTOR

    • 全新架构,去除 SDK 层, 所有接口代理到后台服务
    • 解耦 SaaS API 与 Open API(esb api)
    • 重构产品所有功能相关代码
    • 重构 SaaS API 相关权限控制逻辑
    • 去除冗余代码

    OPTIMIZATION

    • 性能优化: 优化数据库索引/增加缓存/减少接口 SQL 查询量
    Source code(tar.gz)
    Source code(zip)
  • v2.4.2(Sep 26, 2022)

  • v2.4.1(Sep 22, 2022)

  • v2.4.0(Sep 19, 2022)

    refactor:

    • 登录代码重构

    feature:

    • 登录时,支持密码明文进行加密处理

    bugfix:

    • DDE注入漏洞解决,设置导入导出模板单元格为文本模式
    • 前端: 复制组织 ID
    • 前端: 邮箱校验规则优化(放开部分限制)
    Source code(tar.gz)
    Source code(zip)
  • v2.4.0-beta.1(Sep 8, 2022)

    refactor:

    • 登录代码重构

    feature:

    • 登录时,支持密码明文进行加密处理

    bugfix:

    • DDE注入漏洞解决,设置导入导出模板单元格为文本模式
    • 前端: 复制组织 ID
    • 前端: 邮箱校验规则优化(放开部分限制)
    Source code(tar.gz)
    Source code(zip)
  • v2.4.0-alpha.2(Sep 7, 2022)

    分支: ft_refactor_login

    • 登录重构: 合并企业版社区版/删除无用代码/删除前端资源
    • 删除 Github 项目中维护的 helm charts

    注意: 这个版本只对登录进行了变更, 没有改动用户管理的逻辑; 只对容器化 7.0 统一登录生效, 与二进制版本无关

    Source code(tar.gz)
    Source code(zip)
  • v2.3.7(Sep 7, 2022)

  • v2.4.0-alpha.1(Sep 5, 2022)

    分支: ft_refactor_login

    • 登录重构: 合并企业版社区版/删除无用代码/删除前端资源
    • 删除 Github 项目中维护的 helm charts

    注意: 这个版本只对登录进行了变更, 没有改动用户管理的逻辑; 只对容器化 7.0 统一登录生效, 与二进制版本无关

    Source code(tar.gz)
    Source code(zip)
  • v2.3.6(Sep 3, 2022)

  • v2.3.6-beta.5(Sep 2, 2022)

  • v2.3.6-beta.4(Sep 1, 2022)

  • v2.3.6-beta.3(Aug 29, 2022)

  • v2.3.6-beta.2(Aug 25, 2022)

  • v2.3.6-beta.1(Aug 25, 2022)

  • v2.3.6-alpha.2(Aug 19, 2022)

    新增:

    • 本地目录支持账号有效期设置 #397
      • 账号超过有效期后将无法登陆
      • 账号即将到期会有提醒
      • 用户详情页会展示账号有效期

    Bugfix:

    • IAM 相关配置
    Source code(tar.gz)
    Source code(zip)
  • v2.3.6-alpha.1(Aug 16, 2022)

  • v2.3.4-alpha.32(Aug 12, 2022)

    PRE-RELEASE:

    新增:

    • 本地目录支持账号有效期设置 #397
      • 账号超过有效期后将无法登陆
      • 账号即将到期会有提醒
      • 用户详情页会展示账号有效期
    Source code(tar.gz)
    Source code(zip)
  • v2.3.5(Aug 4, 2022)

  • v2.3.4-alpha.31(Aug 1, 2022)

    PRE-RELEASE:

    新增:

    • 本地目录支持账号有效期设置 #397
      • 账号超过有效期后将无法登陆
      • 账号即将到期会有提醒
      • 用户详情页会展示账号有效期
    Source code(tar.gz)
    Source code(zip)
  • v2.3.4(Jul 28, 2022)

    v2.3.4

    这个版本修复了一批历史遗留问题, 增加了代码的健壮性; 同时在日志这块做了大量的优化, 同时增加sentry/otel/metrics/healthz等增强整体的可观测性, 优化了前端到 SaaS 到后台的日志报错(request_id/错误堆栈等), 问题排查更快; 优化了ldap相关的报错堆栈/日志/提示等, 并支持 debug 模式;

    (based on v2.3.4-beta.28)

    Bug Fixes

    API

    • Serializer fields wrong when no_page=True (#497)
    • 删除邮件模板中企业版/社区版字样 (#481)
    • LDAP 测试连接使用db中的数据而不是当前表单中的数据 (#448)
    • Change CELERY_RESULT_BACKEND to django-db, instead of MQ or Redis (#419)
    • Add unique_together for user_settings_setting(category_id+meta_id) (#425)
    • Migration setttings_meta create same key with the init_settings (#412)
    • Remove esb healthz check from api (#382)
    • 修复 no_page 时返回异常
    • Fix /ping always redirect to /ping/ in kube-probe

    sync

    • Fix custom sync via http will raise IndexError if results is empty (#410)
    • Custom sync from crontab use the same task_id (#411)
    • Fix http api as datasource wrong response check (#400)
    • Fix http api datasource syncer (#368)

    SaaS

    • Redirect with size=big (#494)
    • 国际化 (#417)
    • 新增字段下拉显示问题 (#414)
    • 密码提交参数修改 (#370)
    • 修复二进制部署时 call_through_api 无法找到正确 Path 问题

    Login

    • Fix auth_login raise exception in some conditions
    • Update login v7 logo (#469)
    • Logo en image (#395)
    • 修改登录页footer

    Features

    新功能

    • 密码过期邮件提醒功能 #117
    • 支持密码连续字符等功能检测 #238
    • 支持密码修改审计 #289

    API

    • 支持注册网关 API 到APIGateway
    • API 支持多重认证: token(原先方式, 将会彻底下掉)/app_code+app_secret/jwt
    • usermgr SaaS 使用 AppCode/AppSecret调用 usermgr API
    • Login使用 ESB 调用 usermgr API
    • 增加了通过 yaml 配置插件 SettingMeta 的能力
    • Add ENABLE_API_AUTH for api authentication in different versions

    Refactor

    ldap

    • Ldap test_connection fail with more error detail (#445)
    • Enable to debug ldap3 by environment vars (#453)

    sync

    • Custom profile sync add original code into extras (#420)

    Logging

    • 增强日志打印, 附加有用的上下文及堆栈
    • 降低一些无用日志的等级
    • Enhance the logging while api 500(both saas and api has the detail!)
    • Add bk_app_code from esb/apigateway in error log/audit log
    • Add request_id for saas call api (#444)
    • Add more log detail in login process (#452)
    • Plugin init_settings add more detail in log info (#422)
    • Token auth fail with different exception message (#408)
    • Logger remove sensitive info from data (#415)
    • BlueException missing message detail while logging or print
    • Remove redundant logging while handle the exceptions

    codes

    • Remove useless codes of esb (#409)
    • Remove oauth2 codes from login
    • Remove uselss static files like: bkDialog-1.0 and layout_head.css from login
    • Remove unused codes

    others

    • Add otel support (#476)
    • Add sentry support
    • Add /healthz/ for saas

    Styling

    • Use python3 super instead
    • Fix lints of isort (#396)
    • Use black to format all codes

    Dependency

    • Update redis/mariadb chart version (#486)
    • Saas gevent to 21.1.2 (#457)
    • ldap3 version too low, update to newest(2.6.1 to 2.9.1) (#438)
    • upgrade django from 3.2.5 to 3.2.13 (#443)
    Source code(tar.gz)
    Source code(zip)
Owner
腾讯蓝鲸
腾讯蓝鲸
Get inside your stronghold and make all your Django views default login_required

Stronghold Get inside your stronghold and make all your Django views default login_required Stronghold is a very small and easy to use django app that

Mike Grouchy 384 Nov 23, 2022
Provide OAuth2 access to your app

django-oml Welcome to the documentation for django-oml! OML means Object Moderation Layer, the idea is to have a mixin model that allows you to modera

Caffeinehit 334 Jul 27, 2022
蓝鲸用户管理是蓝鲸智云提供的企业组织架构和用户管理解决方案,为企业统一登录提供认证源服务。

蓝鲸用户管理 简体中文 | English 蓝鲸用户管理是蓝鲸智云提供的企业组织架构和用户管理解决方案,为企业统一登录提供认证源服务。 总览 架构设计 代码目录 功能 支持多层级的组织架构管理 支持通过多种方式同步数据:OpenLDAP、Microsoft Active Directory(MAD)

腾讯蓝鲸 35 Dec 14, 2022
row level security for FastAPI framework

Row Level Permissions for FastAPI While trying out the excellent FastApi framework there was one peace missing for me: an easy, declarative way to def

Holger Frey 315 Dec 25, 2022
A Python inplementation for OAuth2

OAuth2-Python Discord Inplementation for OAuth2 login systems. This is a simple Python 'app' made to inplement in your programs that require (shitty)

Prifixy 0 Jan 06, 2022
A full Rest-API With Oauth2 and JWT for request & response a JSON file Using FastAPI and SQLAlchemy 🔑

Pexon-Rest-API A full Rest-API for request & response a JSON file, Building a Simple WorkFlow that help you to Request a JSON File Format and Handling

Yasser Tahiri 15 Jul 22, 2022
Ready to use and customizable Authentications and Authorisation management for FastAPI ⚡

AuthenticationX 💫 Ready-to-use and customizable Authentications and Oauth2 management for FastAPI ⚡

Yasser Tahiri 408 Jan 05, 2023
it's a Django application to register and authenticate users using phone number.

django-phone-auth It's a Django application to register and authenticate users using phone number. CustomUser model created using AbstractUser class.

MsudD 4 Nov 29, 2022
Implements authentication and authorization as FastAPI dependencies

FastAPI Security Implements authentication and authorization as dependencies in FastAPI. Features Authentication via JWT-based OAuth 2 access tokens a

Jacob Magnusson 111 Jan 07, 2023
Django Rest Framework App wih JWT Authentication and other DRF stuff

Django Queries App with JWT authentication, Class Based Views, Serializers, Swagger UI, CI/CD and other cool DRF stuff API Documentaion /swagger - Swa

Rafael Salimov 4 Jan 29, 2022
Simple two factor authemtication system, made by me.

Simple two factor authemtication system, made by me. Honestly, i don't even know How 2FAs work I just used my knowledge and did whatever i could. Send

Refined 5 Jan 04, 2022
Luca Security Concept

Luca Security Concept This is the document source of luca's security concept. Please go here for the HTML version: https://luca-app.de/securityconcept

luca 43 Oct 22, 2022
This project is an open-source project which I made due to sharing my experience around the Python programming language.

django-tutorial This project is an open-source project which I made due to sharing my experience around the Django framework. What is Django? Django i

MohammadMasoumi 6 May 12, 2022
An introduction of Markov decision process (MDP) and two algorithms that solve MDPs (value iteration, policy iteration) along with their Python implementations.

Markov Decision Process A Markov decision process (MDP), by definition, is a sequential decision problem for a fully observable, stochastic environmen

Yu Shen 31 Dec 30, 2022
This Python based program checks your CC Stripe Auth 1$ Based Checker

CC-Checker This Python based program checks your CC Stripe Auth 1$ Based Checker About Author Coded by xBlackx Reach Me On Telegram @xBlackx_Coder jOI

xBlackxCoder 11 Nov 20, 2022
This script helps you log in to your LMS account and enter the currently running session

This script helps you log in to your LMS account and enter the currently running session, all in a second

Ali Ebrahimi 5 Sep 01, 2022
Automatizando a criação de DAGs usando Jinja e YAML

Automatizando a criação de DAGs no Airflow usando Jinja e YAML Arquitetura do Repo: Pastas por contexto de negócio (ex: Marketing, Analytics, HR, etc)

Arthur Henrique Dell' Antonia 5 Oct 19, 2021
This app makes it extremely easy to build Django powered SPA's (Single Page App) or Mobile apps exposing all registration and authentication related functionality as CBV's (Class Base View) and REST (JSON)

Welcome to django-rest-auth Repository is unmaintained at the moment (on pause). More info can be found on this issue page: https://github.com/Tivix/d

Tivix 2.4k Jan 03, 2023
Django Admin Two-Factor Authentication, allows you to login django admin with google authenticator.

Django Admin Two-Factor Authentication Django Admin Two-Factor Authentication, allows you to login django admin with google authenticator. Why Django

Iman Karimi 9 Dec 07, 2022
Python One-Time Password Library

PyOTP - The Python One-Time Password Library PyOTP is a Python library for generating and verifying one-time passwords. It can be used to implement tw

PyAuth 2.2k Dec 26, 2022