JumpServer 3版本以上SSO认证配置

今天运维告知JumpServer从2升级到3了,然后发现原来的SSO认证不可用了。

登录到后台一通操作,就在认证方式界面点点点,也没干啥实际性有意义的操作,突然发现它又可以用了。

就很奇怪!

然后就想搞明白是为什么。

sso接口地址:

jumpserver/apps/authentication/api/sso.py at v3.10.11-lts · jumpserver/jumpserver · GitHub

实现逻辑:

    @action(methods=[POST], detail=False, permission_classes=[OnlySuperUser], url_path='login-url')
    def login_url(self, request, *args, **kwargs):
        if not settings.AUTH_SSO:
            raise SSOAuthClosed()

        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        username = serializer.validated_data['username']
        user = User.objects.get(username=username)
        next_url = serializer.validated_data.get(NEXT_URL)
        next_url = safe_next_url(next_url, request=request)

        operator = request.user.username
        # TODO `created_by` 和 `created_by` 可以通过 `ThreadLocal` 统一处理
        token = SSOToken.objects.create(user=user, created_by=operator, updated_by=operator)
        query = {
            AUTH_KEY: token.authkey,
            NEXT_URL: next_url or ''
        }
        login_url = '%s?%s' % (reverse('api-auth:sso-login', external=True), urlencode(query))
        return Response(data={'login_url': login_url})

可以明显发现核心代码就是这个:settings.AUTH_SSO 的配置参数

一统各种搜索,发现代码里面没有初始化AUTH_SSO配置的地方,都是默认值False。

就很无语/(ㄒoㄒ)/~~

最终:

我们jumpserver是通过docker配置起来的,最后docker ps看了一下,发现有mysql,而且问了运维他是直接脚本在原来的实例上面执行了升级,不是重新安装!  

好像真相大白了,去mysql实例上面查看了一一下settings_setting表,终于找到了AUTH_SSO  true

所以这个代码的禁用就紧紧是禁止了前端配置,原来2版本里面配置过的,还是能够直接使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值