Office365-rest-python-client: حدث خطأ أثناء استرداد ملفات تعريف ارتباط المصادقة من https://mycompany.sharepoint.com/sites/documentssite//_vti_bin/idcrl.svc

تم إنشاؤها على ٥ أغسطس ٢٠٢٠  ·  3تعليقات  ·  مصدر: vgrem/Office365-REST-Python-Client

أهلا بك،

سياق القضية

أنا أعمل مع الإصدار 2.1.7.post1 (وفقًا لتجميد النقطة) ، لا يلزم استخدام MFA لتسجيل الدخول إلى sharepoint.
أحاول حاليًا الحصول على ملف Excel من نقطة مشاركة الشركة ، باستخدام البرنامج النصي التالي (تم إنشاؤه من README الخاص بالمشروع):

from office365.runtime.auth.authentication_context import AuthenticationContext
from office365.sharepoint.client_context import ClientContext
from office365.sharepoint.file import File

url = 'https://mycompany.sharepoint.com/sites/documentssite/'

ctx_auth = AuthenticationContext(url)
if ctx_auth.acquire_token_for_user(username, password):
    ctx = ClientContext(url, ctx_auth)
    web = ctx.web
    ctx.load(web)
    ctx.execute_query()
    print("Web title: {0}".format(web.properties['Title']))

يوفر تشغيل هذا البرنامج النصي الإخراج التالي:
An error occurred while retrieving auth cookies from https://mycompany.sharepoint.com/sites/documentssite//_vti_bin/idcrl.svc

بعض التفاصيل حول هذه القضية

لاحظت من خلال تشغيل هذا البرنامج النصي في وضع التصحيح ، أن المشكلة تأتي من الطريقة acquire_authentication_cookie للفئة SamlTokenProvider
في الواقع ، يتم استدعاء الطريقة بـ federated=True لذلك يتم تنفيذ طلب HTTP على https://mycompany.sharepoint.com/sites/documentssite//_vti_bin/idcrl.svc باستخدام طريقة HEAD. يمكنك أن تجد أدناه الجزء الذي فشل فيه:

     def acquire_authentication_cookie(self, security_token, federated=False):
        ...
        else:
            self._auth_cookies['SPOIDCRL'] = None
            session.head(self.__sts_profile.signInPageUrl,
                         headers={
                             'User-Agent': 'Office365 Python Client',
                             'X-IDCRL_ACCEPTED': 't',
                             'Authorization': 'BPOSIDCRL {0}'.format(security_token),
                             'Content-Type': 'application/x-www-form-urlencoded'
                         })
        logger.debug_secrets("session.cookies: %s", session.cookies)
        cookies = requests.utils.dict_from_cookiejar(session.cookies)
        logger.debug_secrets("cookies: %s", cookies)
        if not cookies:
            self.error = "An error occurred while retrieving auth cookies from {0}".format(self.__sts_profile.signInPageUrl)
            logger.error(self.error)
            return False

الرد لا يحتوي على أي ملف تعريف ارتباط ، وهذا هو سبب ظهور رسالة الخطأ.

بالمناسبة ، واجهت نفس المشكلة عندما قمت بتعيين عنوان url على " https://mycompany.sharepoint.com ".

يُرجى إعلامي إذا لم أقدم تفاصيل كافية حول المشكلة.
شكرا لكم مقدما !

question

ال 3 كومينتر

بعض الأخبار حول هذه القضية:

عندما أقدم طلب HEAD إلى https://mycompany.sharepoint.com/sites/documentssite//_vti_bin/idcrl.svc باستخدام curl ، تمت إعادة توجيهي إلى https://mycompany.sharepoint.com/_vti_bin/idcrl.svc/ (كود الاستجابة: 307).

لذلك قدمت طلب HEAD على هذا الرابط ، وتلقيت استجابة "طريقة غير مسموح بها" ...
أعتقد أن المشكلة تأتي من جانب شركتي ..

تحيات!

شكرا لك على التفاصيل المقدمة!

2.1.7.post1 قديم بعض الشيء في الوقت الحالي ، هل يمكنك إعطائه لقطة أخرى ولكن مع الإصدار _ الأحدث ( 2.1.10.1 في الوقت الحالي) ، يمكن تنزيله عبر GitHub:

pip install git+https://github.com/vgrem/Office365-REST-Python-Client.git

أو من فهرس بديل

تم حل بعض إصلاحات الأخطاء منذ ذلك الحين من حيث المصادقة.

لقد قمت بتثبيت الإصدار الأخير وهو يعمل بشكل جيد! (كان هذا الأمر بسيطًا جدًا لحلها في الواقع! :))
شكرا على المساعدة: د

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

etiennecelery picture etiennecelery  ·  4تعليقات

attibalazs picture attibalazs  ·  10تعليقات

ahulist picture ahulist  ·  5تعليقات

Bachatero picture Bachatero  ·  3تعليقات

bobbydurrett picture bobbydurrett  ·  8تعليقات