gpt4 book ai didi

azure - 基于应用程序 token 的请求未返回 401 未经授权

转载 作者:行者123 更新时间:2023-12-03 04:42:00 24 4
gpt4 key购买 nike

我有一个后台应用程序,它应该连接到数据目录并获取与表相关的信息。由于它是后台应用程序,因此我无法进行任何用户干预来验证数据目录请求。所以我尝试使用 ClientID 和 ClientSecret 进行身份验证。

string authorityUri = "https://login.microsoftonline.com/{adtenanthere}";

string resourceUri = "https://datacatalog.azure.com";

string clientId = "{clientidhere}";

string clientSecret = "{clientsecrethere}";

AuthenticationContext authContext1 = new AuthenticationContext(authorityUri, false);

ClientCredential credential = new ClientCredential(clientId, clientSecret);

AuthenticationResult authResult = authContext1.AcquireTokenAsync(resourceUri, credential).Result;

string token = authResult.CreateAuthorizationHeader();

使用此方法获取 token 成功,但是当我使用此 token 进行数据目录 API 请求时,请求返回“401 - 未经授权:由于凭据无效,访问被拒绝。您无权查看此内容”使用您提供的凭据的目录或页面”。

请建议我在这里可能缺少什么!

最佳答案

首先在 Azure 广告权限中检查您的应用程序权限。我在应用程序Azure数据目录中检查了“没有权限”。因此,您必须使用用户凭据进行访问。请参阅下面的图像

Application permission is based on client credentials. the delegate permission based on login user permission.

您应该需要没有登录弹出窗口,您必须传递用户凭据直接在 authContext1.AcquireTokenAsync 中。

enter image description here

enter image description here

因此,更改并检查您是否收到 401 Unauthorized

我认为这对你有帮助。

关于azure - 基于应用程序 token 的请求未返回 401 未经授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43173613/

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