2013-10-20 113 views
0

當用戶正在查看SP並且他單擊「登錄」按鈕時,會打開指向IDP登錄表單的彈出窗口。在用戶提供其用戶名/密碼並在彈出窗口中提交登錄表單後,假設憑據有效,如何將IDP生成的SAML斷言返回給SP。我可以使用window.postMessage嗎?從IDP向SP發送SAML斷言

回答

1

IDP的響應(包括SAML聲明)將發送到您的SP的Assertion Consumer Service URL。此時,您可以隨心所欲地做所有事情,並假設SAML斷言是正確的,則在SP級別創建經過身份驗證的登錄會話。

根據您的使用情況,您現在可以退出彈出窗口並刷新(也許部分)父窗口,以便它能夠接收登錄的用戶。您可以使用windows.opener對象在父窗口上調用函數。 window.postMessage的主要用途是跨域之間的窗口/幀之間發送數據。但是因爲你在SP URL上收到回覆,你不應該需要這個。

根據您的故事,我想知道您是否正在通過向IDP發送AuthnRequest來執行SP發起的SSO?

+0

「IDP的響應(包括SAML斷言)將轉到SP的斷言消費者服務URL。」你的意思是「將去」?這基本上是我的問題。 – tlovett1

+0

此外,彈出窗口(位於IDP上)將位於與SP不同的域上。該軟件將免費分發,因此SP不是可信站點。不知道這是否重要。 – tlovett1

+0

當您通過Web瀏覽器SSO配置文件使用SAML時,SP應提供斷言消費者服務URL。 IDP通過交換元數據必須知道該URL。換句話說,您應該向IDP註冊SP。如果這是不可能的,我不確定SAML是否可以幫助您。 –