Интеграция аутентификации Microsoft Forms в Python Django: Устранение ошибки терминала

Для интеграции потока аутентификации Microsoft Forms в мой проект Python Django для доступа к различным URL-адресам форм и хранения их данных и ответов, я использую предоставленный код аутентификации MS Forms в бэкенде моего проекта. Кроме того, я настроил свой проект на запуск в контейнере Docker.

Ниже приведен фрагмент кода аутентификации MS Forms, который описывает процесс:


import json 

import os 

import django.core.management.base 

import requests 

from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential, AzureCliCredential 

  

# Custom Django command definition 

class Command(django.core.management.base.BaseCommand): 

    def handle(self, *args, **options): 

        # Select one of the credential objects to obtain an access token 

        # cred = AzureCliCredential()  # e.g., via `az login` 

        cred = InteractiveBrowserCredential() 

        # cred = DefaultAzureCredential() 

  

        # Request an access token with the specified scope 

        scope = "https://forms.office.com/.default" 

        token = cred.get_token(scope) 

        print("===============================") 

        print(f"{token.expires_on = }") 

        print("===============================") 

  

        tenantId = "tenant id" 

        groupId = "group id" 

        formId = "form id" 

  

        # Provide the access token in the request header 

        headers = {"Authorization": f"Bearer {token.token}"} 

  

        # Retrieve all Forms for a Microsoft 365 Group 

        url = f"https://forms.office.com/formapi/api/{tenantId}/groups/{groupId}/forms" 

        list_response = requests.get(url, headers=headers) 

        print(f"All Forms: {list_response.json()}") 

  

        # Retrieve details for a specific group form 

        url = f"https://forms.office.com/formapi/api/{tenantId}/groups/{groupId}/forms('{formId}')" 

        list_response = requests.get(url, headers=headers) 

        print(f"Form Detail: {list_response.json()}") 

  

        # Retrieve questions from a group form 

        url = f"https://forms.office.com/formapi/api/{tenantId}/groups/{groupId}/forms('{formId}')/questions" 

        list_response = requests.get(url, headers=headers) 

        print(f"Form questions: {list_response.json()}") 

  

        # Retrieve responses to a group form 

        url = f"https://forms.office.com/formapi/api/{tenantId}/groups/{groupId}/forms('{formId}')/responses" 

        list_response = requests.get(url, headers=headers) 

        print(f"Form responses: {list_response.json()}") 

 

Однако во время выполнения я столкнулся со следующей ошибкой в терминале:


[2024-05-01 07:15:41,963] {_universal.py:475} INFO - Request URL: 'https://login.microsoftonline.com:443/organizations/v2.0/.well-known/openid-configuration'/nRequest method: 'GET'/nRequest headers:/n    'User-Agent': 'azsdk-python-identity/1.14.0 Python/3.8.7 (Linux-6.5.0-1020-oem-x86_64-with-glibc2.2.5)'/nNo body was attached to the request 

[2024-05-01 07:15:42,211] {_universal.py:503} INFO - Response status: 200/nResponse headers:/n    'Cache-Control': 'max-age=86400, private'/n    'Content-Type': 'application/json; charset=utf-8'/n    'Strict-Transport-Security': 'REDACTED'/n    'X-Content-Type-Options': 'REDACTED'/n    'Access-Control-Allow-Origin': 'REDACTED'/n    'Access-Control-Allow-Methods': 'REDACTED'/n    'P3P': 'REDACTED'/n    'x-ms-request-id': 'e1684310-96f3-41e4-a6eb-65211103ff00'/n    'x-ms-ests-server': 'REDACTED'/n    'x-ms-srs': 'REDACTED'/n    'X-XSS-Protection': 'REDACTED'/n    'Set-Cookie': 'REDACTED'/n    'Date': 'Wed, 01 May 2024 11:15:41 GMT'/n    'Content-Length': '1589' 

[2024-05-01 07:15:42,219] {authcode.py:254} INFO - Open a browser on this device to visit: https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?client_id=04b07795-8ddb-461a-bbee-02f9e1bf7b46&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A42687&scope=https%3A%2F%2Fforms.office.com%2F.default+offline_access+openid+profile&state=ZWiINUHPhfSVnRKA&code_challenge=yMrfoYd9HzvR90L03To-Dq0We8DZX5PJTjZB0mwARsw&code_challenge_method=S256&nonce=b2541aafcf591b21e143423d36feea131abae1cab38f82e7e107112886f2b68c&client_info=1&prompt=select_account 

[2024-05-01 07:15:42,221] {authcode.py:264} WARNING - Found no browser in current environment. If this program is being run inside a container which has access to host network (i.e. started by `docker run --net=host -it ...`), you can use browser on host to visit the following link. Otherwise, this auth attempt would either timeout (current timeout setting is None) or be aborted by CTRL+C. Auth URI: https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?client_id=04b07795-8ddb-461a-bbee-02f9e1bf7b46&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A42687&scope=https%3A%2F%2Fforms.office.com%2F.default+offline_access+openid+profile&state=ZWiINUHPhfSVnRKA&code_challenge=yMrfoYd9HzvR90L03To-Dq0We8DZX5PJTjZB0mwARsw&code_challenge_method=S256&nonce=b2541aafcf591b21e143423d36feea131abae1cab38f82e7e107112886f2b68c&client_info=1&prompt=select_account 

 

Ваши соображения или помощь в решении этой проблемы будут высоко оценены.

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

Вернуться на верх