Уважаемый господин,
Не могли бы вы помочь мне узнать, почему я больше не подключаюсь к sharepoint?
С версией 2.2.2 все работало нормально.
Затем возникла проблема № 272 (произошла ошибка при получении токена из ответа XML: AADSTS500069), поэтому я обновился до 2.3.0.1.
Теперь следующий код тоже не работает:
def copy_sharepoint (self, filename = ""):
ctx = ClientContext (self.SITE_SHAREPOINT) .with_credentials (UserCredential (self.WIN_USER, self.WIN_PASSWORD))
localpath = os.path.join (self.CHEMIN_XLSX, self.NOM_TIR + '/',self.FICHIER_BI)
self.print_debug ("", локальный путь)
self.print_debug ("", self.WIN_PASSWORD)
с open (localpath, 'rb') как content_file:
file_content = content_file.read ()
file = ctx.web.get_folder_by_server_relative_url (self.CHEMIN_SHAREPOINT) .upload_file (self.FICHIER_BI, file_content) .execute_query ()
Отслеживание (последний вызов последний):
Файл "/appli/sopra/tools/tir_bench.py", строка 1327, в
tir_bench.copy_sharepoint ()
Файл "/appli/sopra/tools/tir_bench.py", строка 1278, в copy_sharepoint
file = ctx.web.get_folder_by_server_relative_url (self.CHEMIN_SHAREPOINT) .upload_file (self.FICHIER_BI, file_content) .execute_query ()
Файл "/home/benchsp/.local/lib/python3.9/site-packages/office365/runtime/client_object.py", строка 30, в execute_query
self.context.execute_query ()
Файл "/home/benchsp/.local/lib/python3.9/site-packages/office365/runtime/client_runtime_context.py", строка 138, в execute_query
self.pending_request (). execute_query ()
Файл "/home/benchsp/.local/lib/python3.9/site-packages/office365/runtime/client_request.py", строка 73, в execute_query
self.beforeExecute.notify (запрос)
Файл "/home/benchsp/.local/lib/python3.9/site-packages/office365/runtime/types/EventHandler.py", строка 18, в уведомлении
слушатель ( аргументы, * kwargs)
Файл "/home/benchsp/.local/lib/python3.9/site-packages/office365/sharepoint/client_context.py", строка 162, в _build_modification_query
self.ensure_form_digest (запрос)
Файл "/home/benchsp/.local/lib/python3.9/site-packages/office365/sharepoint/client_context.py", строка 123, в файле sure_form_digest.
self.request_form_digest ()
Файл "/home/benchsp/.local/lib/python3.9/site-packages/office365/sharepoint/client_context.py", строка 130, в request_form_digest
response = self.execute_request_direct (запрос)
Файл "/home/benchsp/.local/lib/python3.9/site-packages/office365/runtime/client_runtime_context.py", строка 134, в execute_request_direct
return self.pending_request (). execute_request_direct (запрос)
Файл "/home/benchsp/.local/lib/python3.9/site-packages/office365/runtime/odata/odata_request.py", строка 34, в execute_request_direct
вернуть super (ODataRequest, self) .execute_request_direct (запрос)
Файл "/home/benchsp/.local/lib/python3.9/site-packages/office365/runtime/client_request.py", строка 86, в execute_request_direct
self.context.authenticate_request (параметры_запроса)
Файл "/home/benchsp/.local/lib/python3.9/site-packages/office365/sharepoint/client_context.py", строка 151, в Authenticate_request
self._auth_context.authenticate_request (запрос)
Файл "/home/benchsp/.local/lib/python3.9/site-packages/office365/runtime/auth/authentication_context.py", строка 84, в Authenticate_request
self._provider.authenticate_request (запрос)
Файл "/home/benchsp/.local/lib/python3.9/site-packages/office365/runtime/auth/providers/saml_token_provider.py", строка 73, в Authenticate_request
self.ensure_authentication_cookie ()
Файл "/home/benchsp/.local/lib/python3.9/site-packages/office365/runtime/auth/providers/saml_token_provider.py", строка 80, в файле sure_authentication_cookie.
self._cached_auth_cookies = self.get_authentication_cookie ()
Файл "/home/benchsp/.local/lib/python3.9/site-packages/office365/runtime/auth/providers/saml_token_provider.py", строка 93, в get_authentication_cookie
токен = self._acquire_service_token_from_adfs (user_realm.STSAuthUrl)
Файл "/home/benchsp/.local/lib/python3.9/site-packages/office365/runtime/auth/providers/saml_token_provider.py", строка 136, в _acquire_service_token_from_adfs
assertion_node = dom.getElementsByTagNameNS ("urn: oasis: names: tc: SAML: 1.0: assertion", 'Assertion') [0] .toxml ()
IndexError: список индекса вне допустимого диапазона
Не могли бы вы помочь мне с этой проблемой?
Заранее спасибо,
Гийом
Привет,
Кроме того, вот значение response.content.decode ())
<value i="14">s:Sender</value><subcode i="15"><value i="16">a:InvalidSecurity</value></subcode>
Привет!
Спасибо за подробный журнал, на данный момент у меня нет возможности проверить его на соответствие SharePoint / ADFS env.
@wreiner , может быть, вы могли бы подтвердить, работает ли _federated authentication_ на вашей стороне в последней версии должным образом?
всем привет
У меня похожие проблемы, следующая строка дает мне ответ 400 или 500.
В случае, если я получу ответ 400, тело будет пустым, что приведет к исключению xml.parsers.expat.ExpatError: no element found: line 1, column 0
. ответ 500 дает то же исключение, что и @ guillaume-colas.
Я еще не получил пакет для работы, так что это вполне может быть сервер sharepoint, но я попробую понизить версию пакета, чтобы быть уверенным. Как я могу убедиться, что аутентификация sharepoint настроена правильно?
Спасибо заранее!
Привет,
Я не сижу на своем компьютере, чтобы полностью анализировать, но, как я вижу, когда я устанавливаю последнюю версию с помощью pip, функция _acquire_service_token_from_adfs_ отсутствует в _runtime / auth / sizes / saml_token_provider.py_.
В моем запросе на перенос эта функция не удалена, поэтому я не уверен, почему она отсутствует. Также мое исправление для формата datetime отсутствует в файле. Может при слиянии произошла ошибка?
@wreiner спасибо, что вернулся, относительно
Acquire_service_token_from_adfs отсутствует
он был преобразован с публичного на частный метод .
мое исправление для формата datetime отсутствует в файле
формат должен быть в том виде, в котором он был зафиксирован изначально, но он был подвергнут рефакторингу с точки зрения перемещения объявления в sts_profile.py
self.created = now.astimezone(timezone.utc).isoformat('T')[:-9] + 'Z' self.expires = (now + timedelta(minutes=10)).astimezone(timezone.utc).isoformat('T')[:-9] + 'Z'
Но если после слияния чего-то не хватает, винить следует меня.
всем привет
У меня похожие проблемы, следующая строка дает мне ответ 400 или 500.
В случае, если я получу ответ 400, тело будет пустым, что приведет к исключению
xml.parsers.expat.ExpatError: no element found: line 1, column 0
. ответ 500 дает то же исключение, что и @ guillaume-colas.Я еще не получил пакет для работы, так что это вполне может быть сервер sharepoint, но я попробую понизить версию пакета, чтобы быть уверенным. Как я могу убедиться, что аутентификация sharepoint настроена правильно?
Спасибо заранее!
Привет Марк,
спасибо за подтверждение, это действительно выглядит в последней версии федеративной аутентификации (SharePoint / ADFS) несколько сломанной
Не могли бы вы попробовать _предыдущую_ версию ( 2.2.2
)?
Я не прошел полный анализ, но для моих изменений я могу сказать, что они возвращают токен безопасности и файл cookie правильно, но банка cookie не содержит поля FedAuth, которое ищется в is_valid_auth_cookies, которое теперь используется в _get_authentication_cookie.
Для федеративной аутентификации я вижу только SPOIDCRL в банке.
В настоящее время я все еще не могу правильно использовать полученные данные аутентификации, я все еще изучаю, но не могу сказать, сколько времени мне понадобится.
В целом я могу сказать, что со старой версией и моими патчами все по-прежнему работает нормально, как и ожидалось, но, к сожалению, не с новой версией.
Спасибо за быстрые ответы :-)
@vgrem он получает аналогичную ошибку в версии 2.2.2, поэтому, похоже, это сервер sharepoint.
Было бы неплохо превратить исключение в более читаемое.
Я на шаг впереди. Оказывается, мне нужно было сбросить пароль. Теперь я получаю ту же ошибку, что и @wreiner. is_valid_auth_cookies
возвращает, что файл cookie недействителен, поскольку словарь содержит только ключ SPOIDCRL и не содержит ключа FedAuth. Если я просто прокомментирую эту проверку, действителен ли файл cookie или нет. Я могу скачивать файлы с sharepoint. Таким образом, аутентификация, похоже, работает нормально.
Может еще раз попробую версию 2.2.2.
У меня такая же проблема. is_valid_auth_cookies
return False
из-за отсутствия ключа FedAuth
в файлах cookie dict. Если я прокомментирую код возврата и упрощу return True, аутентификация будет работать нормально.
def is_valid_auth_cookies(values):
return True
# return any(values) and values.get('FedAuth', None) is not None
Привет, @ hungnguyen95 , спасибо за подтверждение!
Оказывается, is_valid_auth_cookies
нужно отрегулировать.
Привет,
Будет ли моя проблема решена путем изменения is_valid_auth_cookies?
Я совсем потерялся здесь, извините. Я думал, что моя проблема в _acquire_service_token_from_adfs.
Вы знаете, почему я получаю ответ «Недопустимая безопасность» и, надеюсь, способ обхода аутентификации?
Заранее спасибо за помощь.
Гийом
@ guillaume-colas кажется, что ваша проблема, вероятно, связана с сервером, который не разрешает вам доступ. Вы уверены, что пароль правильный, и пробовали ли вы его сбросить? Сброс моего пароля решил эту проблему. После чего я столкнулся с проблемой is_valid_auth_cookies
.
@ mark-boer Да, я проверил свой пароль, и он правильный. Возможно ли, что аутентификация с помощью 2FA (смс-код) блокирует аутентификацию?
Можно ли использовать ClientCredentials для загрузки файлов в sharepoint?
Заранее спасибо за помощь