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 频道,其中包含对所执行内容的描述。