2011-03-13 42 views
0

假設有兩家公司:.NET是.NET商店,A.Java是Java商店。 每家公司的用戶都需要訪問其他公司的網站,以便兩家公司使用ADFS和Oracle身份聯合或OpenSSO聯合來建立聯盟。如何在.NET(ADFS/WIF)和Java(Federation)之間映射屬性

在.NET世界中,屬性作爲IClaimsPrincipal和IClaimsIdentity中的聲明來訪問。

在Java世界中,這些屬性是作爲HTTP標頭被訪問的。

是否總會架構做這種映射自動即

如果A.NET用戶訪問一個網站B.Java?他們得到他們的權利屬性?

如果一個B.Java用戶訪問一個A.NET站點,他們是否將他們的屬性作爲頭文件?

回答

1

假設您可以在兩邊都使用WS-Federation,那麼在這兩種情況下,您要處理的主要工件都是SAML令牌。

通常,您的聯合基礎結構完全獨立於應用程序堆棧。無論哪種情況,ADFS都會發出SAML令牌(對於Java應用程序和.NET應用程序)。 OIF也將不得不爲兩組用戶簽發SAML令牌。在.NET世界中,WIF將解析/驗證SAML令牌等,將其轉換爲表示其中信息(索賠,發行者等)的.NET對象模型。該對象模型是ClaimsPrincipal(以及所有相關的接口和類型)。你將不得不看在Java世界上的WIF等價物。但無論哪種情況,輸入都是SAML令牌。

在你的情況很可能會出現在兩個STS的令牌轉換:

對於.NET應用程序:

從B公司

1-用戶在OIF認證,並得到一個SAML令牌對於公司A 2用戶將令牌發送到ADFS 3 ADFS從B讀取令牌,驗證併發布新令牌(可能很可能添加/轉換/刪除聲明) 4用戶將已轉換的令牌發送到應用程序A

來自用戶的序列在A上訪問B上的Java應用程序是完全一樣的。注意在這種情況下存在雙向信任(A公司信任B發行人,反之亦然)