#django #ldap
#django #ldap
Вопрос:
Я новичок в Django и разрабатываю приложение для внутреннего использования. Я настроил его с django_auth_ldap
помощью модуля для аутентификации в LDAP. После того, как пользователь прошел аутентификацию, для них выполняются задачи автоматизации, которые используют сторонние 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})
Изначально я создавал приложения CLI с использованием click
модуля, но пытался преобразовать их в Django. Есть ли более простой подход к этому?
Ответ №1:
Я смог найти обходной путь к этой проблеме. Я решил создать учетную запись службы для обработки действий стороннего SDK. Когда пользователь выполняет задачу автоматизации, имя пользователя будет записано в базу данных Django PostgreSQL, а также сообщение на нашем канале Slack с описанием того, что было выполнено.