azure - 如何在 MSAL 的帮助下使用 Node.js 获取 Azure DevOps PAT 列表
问题描述
我想在我的 Azure 函数应用中获取所有 Azure DevOps PAT 列表。我在 Azure 函数应用程序中使用 Node.Js。
为了获取 Azure DevOps PAT 列表,我使用了这个REST API。
所以对于身份验证,我使用的是MSAL library。因此,在获得身份验证令牌后,当我使用它调用 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>'
推荐阅读
- postgresql - 当另一个值更改时如何重置自动递增的值?
- node.js - 几次成功迭代后,React Native 应用程序无法访问树莓派 3B 上的 Node.js 服务器
- swift - 当我尝试运行名为“Thread 1: Signal SIGABRT”的 Xcode 项目时弹出错误
- azure - Azure 函数消费计划限制
- c++ - 通过野兽网络套接字发送二进制数据(在 C++ 中)
- c++11 - 归并排序的归并功能的分段错误
- apache-spark - 无法使用 spark 访问 hive
- html - 可以访问网络摄像头,无法显示视频
- gulp - 升级到 Gulp 4 后实时重新加载无法正常工作
- reactjs - 使用react cdn时如何在react中使用export