我们正在开发一个与其后端API通信的web应用程序。API是在Azure核心中编写的,并在.NET中运行,并且正在使用针对Azure Active Directory的OpenID身份验证。身份验证过程的配置如下(如您所见,我们使用的是基于cookie的身份验证):
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = AzureADDefaults.CookieScheme;
options.DefaultChallengeScheme = AzureADDefaults.AuthenticationScheme;
options.DefaultSignInScheme = AzureADDefaults.CookieScheme;
})
.AddAzureAD(options =>
{
configuration.Bind("AzureAd", options);
});
services.Configure<CookieAuthenticationOptions>(AzureADDefaults.CookieScheme, options =>
{
options.Cookie.HttpOnly = true;
options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
options.Cookie.SameSite = SameSiteMode.Lax;
options.Cookie.MaxAge = new TimeSpan(7, 0, 0, 0);
});
services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
{
options.Authority = options.Authority + "/v2.0/";
options.TokenValidationParameters.ValidateIssuer = false;
});我们想要在Postman中测试我们的应用程序API,并且我们已经设置了一个针对AAD的身份验证请求(配置如下)。Postman能够通过身份验证,我们得到了access_token,但是对API的请求失败了。

当我们比较Postman cookie和浏览器cookie时,我们发现包含cookie的浏览器缺少.AspNetCore.AzureADCookie。这是周五下午,我们真的进入了绝望阶段,不知道可能出了什么问题。我们如何让Postman调用AAD,在响应中返回这样的cookie并将其添加到API请求中。
发布于 2021-01-14 00:22:54
您应该能够通过安装Postman Interceptor扩展来使用您的浏览器cookie。请尝试相同的方法,并让我知道它是否有效。
您还可以引用以下-> Postman is not using cookie
https://stackoverflow.com/questions/65631351
复制相似问题