2014-11-21 37 views
16

我們的一個Web應用程序想要連接ADFS 2.0服務器以獲取憑證令牌並根據那。 ADFS服務器管理員要求我們給他們一個聯合元數據XML文件,讓他們創建依賴方信任。我搜索並只發現如何使用URL下載ADFS服務器的聯邦元數據XML - https:// [adfs服務器名稱] /federationmetadata/2007-06/federationmetadata.xml 但是可能沒有找到任何指南來創建聯邦元數據XML用於創建「依賴方信任」和「索賠提供商信任」。有沒有創建這些元數據文件的工具?請分享一些關於如何創建的想法。如何爲ADFS 2.0的「依賴方信任」和「聲明提供程序信任」創建聯合元數據XML

感謝

回答我的問題:

我發現聯合會實用工具WindowsIdentityFoundation-SDK-4.0http://www.microsoft.com/en-ca/download/details.aspx?id=4451將做到這一點。

+0

你能幫忙嗎?你是如何使用這個工具創建聯邦元數據的。我也試過這個工具。它要求提供web.config路徑和URI。之後,有3個選項1.沒有STS 2.創建新的STS(Diasbled)3.使用現有的STS。但爲什麼第二個選項被禁用。 – SUN 2017-04-18 14:51:45

+0

使用第三個選項。輸入您的應用程序web.config文件路徑爲web.config路徑並使用ADFS服務器的元數據url – Mohan 2017-11-13 13:12:44

回答

23

其實URL是

https://server/federationmetadata/2007-06/federationmetadata.xml 

沒有工具,我的認識。可以使用Microsoft.IdentityModel.Protocols.WSFederation.Metadata類或參考Generating Federation Metadata Dynamically

看一看 「Thinktecture.IdentityServer.v2/src/Libraries/Thinktecture.IdentityServer.Protocols/FederationMetadata」在Thinktecture.IdentityServer.v2

或者如果您的應用程序使用WIF它在元數據目錄中。

更新:

在WIF,除非你想令牌進行加密,則不需要證書。這對於ADFS來說更是如此,因爲它必須簽署令牌和應用程序。需要公鑰來驗證。

例子:

<?xml version="1.0" encoding="utf-8"?> 
<EntityDescriptor ID="_5b6cd05c-a5e3-470d-a2fc-6c6f66633d1b" entityID="http://localhost/app/" xmlns="urn:oasis:names:tc:SAML:2.0:metadata"> 
    <RoleDescriptor xsi:type="fed:ApplicationServiceType" xmlns:fed="http://docs.oasis-open.org/wsfed/federation/200706" protocolSupportEnumeration="http://docs.oasis-open.org/wsfed/federation/200706" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
     <fed:ClaimTypesRequested> 
      <auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706" /> 
      <auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706" /> 
     </fed:ClaimTypesRequested> 
     <fed:TargetScopes> 
      <EndpointReference xmlns="http://www.w3.org/2005/08/addressing"> 
       <Address>http://localhost/app/</Address> 
      </EndpointReference> 
     </fed:TargetScopes> 
     <fed:PassiveRequestorEndpoint> 
      <EndpointReference xmlns="http://www.w3.org/2005/08/addressing"> 
       <Address>http://localhost/app/</Address> 
      </EndpointReference> 
     </fed:PassiveRequestorEndpoint> 
    </RoleDescriptor> 
</EntityDescriptor> 

其中localhost \程序\需要將您的應用程序的網址。注意結束斜線!

0

用於創建「Replaying party trust」的元數據xml不是ADFS federation metadta,而是SP(Saml issuer)的元數據xml。

1

要創建SAML RP元數據,您可以在samltool.com上找到一個基於Web的工具,它可以提供幫助。我還沒有找到一個對WS-比聯合會總會工具等......

我也是最近發現,支持AD FS/WS-聯合會

4

我不得不近日做到這一點,有永不網站rcFederation用過的 。Net或ADFS,並且只有我試圖集成的服務器(STS)元數據URL。我有一臺基本的Windows 10個人電腦,並試圖設置一個Node.js webapp作爲RP。這是我做過什麼:

  1. 在10場個人電腦,去控制面板 - >程序和功能 - >打開Windows功能打開或關閉 - >啓用Windows標識基礎3.5

  2. 安裝了Windows Identity Foundation SDK 4.0(由原作者引用)。

  3. 創建其中含有一個基本的Web.config文件:

    <?xml version="1.0" encoding="utf-8" ?> 
    <configuration> 
        <system.web> 
    
        </system.web> 
    </configuration> 
    
  4. 在SDK安裝目錄,我發現FedUtil.exe和FedUtilSampleUserInput.xml。該示例文件解釋了FedUtil.exe要請求的所有參數,這非常有幫助。

  5. 以管理員身份啓動FedUtil.exe(在文件資源管理器中單擊鼠標右鍵),提供剛纔創建的Web.config文件,webapp URL,作爲「現有STS」的服務器(STS)元數據URL以及選擇創建一個新的默認證書。

  6. 瞧,一個FederationMetadata.xml文件被生成,我的Web.config文件自動更新。

  7. 然後,我在更新後的Web.config文件中取消了一些聲明類型的註釋並重新運行FedUtil.exe,然後使用我需要的STS更新聯合身份驗證類型(例如, ,電子郵件,名字,姓氏)

  8. 將FederationMetadata.xml提供給STS管理員,它工作正常!

唯一的缺點是,這一切都需要一臺Windows機器......我不知道我會在Mac或Linux上做什麼!

+0

嗨,理查德,你能進一步幫助我嗎?我想將我的網站與客戶端的adfs服務器之一集成在一起。我google了很多。我對ADFS非常陌生 – Mohan 2017-11-13 13:36:24

相關問題