当前位置: 首页 > 知识库问答 >
问题:

如何编写python脚本对Azure DevOps REST API进行身份验证并获得访问令牌?

董霖
2023-03-14
  • 使用个人访问令牌(PAT)
  • 使用OAuth 2.0

我正在使用第二种方法。按照本文档中的步骤进行操作:https://docs.microsoft.com/en-us/azure/devops/integration/get-start/authentication/oauth?view=azure-devops

我编写这个函数是为了使用OAuth2.0实现azure DevOps:

def get_authenticated():

    client_id = < my client ID as a string >
    state = "user1"
    scope = "vso.graph_manage%20vso.identity_manage%20vso.profile_write%20vso.project_manage%20vso.tokenadministration%20vso.tokens"
    callback_URL = < Callback URL to my azure devops account >

    # Azure DevOps Services authorization endpoint
    Auth_URL = "https://app.vssps.visualstudio.com/oauth2/authorize?client_id=" + client_id + "&response_type=Assertion&state=" + state + "&scope=" + scope + "&redirect_uri=" + callback_URL
    headers = {'Accept': 'application/json;api-version=1.0'}

    print(Auth_URL)

    response = requests.get(Auth_URL,headers = headers)
    print(response)
    print(response.status_code)
    print(response.headers['content-type'])

    response.raise_for_status() 
<Response [203]>
203
text/html; charset=utf-8

我对python脚本和REST API完全陌生。有人能帮我指出我代码中的错误或指向一些示例吗?

共有1个答案

华和悦
2023-03-14

http错误203指示返回的metainformation不是来自具有对象副本的服务器的对象的确定集,而是来自私有覆盖的Web。在您的代码中,您添加了头={'accept':'application/json;api-version=1.0'},但实际上内容类型应该是application/x-www-form-urlencode

您可以使用一些用于python的OAuth2库来对Azure DevOps REST API进行身份验证,例如oauthLib。它包括sevelral样本。

另外,您可以参考以下主题,希望对您有所帮助。

 类似资料:
  • 问题内容: 我正在使用Python在系统级别的Linux中进行项目。因此,我想知道,如果我以普通用户身份运行代码,并且正在访问系统文件,那么它应该具有root权限,那么我如何提示输入root密码并以超级用户身份运行其他代码。我想知道,如何以超级用户身份以密码提示运行python脚本。 任何帮助将不胜感激。先感谢您.. 问题答案: 您可以做的另一件事是,如果脚本不是以root身份执行的,则脚本会自动

  • 我们正在尝试使用OAuth2.0在我们的应用程序中登录Outlook.com,我们已经完成了应用程序AAD的注册。应用程序成功地验证了用户,并用access_token响应,现在进一步我们想从imap服务器读取电子邮件,这里我们得到了失败,请尝试和帮助我们解决这个问题。 确定Microsoft Exchange IMAP4服务已就绪。[uaboadiauabsadaamqbdaeeamaawady

  • 我有一个Rest Spring BootAPI,当用户验证API返回令牌jwt时,我在浏览器中注意到该令牌出现在响应头中 如何通过Reactjs将此令牌存储在本地存储浏览器中? 我的请求代码如下所示:

  • 在我配置了下面的配置之后,它不会连接到Active Directory。我无法使用Active Directory的帐户登录。会有什么问题? 我有一个Ubuntu服务器18.04,带有ApacheGuacamoleV1。0.0. 安装。我想使用LDAP身份验证来验证用户。我已经下载了鳄梨酱-auth-ldap-1.0.0。jar和jldap-4.3。jar扩展。 10.10.10.21,10.10

  • 我是全新的RestTemboard和基本上在REST API也。我想通过Jira REST API检索我的应用程序中的一些数据,但取回401未经授权。在jira rest api留档上找到并发表文章,但不知道如何将其重写为java,因为示例使用curl的命令行方式。我将感谢任何建议或建议如何重写: 进入java使用SpringRest模板。其中ZnJlZDpmcmVk是用户名:密码的Bas64编码