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

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
腾讯蓝鲸
腾讯蓝鲸
A generic, spec-compliant, thorough implementation of the OAuth request-signing logic

OAuthLib - Python Framework for OAuth1 & OAuth2 *A generic, spec-compliant, thorough implementation of the OAuth request-signing logic for Python 3.5+

OAuthlib 2.5k Jan 02, 2023
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
Awesome Django authorization, without the database

rules rules is a tiny but powerful app providing object-level permissions to Django, without requiring a database. At its core, it is a generic framew

1.6k Dec 30, 2022
An extension of django rest framework, providing a configurable password reset strategy

Django Rest Password Reset This python package provides a simple password reset strategy for django rest framework, where users can request password r

Anexia 363 Dec 24, 2022
REST implementation of Django authentication system.

djoser REST implementation of Django authentication system. djoser library provides a set of Django Rest Framework views to handle basic actions such

Sunscrapers 2.2k Jan 01, 2023
Django x Elasticsearch Templates

Django x Elasticsearch Requirements Python 3.7 Django = 3 Elasticsearch 7.15 Setup Elasticsearch Install via brew Install brew tap elastic/tap brew

Aji Pratama 0 May 22, 2022
Abusing Microsoft 365 OAuth Authorization Flow for Phishing Attack

Microsoft365_devicePhish Abusing Microsoft 365 OAuth Authorization Flow for Phishing Attack This is a simple proof-of-concept script that allows an at

Optiv Security 76 Jan 02, 2023
Pingo provides a uniform API to program devices like the Raspberry Pi, BeagleBone Black, pcDuino etc.

Pingo provides a uniform API to program devices like the Raspberry Pi, BeagleBone Black, pcDuino etc. just like the Python DBAPI provides an uniform API for database programming in Python.

Garoa Hacker Clube 12 May 22, 2022
OAuthlib support for Python-Requests!

Requests-OAuthlib This project provides first-class OAuth library support for Requests. The OAuth 1 workflow OAuth 1 can seem overly complicated and i

1.6k Dec 28, 2022
examify-io is an online examination system that offers automatic grading , exam statistics , proctoring and programming tests , multiple user roles

examify-io is an online examination system that offers automatic grading , exam statistics , proctoring and programming tests , multiple user roles ( Examiner , Supervisor , Student )

Ameer Nasser 4 Oct 28, 2021
Basic auth for Django.

Basic auth for Django.

bichanna 2 Mar 25, 2022
A simple Boilerplate to Setup Authentication using Django-allauth 🚀

A simple Boilerplate to Setup Authentication using Django-allauth, with a custom template for login and registration using django-crispy-forms.

Yasser Tahiri 13 May 13, 2022
JWT authentication for Pyramid

JWT authentication for Pyramid This package implements an authentication policy for Pyramid that using JSON Web Tokens. This standard (RFC 7519) is of

Wichert Akkerman 73 Dec 03, 2021
Implementation of Supervised Contrastive Learning with AMP, EMA, SWA, and many other tricks

SupCon-Framework The repo is an implementation of Supervised Contrastive Learning. It's based on another implementation, but with several differencies

Ivan Panshin 132 Dec 14, 2022
User Authentication in Flask using Flask-Login

User-Authentication-in-Flask Set up & Installation. 1 .Clone/Fork the git repo and create an environment Windows git clone https://github.com/Dev-Elie

ONDIEK ELIJAH OCHIENG 31 Dec 11, 2022
API with high performance to create a simple blog and Auth using OAuth2 ⛏

DogeAPI API with high performance built with FastAPI & SQLAlchemy, help to improve connection with your Backend Side to create a simple blog and Cruds

Yasser Tahiri 111 Jan 05, 2023
python implementation of JSON Web Signatures

python-jws 🚨 This is Unmaintained 🚨 This library is unmaintained and you should probably use For histo

Brian J Brennan 57 Apr 18, 2022
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
Flask user session management.

Flask-Login Flask-Login provides user session management for Flask. It handles the common tasks of logging in, logging out, and remembering your users

Max Countryman 3.2k Dec 28, 2022
Skit-auth - Authorization for skit.ai's platform

skit-auth This is a simple authentication library for Skit's platform. Provides

Skit 3 Jan 08, 2022