簡體   English   中英

SSO 使用 Azure B2C 和具有不同域的多個自定義策略

[英]SSO using Azure B2C with multiple custom policies with different domains

我現在已經有幾個星期了。 我需要使用 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 但是,這並不理想,因為我們希望在子域中有一個與品牌相關的名稱。

cookies 與完整的子域一起保存:

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

有沒有辦法表明 ssositeA 和 ssositeB cookies 保存在域級別,所以我們會有

.mydomain.com (as cookie's Domain)

我們可以在兩個登錄站點之間共享 session 嗎?

• 是的,您當然可以在域級別保存 cookies,而不是為 SSO 的每個子域發出 cookies,即使這些子域的根域相同。 根據RFC 2109RFC 6265如果 cookie 的域參數中的域名不以句點開頭,那么它不會讓子域讀取該 cookie,如果它以句點開頭,那么所有子域都將具有完全訪問權限該 cookie 的值,即Set-Cookie from request-host 'subdomain.myserver.com' for 'Domain=.myserver.com' would be accepted wherein the origin server's fully-qualified host name must domain-match the Domain attribute of the cookie

因此,通過將header 中 cookie 的 Domain 屬性設置為子域的域,這樣您就可以指示瀏覽器將 cookie 發送到所有子域,如下所示:-

Response.Cookies(“UID”)=1

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

此外,您可以設置 header 中存在的“域”屬性,如下所示:-

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

注意:- The domain attribute must domain-match the request URL for it to be valid ,這基本上意味着它必須是請求域超級域 因此,這適用於問題中的兩個示例,以及兩個單獨的子域之間的共享。

有關這方面的更多信息,請參閱以下鏈接:-

在子域和域之間共享 cookie

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM