gpt4 book ai didi

azure - 使用 Azure B2C 以及具有不同域的多个自定义策略的 SSO

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

我已经花了几个星期的时间来做这件事了。我需要使用 Azure AD B2C 自定义子域实现下一个场景:例如,具有 ssositeA.mydomain.com具有自定义政策 b2c_1a_signin_siteAssositeB.mydomain.com具有自定义政策 b2c_1a_signin_siteB当登录 SSO 时 siteA登录siteB .

我已经测试过了,这至少不是默认行为。拥有中央 sso 是可行的:例如 sso.mydomain/<tenant id>/b2c_1a_signin_siteAsso.mydomain/<tenant id>/b2c_1a_signin_siteB 。但是,这并不理想,因为我们希望在子域中有一个与品牌相关的名称。

cookie 与完整的子域一起保存:

.ssositeA.mydomain.com
.ssositeB.mydomain.com

有没有办法表明 ssositeA 和 ssositeB 的 cookie 保存在域级别,这样我们就可以了

.mydomain.com (as cookie's Domain)

我们可以在两个登录站点之间共享 session 吗?

最佳答案

• 是的,您当然可以在域级别保存 cookie,而不是为 SSO 的每个子域发出 cookie,即使这些子域的根域是相同的。根据 RFC 2109RFC 6265如果 Cookie 域参数中的域名不以句点开头,则不会让子域读取该域名cookie,如果它确实以句点开头,则所有子域都可以完全访问该 cookie 的值,即来自请求主机“subdomain.myserver.com”的“Domain=”的 Set-Cookie .myserver.com' 将被接受,其中源服务器的完全限定主机名必须与 cookie 的 Domain 属性域匹配

因此,通过将 header 中 cookie 的 Domain 属性设置为子域的域,可以指示浏览器将 cookie 发送到所有子域,如下所示:-

Response.Cookies(“UID”)=1

Response.Cookies(“UID”).Domain = “.myserver.com” ‘

此外,您还可以设置 header 中的“Domain”属性,如下所示:-

 Set-Cookie: name=value; domain=.mydomain.com

注意: - 域属性必须与请求 URL 域匹配才能有效,这基本上意味着它必须是请求域 super 域。因此,这适用于问题中的两个示例,以及两个单独的子域之间的共享。

有关此内容的更多信息,请参阅以下链接:-

Share cookie between subdomain and domain

https://serverfault.com/questions/153409/can-subdomain-example-com-set-a-cookie-that-can-be-read-by-example-com

关于azure - 使用 Azure B2C 以及具有不同域的多个自定义策略的 SSO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72061087/

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