如何使用Node.js在MSAL的帮助下获得Azure DevOps PAT列表



我想在我的Azure功能应用程序中获得所有Azure DevOps PAT列表。我在Azure功能应用程序中使用Node.Js。

为了获得Azure DevOps PAT列表,我使用这个REST API。

对于身份验证,我使用MSAL库。因此,在获得验证令牌之后,当我使用它来调用Azure DevOps PAT列表REST API时,我没有获得PAT列表。下面是我的函数应用程序代码。

'use strict';
const config = require('../config');
const rp = require('request-promise');
const msal = require('@azure/msal-node');
module.exports = async function (context, req) {
const clientId = 'config.DEFAULT_CLIENT_ID';
const clientSecret = 'config.DEFAULT_CLIENT_SECRET';
const tenantId = 'config.DEFAULT_TENANT_ID';

let authorityHostUrl = 'https://login.windows.net';
let authorityUrl = authorityHostUrl + '/' + tenantId;
const configuration = {
auth: {
clientId: clientId,
authority: authorityUrl,
clientSecret: clientSecret
}
};
// Create msal application object
const cca = new msal.ConfidentialClientApplication(configuration);
// With client credentials flows permissions need to be granted in the portal by a tenant administrator.
// The scope is always in the format "<resource>/.default"
const clientCredentialRequest = {
scopes: ["499b84ac-1321-427f-aa17-267ca6975798/.default"], // replace with your resource
};
const credentials = await cca.acquireTokenByClientCredential(clientCredentialRequest);
const tokenType = credentials.tokenType;
const token = credentials.accessToken;
const apiToken = `${tokenType} ${token}`;  // 'Bearer <token>'
let url = `https://vssps.dev.azure.com/{organization}/_apis/tokens/pats?api-version=6.1-preview.1`;
const header = {
Authorization: `${apiToken}`
};
const result = await rp({
url: url,
json: true,
headers: header,
mode: 'cors',
cache: 'no-cache',
method: 'GET'
});
context.res = {
body: result
};
}

我没有得到PAT列表,但得到以下输出:

匿名退出当前在您的环境中启用了Microsoft Internet Explorer的增强安全配置。这种增强的安全级别可以防止我们的web集成体验无法正确显示或执行。要继续您的操作,请禁用此配置或联系您的管理员。

为什么我没有得到PAT列表?

请显示您请求的引用状态,从描述来看,您似乎正在使用PAT。

PAT是基本值。但是在你的代码中你提到了// 'Bearer <token>'

最新更新