Поддержка ADAL python для пользователя, вошедшего в систему Windows

#azure #adal

#azure #adal

Вопрос:

В настоящее время мы используем библиотеку adal python и хотели бы знать, есть ли какой-либо способ (или планы реализации способа) использовать подписанного пользователя (Windows) для потока федеративной аутентификации.

Такой поток возможен с помощью ссылки на пакет .Net

Конечной целью было бы, вместо acquire_token_with_username_password , может быть, что-то вроде acquire_token_with_signed_in_user ?

Ответ №1:

Спасибо за ваши исследовательские усилия по этому ценному вопросу (поддержано)!

Это правда, что ни ADAL Python, ни его двоюродный брат MSAL Python не поддерживают «получение пользователя Windows, вошедшего в систему, и его использование». Эта функция известна как IWA и традиционно доступна только в нашем .Net / C # SDK на платформах Windows. Теоретически это возможно добавить и в Python. В настоящее время у нас нет этого в нашей дорожной карте, в основном потому, что никто не запрашивал об этом раньше. В этом смысле, не стесняйтесь идти дальше и создать проблему для этого в нашем репозитории MSAL Python на githubвы это сделали), чтобы люди во всем мире (или ваш супруг) могли проголосовать за это, а затем мы отсортируем их по 1 голосу, когда будем проводить наши будущие раунды планирования.

С другой стороны, в ADAL Python уже существует поведение кэша токенов и в MSAL Python. Если вы используете его, а также создаете поверх него свой собственный уровень сохраняемости (что очень просто в MSAL Python), вы можете кэшировать токены, чтобы конечному пользователю не нужно было каждый раз проходить аутентификацию. PS: В настоящее время предпринимаются некоторые усилия по предоставлению помощника еще более высокого уровня для сохранения кэша токенов, но это другая тема.

Также спасибо @mohitdhingra-msft за предоставление другого ответа здесь, который также является правильным.

Ответ №2:

Вы можете получить accessToken и refreshToken, используя метод acquire_token_with_username_password. Согласно приведенной ниже документации, такого метода для получения токена с помощью пользователя, вошедшего в систему, не существует, но вы можете использовать acquire_token_with_refresh_token для получения нового токена доступа с помощью токена обновления, который вы получили при первом вызове. Вы можете использовать класс TokenCache для кэширования accessToken и refreshToken.

Обновить токен в adal python и https://adal-python.readthedocs.io/en/latest/

Я надеюсь, что это поможет.