0

documented here과 같이 인증 코드를 요청하려고합니다. 나는 위의 코드를 실행하면Azure Access Token HTML을 반환하는 요청

import requests 
auth_endpoint = 'https://login.microsoftonline.com/%s/oauth2/authorize?api-version=1.0' % TENANT_ID 

payload = { 
    'client_id': CLIENT_ID, 
    'response_type': 'code', 
    'resource': APP_ID_URI, 
    'redirect_uri': REPLY_URL 
} 
response = requests.get(url=auth_endpoint, data=payload) 

그러나, 나는 몸에 다시 HTML을 얻을 수 없습니다 내가 기대하고있어 응답 : 나는 파이썬을 사용하고 이 작업을 수행하고 다음 예제 코드를 가지고 패키지를 요청합니다. HTML 코드가 로그인 페이지에 대한 것 같습니다. 형식이 지정된 끝점 URI를 브라우저에 연결하면 리디렉션 URI에서 인증 코드를 가져올 수 있습니다. 그러나 요청 패키지를 사용하면서 응답 본문에서이 방법을 사용할 수 있습니까?

+1

'params = payload'를 시도 했습니까? 아니면 게시물이 될 예정입니까? –

+0

인증 코드 부여 흐름에는 사용자 상호 작용이 필요합니다. 즉, URL을 구성하고 웹 브라우저에 넣고 사용자 이름과 암호로 로그인 한 다음 리디렉션 URL에 인증 코드를 입력해야합니다. 액세스 토큰 만 필요하면 인증 코드 부여 플로우를 사용할 필요가 없습니다. 인증 코드 대신 클라이언트 자격 증명을 사용해 볼 수 있습니다. –

답변

1

요청 모듈의 세션 클래스를 사용하여 요구 사항을 구현하십시오. 다음 코드 샘플을 참조하십시오.

import requests 

s = requests.Session() 
USERNAME = '<username_email>' 
PASSWORD = '<userpassword>' 
s.auth = (USERNAME, PASSWORD) 
TENANT_ID = '<tenant_id>' 
# Authorize URL 
authorize_url = 'https://login.microsoftonline.com/%s/oauth2/authorize' % TENANT_ID 
# Token endpoint. 
token_url = 'https://login.microsoftonline.com/%s/oauth2/token' % TENANT_ID 

payload = { 'response_type': 'code', 
      'client_id': '<tenant_id>', 
      'redirect_uri': 'http://localhost', 
      'authority' :'authority' 
      } 

response = s.get(authorize_url, params=payload ,allow_redirects=True) 
print response 
print response.url 

추가 문의 사항이 있으면 언제든지 알려주십시오.

관련 문제