2013-04-11 28 views
5

我有一個ACS名稱空間,其中設置了WS聯合身份驗證提供程序。由於我使用的是Visual Studio 2012,因此我使用Identity和Access Tool創建了依賴方。該工具使用我在創建依賴方時給予它的領域和返回url值(我使用Azure雲服務url來部署我的項目 - 即http://myapp.cloudapp.net)。在運行該工具後,我的依賴方在規則組中只有一條規則 - 傳遞[依賴方]的所有聲明。我只用這一條規則測試了我的應用程序的ACS,並且在生成了WS-Federation身份提供者的所有規則之後。Azure訪問控制服務(ACS) - ACS50001:未找到標識符爲「https:// [namespace] .accesscontrol.windows.net /'的依賴方

無論規則組中的規則如何,我都會在我的問題的標題中看到錯誤。我的瀏覽器被重定向到ACS,但由於某些原因,它無法找到正確的依賴方。我在兩個不同的Azure帳戶中創建了ACS名稱空間,身份提供者和依賴方,結果完全相同。

我也嘗試將我的項目發佈到具有http和https端點的Azure雲服務,並且兩個端點都產生相同的結果。

WS聯合身份提供程序的聯合元數據來自Windows Azure Active Directory。

UPDATE FederationConfiguration從web.config部分,:

<federationConfiguration> 
     <cookieHandler requireSsl="false" /> 
     <wsFederation passiveRedirectEnabled="true" issuer="https://[MyNamespace].accesscontrol.windows.net/v2/wsfederation" realm="http://[MyApp].cloudapp.net/" requireHttps="false" /> 
</federationConfiguration> 

更新2: 仍然沒有解決方案。看起來問題來自於我設置了自己的ACS身份提供程序,並從Windows Azure Active Directory(WAAD)爲該身份提供程序下載了聯合身份驗證元數據。這基本上將2個ACS實例鏈接在一起。當我的應用程序重定向到我的ACS時,它通過我的應用程序的url作爲領域。然後,我的ACS重定向到身份提供者WAAD,並將自己的URL作爲領域傳遞。這就是爲什麼我得到的錯誤具有依賴方標識符=我自己的ACS管理門戶網站的url的奇特特徵。我不確定爲什麼它不會從我的應用程序一直通過WAAD。

+1

你可以顯示你的web.config部分? – 2013-04-11 06:32:56

+1

它看起來像你把內的領域密鑰而不是http://myapp.cloudapp.net – 2013-04-11 06:52:06

+0

嗨Danila,我把federationConfiguration部分那裏。看起來你提到的兩個值都存在...... – 2013-04-11 13:57:44

回答

4

嗯,這個問題的答案比我預想的要更隱蔽 - 我不得不與我的CRM在線WAAD運行下面的PowerShell腳本:

Connect-MsolService 
Import-Module MSOnlineExtended -Force 
$replyUrl = New-MsolServicePrincipalAddresses –Address "https://lefederateur.accesscontrol.windows.net/" 
New-MsolServicePrincipal –ServicePrincipalNames @(「https://lefederateur.accesscontrol.windows.net/」) -DisplayName 「LeFederateur ACS Namespace」 -Addresses $replyUrl 

這告訴WAAD認識我的ACS命名空間,因此它不會拋出錯誤說ACS名稱空間不是有效的依賴方標識符。在這裏閱讀整個過程:

http://www.cloudidentity.com/blog/2012/11/07/provisioning-a-directory-tenant-as-an-identity-provider-in-an-acs-namespace/

由於Azure支持,我現在是過去的錯誤。

1

進入Azure ACS管理門戶。打開依賴方應用程序,然後選擇您爲此應用程序配置的依賴方。確保字段「Realm」與<federationConfiguration><wsFederation realm=""/>下的web.config中的Realm完全匹配。

+0

嗨內森,謝謝你的答案。它確實;身份和訪問工具管理所有這些。答案實際上是需要將WAAD配置爲通過一些不明確的PowerShell腳本來識別我的ACS依賴方。 – 2013-04-17 20:24:04

0

所有你需要是設置訪問ACS在Active Directory安裝 PowerShell的命令行開關天青後,運行下面的命令,由安德魯·

連接,MsolService

導入模塊MSOnlineExtended -Force $提到replyUrl =新MsolServicePrincipalAddresses - 地址 「https://xxx.accesscontrol.windows.net/

新MsolServicePrincipal -ServicePrincipalNames @( 「https://xxx.accesscontrol.windows.net/」)-DisplayName 「XXX ACS命名空間」 -Addresses $ replyUrl

0

在這個情況下,任何人絆倒,雙這裏檢查你的境界代碼:

wsFederation passiveRedirectEnabled =「真」發行人=「必須匹配端點」的境界=「必須匹配觀衆URI」 requireHttps =「真」

<add key="ida:Realm" value="must match audience uri" /> 
<add key="ida:AudienceUri" value="must match audience uri" /> 

我的問題是/我的URI的,我本能地添加結束 - 即https://somuri.com/ - 而門戶網站設置爲https://someuri.com

刪除/工作。

相關問題