gpt4 book ai didi

代表流程的 azure 广告范围始终重新审视所有同意的范围

转载 作者:行者123 更新时间:2023-12-02 07:25:20 25 4
gpt4 key购买 nike

我正在尝试构建一个作为 Nodejs/React 应用程序运行的应用程序。它调用也使用 onbehalf of flow 在 azure ad 中注册的外部 api。

基于登录的用户,我想代表登录的用户请求将某些范围传递给服务。我的代码如下所示:

const request = require('request');

function getApiTokenOnBehalfOf(req, callback) {

var options = {
method: 'POST',
url: 'https://login.microsoftonline.com/organizations/oauth2/v2.0/token',
headers:
{
'Content-Type': 'application/x-www-form-urlencoded'
},
form:
{
assertion: req.user.accessToken,
grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
client_id: process.env.PASSPORT_AZUREAD_ID,
client_secret: process.env.PASSPORT_AZUREAD_SECRET,
scope: 'https://`myorg.com/api/Users.Read.All',
requested_token_use: 'on_behalf_of'
}
};

request(options, callback);

}

出于某种原因, token 中返回的范围始终包含用户曾经同意此应用程序的所有范围。如何将返回给用户的 token 限制为我在通话中要求的 token ?

最佳答案

如果您尝试获取访问 token 来访问不同的资源,则 scps 和权限并不重要,因为受众会有所不同。

但是,如果您确实尝试仔细控制权限,则默认范围将仅返回静态权限,因此仅应通过访问 token 返回您期望的权限。请参阅此处的文档以获取与此相关的更多信息, https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#the-default-scope

关于代表流程的 azure 广告范围始终重新审视所有同意的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56152211/

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