Cookies 仅当启用了第三方cookie时,才使用身份验证代码进行Azure AD身份验证

Cookies 仅当启用了第三方cookie时,才使用身份验证代码进行Azure AD身份验证,cookies,azure-active-directory,cors,Cookies,Azure Active Directory,Cors,我们正在使用Azure AD并注册了一个应用程序进行身份验证。该应用程序是ASP.net服务器端和客户端应用程序。最初,这是通过隐式流进行设置的,但这动摇了web浏览器跨站点cookie保护。身份验证有效,但前提是浏览器明确允许第三方cookie Microsoft指定在使用身份验证代码流时,单页应用程序可以克服此问题。为了完成这项工作,我们使用与其提供的程序非常匹配的配置实现了angular auth oidc client(而不是msal angular,后者尚未支持auth code)。A

我们正在使用Azure AD并注册了一个应用程序进行身份验证。该应用程序是ASP.net服务器端和客户端应用程序。最初,这是通过隐式流进行设置的,但这动摇了web浏览器跨站点cookie保护。身份验证有效,但前提是浏览器明确允许第三方cookie

Microsoft指定在使用身份验证代码流时,单页应用程序可以克服此问题。为了完成这项工作,我们使用与其提供的程序非常匹配的配置实现了
angular auth oidc client
(而不是
msal angular
,后者尚未支持auth code)。ASP.net应用程序使用
Microsoft.Identity.Web
,其设置已更改为
code
响应类型

Azure AD应用程序注册已根据Microsoft标准进行修改。我已经包括了页面的屏幕截图,突出显示隐式流被禁用,SPA重定向URI符合PKCE授权代码流的条件

但是,当阻止浏览器中的第三方cookie时,根据CORS策略(Safari、Chrome和私人浏览中的两者),身份验证失败。在浏览器中允许第三方cookie时,身份验证成功

问题我们可以调查什么是不遵守CORS政策的原因

Microsoft.Identity.Web
配置:

“AzureAd”:{
“实例”:https://login.microsoftonline.com/",
“租户”:“组织”,
“客户端id”:“删除了我们的azure ad客户端id”,
“回调路径”:“/登录oidc”,
“SignedOutCallbackPath”:“/注销回调oidc”,
“ResponseType”:“代码”
},

基于您共享重定向URI的图像
http://localhost:5000
适用于SPA应用和
http://localhost:5000/signin-oidc
用于web应用程序

但在您的配置文件中,
CallbackPath
是用于web应用程序的

PKCE的授权代码流仅适用于单页应用程序。请通过


请使用
CallbackPath
和SPA应用程序的URL来解决此问题。

感谢您的回复。我怀疑我的配置有一个更根本的问题。如果我将
Microsoft.Identity.Web
CallbackPath
设置为SPA重定向URI,则中间件没有身份验证(我收到
消息。状态为null或空
错误,位置未知)。首先,我将继续尝试并理解所有示例项目。我创建了一个指南(或其他指南的汇编),以展示如何将Azure AD上的SPA与Web API集成,并使用正确的身份验证代码流设置。该指南是自述文件,但我还在存储库中包含了一个测试项目: