Получить токен на предъявителя из Active Directory в Python - PullRequest
1 голос
/ 25 сентября 2019

Я пытаюсь закодировать функцию аутентификации для веб-службы на Python с помощью OAuth.Веб-служба только запрашивает, чтобы я опубликовал токен на конечную точку API REST.

В моей компании мы используем локальный экземпляр Active Directory, который уже настроен для OAuth.Таким образом, я исследую, как правильно запрашивать токен на основе (сначала) пары имени пользователя / пароля (затем я могу перейти к более продвинутым и безопасным способам, таким как сертификат).

Я был бы признателен за помощь, чтобы указать мне правильное направление в Python.Какой модуль рекомендуется для этого? ADAL появляется регулярно, но мне интересно, предназначен ли он только для Azure AD, и, следовательно, неприменим в моем случае.Поскольку примеров кода не так много, я не уверен в этом.

Заранее спасибо!

R.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

Да - ADAL - это путь.

На сервере 2019 также поддерживается MSAL.

Существует несколько образцов ADAL , предназначенных дляADFS.

Все они получены из образцов AAD, поскольку протокол тот же, а изменения для ADFS незначительны.

0 голосов
/ 25 сентября 2019

Я предполагаю, что вы уже зарегистрировали приложение в Azure Active Directory.

У меня была именно эта проблема несколько дней назад, и в итоге я сделал что-то вроде этого:

import json
import requests

TOKEN_URL = "https://login.microsoftonline.com/organizations/oauth2/v2.0/token"

def authenticate():
    request_payload = {"username": YOUR USERNAME/EMAIL,
                       "password": YOUR PASSWORD,
                       "scope": THE SCOPES YOU NEED,
                       "grant_type": "password",
                       "client_id": YOUR AAD CLIENT ID,
                       "client_secret": YOUR AAD CLIENT SECRET}

    bearer_token = requests.post(url=TOKEN_URL, data=request_payload).json()["access_token"]

    return bearer_token

IТакже рекомендую не кодировать конфиденциальную информацию в файле python.Рассмотрите возможность использования файла конфигурации json или чего-то подобного.

...