如何在JavaScript / Jquery中的SharePoint页面PAT方法除外上对Azure DevOps的应用或组织进行身份验证?

问题描述

我想使用REST API或SharePoint Webpart页面上的Azure DevOps应用或组织的基于会话的身份验证来获取身份验证令牌。除了个人访问令牌(PAT)方法之外,我还需要其他一些方法来验证组织的REST API。您能帮我解决一下吗?如果可能,请在JavaScript / JQuery中提供示例/演示。

添加一个示例,其中我使用个人访问令牌(PAT)获取组织的项目 在SharePoint页面

var PATToken = 'xxxx7xxxx6xxxxx7xxxxxxx2xxx';//user need to replace his Personal Access Token here and run this snippent on SharePoint Page.
var orgName = 'TestRaju';
getorgProjects(orgName);
function getorgProjects(orgName) {
  $.ajax({
      url: 'https://dev.azure.com/' + orgName + '/_apis/projects?api-version=5.1',dataType: 'json',headers: {
          'Authorization': 'Basic ' + btoa("" + ":" + PATToken)
      }
  }).success(function (results) {
      console.log(results);
  }).error(function (error) {
      console.log(error);
  });
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

解决方法

您可以尝试使用OAuth令牌:

https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops

用户授权您的应用程序

在较高级别,您调用“授权”端点并提供回调。回调必须是您应用程序中的安全网址(https)

https://app.vssps.visualstudio.com/oauth2/authorize
    ?client_id={app ID}
    &response_type=Assertion
    &state={state}
    &scope={scope}
    &redirect_uri={callback URL}

假设用户接受授权,Azure DevOps将使用URL中的授权代码重定向到您的回调位置。

https://fabrikam.azurewebsites.net/myapp/oauth-callback
    ?code={authorization code}
    &state={state}

您可以参考以下情况:

Access Azure DevOps REST API with oAuth