我在调用rest api时尝试使用承载令牌时遇到一些问题。
我尝试了两种方法,结果相同:
我在azure门户中创建了一个应用注册,并授予它使用devops api进行用户模拟的权限。
我在中创建了一个应用程序https://app.vsaex.visualstudio.com/并授予it项目/团队管理权限。
对于我的代码,我使用了这个(当我使用PAT进行身份验证时有效)
import requests
ADOtoken = 'obtained by microsoft example'
org = 'myorg'
projectName = 'test'
headers = {"Authorization": f"Bearer {ADOtoken}"}
requesturl = f"https://dev.azure.com/{org}/_apis/projects?api-version=6.0"
data = {
"name": projectName,
"description": "description is requred",
"capabilities": {
"versioncontrol": {
"sourceControlType": "Git"
},
"processTemplate": {
"templateTypeId": "6b724908-ef14-45cf-84f8-768b5384da45"
}
}
}
r = requests.post(requesturl, json = data, headers=headers)
我使用以下示例获取令牌:https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v2-python-webapp
我将范围更改为['https://app.vssps.visualstudio.com/user_impersonation']
我希望得到一个要调试的错误,或者要创建的项目
我得到一个203(重定向),内容是azure devops登录站点
在门户上添加api权限。
我的测试代码:
import requests
import json
# get beartoken
beartoken=''
client_id = '<your_clientid>'
client_secret = '<your_secret>'
aadTenantDomain='<your_aadTenantDomain_like_microsoft.onmicrosoft.com>'
token_url = 'https://login.microsoftonline.com/'+aadTenantDomain+'/oauth2/token'
token_data = {
'grant_type': 'client_credentials',
'client_id': client_id,
'client_secret': client_secret,
'resource':'https://app.vssps.visualstudio.com/',
}
token_r = requests.get(token_url, data=token_data)
d = json.loads(token_r.text)
beartoken= d['access_token']
print(beartoken)
# request devops api for test
url='https://dev.azure.com/jasonp2deploy/deployappwithvirtualapp/_apis/build/builds?api-version=5.0'
body = "{\"previewRun\":false,\"stageToSkip=\": [],\"resources\": [], \"templateParameters\": [], \"variables\": []}"
headers = {
'Authorization' : 'Bearer '+beartoken
}
r = requests.get(url, data=json.dumps(body), headers=headers)
print(r.status_code)
我的测试结果:
如果你还想使用pat,你可以在下面的帖子中参考我的答案。
如何解决python中azure devop api对象移动的结果
我正在使用改型2.0在Android上构建一个Bitbucket REST客户端。 就我而言,OAuth2.0提供了“隐式授权”,当用户在提示下登录到他们的帐户时,它立即向客户机提供访问承载令牌。 承载令牌是可用于访问受保护资源的令牌。任何拥有承载令牌的人与其他拥有承载令牌的人一样,都有权访问受保护的资源。(根据IETF的这份文件) 如果我错了,请纠正我,但我认为使用隐式授权,在用户登录到他们的B
如何使用Live PayPal ClientID和密钥从PayPal https://api-M.PayPal.com/v1/oauth2/Token API调用中获得访问/承载令牌。 我在调用Postman中的API之前使用了下面的设置 基本Auth类型。主体tab=x-www-form-urlencoded。grant_type=client_credentials 我得到以下响应时调用以上A
我在做概念验证。我正在使用Azure Active Directory并试图在遗留项目中实现OAuth。 这个项目的一半使用Web表单,另一半直接通过JavaScript在另一个项目中调用WebAPI。 作为一个测试,我通过UseOpenIDConnectauthEntication的AuthorizationCodeReceed通知事件获得承载令牌。我使用以下代码将令牌快速写入调用WebAPI的
当一个人试图使用azure AD承载令牌访问我们的系统时,这个获取和缓存资源令牌的工作流程是不存在的。 所以我的问题是,我如何使用承载令牌来启用它?如何才能像使用OpenIDConnect一样请求额外的资源令牌?是否可以使用ADAL从承载令牌获取授权代码?
我们有一个由Angular网站访问的ServiceStack服务。随机的,我们无法确定它发生的原因或时间,承载令牌正在失效。我们可以看到不接受承载令牌,并显示错误消息。“令牌已失效”。我确信我们没有重新启动servicestack服务,我们仍然在请求中传递原始的承载令牌。我们没有实现任何使承载令牌无效的逻辑。我知道这有点模糊。如果有人能告诉我如何在ServiceStack中解决这个问题。这就是我需
我在用阿斯匹林。网络应用程序 我很困惑。我已经使用JSON网络令牌。我明白这一点。已知经典的 JSON 网络令牌。标头、有效负载、签名、自包含。客户端可以查看索赔数据。 但是不记名令牌是什么呢?不记名令牌也是独立的。我们可以通过不记名令牌访问令牌的数据。客户端看不到索赔数据。 那我们为什么不使用不记名令牌呢?不记名代币不是标准吗?有没有像 JWT 持有者令牌这样的东西? 以及如何在 MVC Web