gpt4 book ai didi

javascript - 在 Postman 预请求脚本中获取 Azure REST 访问 token

转载 作者:行者123 更新时间:2023-12-02 08:29:04 26 4
gpt4 key购买 nike

有谁知道在 Postman 预请求脚本中获取 Azure 访问 token 的最佳方法是什么?尝试获取当前登录用户的 token ,而无需创建服务主体,如 How to Call the Azure REST APIs with Postman In No Time Flat 中所述。 .

我在预请求脚本中尝试过:

var msRestAzure = require('ms-rest-azure');
function getAccessToken(){
return msRestAzure.loginWithAppServiceMSI({resource: 'https://management.azure.com/'});
}
pm.globals.set("access_token", getAccessToken());

但它不断抛出错误:评估预请求脚本时出错:错误:找不到模块“ms-rest-azure”。截图如下: enter image description here

最佳答案

应用服务中需要使用loginWithAppServiceMSI,它将使用Managed Identity应用服务获取token的方法,在Postman预请求脚本中,不支持使用。

I have restricted access and unable to create service principal that has the access I need. Want to test locally with my credentials.

在这种情况下,如果您想使用您的用户凭据来获取预请求脚本中的 token ,您的选择是使用 Azure AD ROPC flow .

注意:

  1. 由于安全问题,不建议使用 ROPC 流程,您需要在 postman 中公开用户名和密码,并且如果您的用户帐户启用了 MFA,则该流程将不起作用。

  2. 要使用此流程,您还需要一个 AD 应用程序(应用程序注册),如果您没有权限创建一个,解决方法是使用 Microsoft 内置应用程序,例如Microsoft Azure PowerShell,您可以使用这种方式进行测试,但我不建议您在生产环境中使用。

<小时/>

请按照以下步骤操作:

1.更改 postman 集合中的预请求脚本,如下所示。

pm.sendRequest({
url: 'https://login.microsoftonline.com/' + pm.variables.get("tenantId") + '/oauth2/token',
method: 'POST',
header: 'Content-Type: application/x-www-form-urlencoded',
body: {
mode: 'urlencoded',
urlencoded: [
{key: "grant_type", value: "password", disabled: false},
{key: "client_id", value: pm.variables.get("clientId"), disabled: false},
{key: "username", value: pm.variables.get("username"), disabled: false},
{key: "resource", value: pm.variables.get("resource"), disabled: false},
{key: "password", value: pm.variables.get("password"), disabled: false}
]
}
}, function (err, res) {
pm.globals.set("bearerToken", res.json().access_token);
});

2.使用如下变量。

clientId
resource
subscriptionId
tenantId
username
password

注意:clientId1950a258-227b-4e31-a9cf-717495945fc2,即 clientId Microsoft 应用程序 Microsoft Azure PowerShell,请勿更改它。

enter image description here

3.其他设置与blog相同您提供了,然后发送请求以获取资源组,在我这边工作正常。

enter image description here

关于javascript - 在 Postman 预请求脚本中获取 Azure REST 访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62639992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com