2013-04-11 30 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

删除/工作。

相关问题