👋 欢迎来到吴老二技术博客,专注运维 / 数据库 / 云原生
首页/运维服务/正文

使用LDAP创建jumpserver用户

吴
吴老二
2019-12-21运维服务7790 次浏览0 条评论
上次安装jumpserver最新版本,出现两个问题记录一下: 第一个问题,数据库结构不一样 新版本的数据库结构和老版本的不一样,启动新版本的jumpserver服务时,老版本的数据库被冲掉了。修复方法:可以把两个版本都改成旧版本的,也可以把数据库备份一份,使用新的启动之后再把数据导入进去。 第二个问题,ldap创建用户jumpserver认证不了 我们使用的是ldap作为用户的统一管理,但是,使用新版本的jumpserver时,在ldap上创建的用户,jumpserver不认证通过,以下是解决方法:
vim jumpserver/apps/authentication/utils.py 
# -*- coding: utf-8 -*-
#
from django.utils.translation import ugettext as _
from django.contrib.auth import authenticate

from common.utils import (
	get_ip_city, get_object_or_none, validate_ip
)
from users.models import User
from . import errors


def check_user_valid(**kwargs):
	password = kwargs.pop('password', None)
	public_key = kwargs.pop('public_key', None)
	email = kwargs.pop('email', None)
	username = kwargs.pop('username', None)
	request = kwargs.get('request')

	if username:
		user = get_object_or_none(User, username=username)
	elif email:
		user = get_object_or_none(User, email=email)
	else:
		user = None

	if user is None:
		return None, errors.reason_user_not_exist
	elif user.is_expired:
		return None, errors.reason_user_inactive
	elif not user.is_active:
		return None, errors.reason_user_inactive
	elif user.password_has_expired:
		return None, errors.reason_password_expired

	if password or public_key:
		user = authenticate(request, username=username,
							password=password, public_key=public_key)
		if user:
			return user, ''
	return None, errors.reason_password_failed
这是最新版本的用户认证信息,我们需要修改一下,看下面修改的。
vim jumpserver/apps/authentication/utils.py 
# -*- coding: utf-8 -*-
#
from django.contrib.auth import authenticate

from . import errors


def check_user_valid(**kwargs):
	password = kwargs.pop('password', None)
	public_key = kwargs.pop('public_key', None)
	username = kwargs.pop('username', None)
	request = kwargs.get('request')

	user = authenticate(request, username=username,
						password=password, public_key=public_key)
	if not user:
		return None, errors.reason_password_failed
	elif user.is_expired:
		return None, errors.reason_user_inactive
	elif not user.is_active:
		return None, errors.reason_user_inactive
	elif user.password_has_expired:
		return None, errors.reason_password_expired

	return user, ''
修改后重启服务,解决问题。
文章底部广告位在后台「广告设置」填写广告代码后显示

评论 0

评论需 登录 后发表(注册并验证邮箱)。
还没有评论,来抢沙发~