Openstack 密码是否存储在keystone';密码表,如果是,密码如何映射用户';谁的密码?
用户的密码存储在哪里 我在keystone的用户表中找不到: 但我可以在keystone的密码表中找到: 密码是否映射用户的密码 我的问题是: 密码是否存储在keystone的密码表中?如果是,密码如何映射用户的密码? 密码是加密的吗?我从未见过这种类型的密码 我从未见过这种类型的密码。因为我使用openstacksdk注册项目和用户,所以无法登录。我不知道为什么。所以,我想在这里了解一下Openstack 密码是否存储在keystone';密码表,如果是,密码如何映射用户';谁的密码?,openstack,Openstack,用户的密码存储在哪里 我在keystone的用户表中找不到: 但我可以在keystone的密码表中找到: 密码是否映射用户的密码 我的问题是: 密码是否存储在keystone的密码表中?如果是,密码如何映射用户的密码? 密码是加密的吗?我从未见过这种类型的密码 我从未见过这种类型的密码。因为我使用openstacksdk注册项目和用户,所以无法登录。我不知道为什么。所以,我想在这里了解一下 我的项目的django代码如下,请使用openstacksdk注册: def register(re
我的项目的django代码如下,请使用openstacksdk注册:
def register(request):
if request.method == 'GET':
return render(request, 'frontend/register.html')
elif request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
phone = request.POST.get('phone')
email = request.POST.get('email')
usertype = 1
app_user_params = {
"username":username,
"password":hashlib.sha1(password).hexdigest(), # sha1加密
"phone":phone,
"email":email,
"usertype":usertype
}
user_form = UserMF(app_user_params)
if user_form.is_valid():
obj_user = models.User.objects.filter(username=username)
obj_phone = models.User.objects.filter(phone=phone)
obj_email = models.User.objects.filter(email=email)
# 使用admin用户创建project和user
from openstack import connection
connection = connection.Connection(**settings.ADMIN_OPENRC)
admin_conn = OpenstackConn.OpenstackAdminConn()
admin_conn.admin_conn = connection
# 创建项目(先创建项目,再创建用户)
project_params = {
"description":username+"'s project",
"is_domain":False,
"enable":False, # I set True still has this issue.
"name":username, # 给的是用户名,也是唯一的
}
try:
new_project = admin_conn.admin_conn.identity.create_project(**project_params) # create_project
print (new_project, new_project.id, "new project created")
except Exception as e:
print (e.message)
return HttpResponse(json.dumps({'status_code':0,'info':e.message.encode('utf-8')}))
# 创建 openstack_cloud user
user_params = {
"default_project_id":new_project.id,
"email":email,
"enabled":False,
"name":username,
"password":password
}
try:
new_user = admin_conn.admin_conn.identity.create_user(**user_params)
print (new_user, new_user.id, "new user created")
except Exception as e:
admin_conn.admin_conn.identity.delete_project(new_project)
print (e.message)
return HttpResponse(json.dumps({'status_code': 0, 'info': e.message.encode('utf-8')}))
我不知道我是否写错了,或者密码会加密
编辑-1 我打印新创建的用户,并且user.id:
(openstack.identity.v3.user.User(name=liaodalin15, links={u'self': u'http://controller:5000/v3/users/66c60156d0f24a118df54f19e2705aaf'}, enabled=False, domain_id=default, email=xxxxxxxxx@126.com, default_project_id=a829eda8c4de479d8ca5c3a4335c793a, password=liaodalin15, id=66c60156d0f24a118df54f19e2705aaf, password_expires_at=None), u'66c60156d0f24a118df54f19e2705aaf')
Seems the password did now encrypt. Does this should encrypt by ourself?
最后,我解决了这个问题:
因为use openstacksdk create user default已禁用,所以我应该禁用它 也许应该在sdkI建议使用的文件中更改启用的默认设置。从长远来看,它应该对代码维护有所帮助。