gpt4 book ai didi

azure-web-app-service - Azure AD 应用服务/.auth/refresh 端点返回 401.71 Unauthorized

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

我正在使用普通 MVC 5 Web 应用程序测试 Azure AD 的 Azure 应用服务身份验证/授权。我遵循了 https://cgillum.tech/2016/03/07/app-service-token-store/ 上的教程和 http://cgillum.tech/2016/03/25/app-service-auth-aad-graph-api/

我可以确认/.auth/me 端点运行正常,并且缓存中确实有刷新和访问 token 。

应用程序注册配置为具有 SharePoint Online 权限。

但是,/.auth/refresh 每次都失败,401.71 未经授权。 Web 应用程序上的详细日志流仅提供一般错误消息。

我在各种论坛的评论部分看到了一个值的引用:“access_type=offline”,这可能需要也可能不需要包含在 authsettings 的“additionalLoginParams”键中,尽管它通常在 Google auth 的上下文中提到。

关于在使用 AAD 时是否需要添加,是否有明确的答案?教程中没有提到的任何其他权限?

这是我用来进行测试调用的代码

 string endpoint = myAppUrl + "/.auth/refresh";

string idToken = this.Request.Headers["X-MS-TOKEN-AAD-ID-TOKEN"];
string accessToken = this.Request.Headers["X-MS-TOKEN-AAD-ACCESS-TOKEN"];
string refreshToken = this.Request.Headers["X-MS-TOKEN-AAD-REFRESH-TOKEN"];

using (HttpClient client = new HttpClient())
{
try
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
HttpResponseMessage response = client.GetAsync(endpoint).Result;
if (response.IsSuccessStatusCode)
{
string content = response.Content.ReadAsStringAsync().Result;
}
}
catch (Exception oops)
{
string oopsMessage = oops.Message;
}
}

最佳答案

问题是/.auth/refresh API 不适用于 AAD 不记名 token 。相反,您需要使用 session cookie(AppServiceAuthSession cookie)或 session token (x-zumo-auth header ),它们是登录操作的输出。

很抱歉给您带来的不便和缺乏明确的错误信息。我们将研究在 future 版本中添加对此的支持。

关于azure-web-app-service - Azure AD 应用服务/.auth/refresh 端点返回 401.71 Unauthorized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42519343/

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