Django:将 LDAP 凭据传递给第 3 方 SDK
Django: Pass LDAP Credentials to 3rd Party SDK
我是 Django 的新手,正在开发供内部使用的应用程序。我已使用 django_auth_ldap
模块配置它以对 LDAP 进行身份验证。一旦用户通过身份验证,他们就会使用第 3 方 SDK(也需要 LDAP 身份验证)执行自动化任务。下面是我的 views.py 配置中的一个简单函数,它将使用 SDK 创建会话,但是有没有办法将用户身份验证传递给该函数?
views.py
def create_session(hostname, username, password):
"""Create an API Session using an SDK."""
session = SDK(hostname, username=username, password=password)
return session
@login_required
def list_info(request):
if request.method == 'POST':
form = Form(request.POST)
if form.is_valid():
session = create_session(form.cleaned_data['host'], ?username?, ?password?)
host_info = session.get()
note = 'Information from {}: '.format(form.cleaned_data['host'])
dataset = pd.json_normalize(host_info)
session.invalidate_cookie()
else:
note = 'API call has failed. Try again.'
return render(request, 'list_info.html', {'form':form,
'note':note,
'dataset':dataset.to_html(index=False, justify='left',
classes='table table-stripe')})
else:
form = Form()
return render(request, 'list_info.html', {'form':form})
我最初使用 click
模块创建 CLI 应用程序,但一直在尝试将它们转换为 Django。有更简单的方法吗?
我找到了解决此问题的方法。我决定创建一个服务帐户来处理第 3 方 SDK 操作。当用户执行自动化任务时,用户名将被记录到 Django PostgreSQL 数据库中,并且 post 到我们的 Slack 频道,其中包含对所执行内容的描述。
我是 Django 的新手,正在开发供内部使用的应用程序。我已使用 django_auth_ldap
模块配置它以对 LDAP 进行身份验证。一旦用户通过身份验证,他们就会使用第 3 方 SDK(也需要 LDAP 身份验证)执行自动化任务。下面是我的 views.py 配置中的一个简单函数,它将使用 SDK 创建会话,但是有没有办法将用户身份验证传递给该函数?
views.py
def create_session(hostname, username, password):
"""Create an API Session using an SDK."""
session = SDK(hostname, username=username, password=password)
return session
@login_required
def list_info(request):
if request.method == 'POST':
form = Form(request.POST)
if form.is_valid():
session = create_session(form.cleaned_data['host'], ?username?, ?password?)
host_info = session.get()
note = 'Information from {}: '.format(form.cleaned_data['host'])
dataset = pd.json_normalize(host_info)
session.invalidate_cookie()
else:
note = 'API call has failed. Try again.'
return render(request, 'list_info.html', {'form':form,
'note':note,
'dataset':dataset.to_html(index=False, justify='left',
classes='table table-stripe')})
else:
form = Form()
return render(request, 'list_info.html', {'form':form})
我最初使用 click
模块创建 CLI 应用程序,但一直在尝试将它们转换为 Django。有更简单的方法吗?
我找到了解决此问题的方法。我决定创建一个服务帐户来处理第 3 方 SDK 操作。当用户执行自动化任务时,用户名将被记录到 Django PostgreSQL 数据库中,并且 post 到我们的 Slack 频道,其中包含对所执行内容的描述。