簡體   English   中英

IIS 上多個站點的 Shibboleth

[英]Shibboleth for multiple sites on IIS

我正在嘗試為一個 IIS 實例上的兩個站點配置 Shibboleth 服務提供程序:

  • 前端采用 static HTML - 只是 SPA - 例如 site.com
  • 使用 API 的后端 - 僅 REST - 例如 site-api.com

因此,當我打開第一個入口點時,我有 302 響應並重定向到 IdP,在輸入憑據后 - 重定向到 site.com/Shibboleth.sso/SAML2/POST 並且一切正常。

我的 SPA 正在瀏覽器中運行,並向 site-api.com 發出 AJAX 請求。 這是一個問題,因為我有 302 響應並再次重定向到 IdP。 如果瀏覽器發出請求,我沒有任何問題,因為會自動重定向到 IdP 瀏覽器處理。 在通過 IdP 上的 session cookie 進行身份驗證后,它再次重定向到 site-api.com/Shibboleth.sso/SAML2/POST。

如何在兩個站點之間共享 session? 如果用戶已經在 site.com 上通過身份驗證,是否可以在第一次請求到 site-api.com 后不進行重定向。

我已經用於第二個站點:

        <ApplicationOverride id="site-api" entityID="https://site-api.com/shibboleth" />

另外,我為 site-api.com 注冊了 ISAPI 和 RequestMap。 從技術上講,它適用於 site.com。

我想我可以通過使用 XML 配置文件中的屬性以某種方式共享 session,但對我沒有任何作用。 請幫忙。 :)

在 Shibboleth SP 中使用 ApplicationOverride 將輔助應用程序作為單獨的服務調用,即您已確定該 entityID 是唯一的。 在輔助 API 的情況下,我不會使用 Shibboleth 保護它,也就是說,如果您從已經過身份驗證的站點進行 RESTful 調用,為什么要使用 Shibboleth SP(它是為確保針對 IdP 進行身份驗證而構建的)來保護它. 我認為您需要重新考慮您的身份驗證工作流程......一個更合理的想法:

(1) 使用 SAML/Shibboleth 從 IdP 獲取 session for site.com,

(2)基於SP session 生成一個應用程序session(review Sessions in the SAML flow,其實有幾個,不只是一個SP session)。 更不用說 Shibboleth 是為身份驗證而不是授權而構建的。

(3) Make a REST API call based on whatever API security mechanism you want... ie you could build a JWT based on the SAML assertion data and verify it's valid at the API endpoint because you know the certs.

SAML web 流程並不是真正為 API 構建的,就像您在這里嘗試使用它一樣……您試圖擺脫的 302,這是 SAML 工作流程中的必需品。

暫無
暫無

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

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