
在python中使用以下代码:
import pyotp
totp = pyotp.TOTP('secret')
otp = totp.now()如何使用上面生成的otp作为以下API调用中的请求参数来检索OAuth2令牌?
https://login.microsoftonline.com/{tenant-ID}/oauth2/v2.0/token
发布于 2022-09-28 06:58:47
将"otp"-值作为有效负载的一部分传入POST请求的主体,如client_id, secret等,并请求令牌,则生成令牌。
代码中的data是我从azure获得的参数。
找到下面的代码供您参考。
import sys
import pyotp
import json
import requests
secret = 'base32secret'
totp = pyotp.TOTP(secret)
otp = totp.now()
API_ENDPOINT = "https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token"
headers = {
"Content-type": "application/json",
}
data = {
'grant_type': 'client_credentials',
'username': 'someusrname',
'client_id': 'client_id',
'client_secret':'client_secret',
'scope':'api://{applicationId}/.default',
'otp': otp,
}
res = requests.post(url = API_ENDPOINT, data = data)
print("Access token is:", res.text)

注意:确保启用了OAuth2.0以获得scope。如何启用它,检查它的这里
https://stackoverflow.com/questions/73698316
复制相似问题