我有一个ACS名称空间,并设置了WS-Federation身份提供程序。由于我使用的是Visual Studio 2012,因此我使用了身份和访问工具来创建依赖方。该工具使用领域并返回我在创建依赖方时提供的url值(我使用Azure云服务URL,我正在部署我的项目 - 即http://myapp.cloudapp.net)。运行该工具后,我的依赖方规则组中只有一条规则 - 通过[依赖方]的所有声明。我只用一条规则测试了我的应用程序的ACS,并且在为WS-Federation身份提供者生成了所有规则之后。
无论规则组中的规则如何,我都会在问题的标题中收到错误。我的浏览器被重定向到ACS,但由于某种原因它无法找到正确的依赖方。我在两个不同的Azure帐户中创建了一个ACS命名空间,身份提供程序和依赖方,结果完全相同。
我还尝试使用http和https端点将我的项目发布到Azure云服务,并且两个端点都会产生相同的结果。
WS-Federation身份提供商的联合元数据来自Windows Azure Active Directory。
UPDATE 来自web.config的FederationConfiguration部分:
<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一直没有通过领域。
答案 0 :(得分: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命名空间不是有效的依赖方标识符。在这里阅读整个过程:
感谢Azure支持,我现在已经过了错误。
答案 1 :(得分:1)
进入Azure ACS管理门户。打开信赖方应用程序,然后选择您为此应用程序配置的信赖方。确保“Realm”字段与<federationConfiguration><wsFederation realm=""/>
下web.config中Realm的字符完全匹配。
答案 2 :(得分:0)
您只需要在Active Directory中设置对ACS的访问权限 安装PowerShell Azure Commandlet后,运行Andrew
中提到的以下命令连接-MsolService
导入模块MSOnlineExtended -Force $ replyUrl = New-MsolServicePrincipalAddresses -Address“https://xxx.accesscontrol.windows.net/”
New-MsolServicePrincipal -ServicePrincipalNames @(“https://xxx.accesscontrol.windows.net/”) - 显示名称“xxx ACS命名空间” - 地址$ replyUrl
答案 3 :(得分:0)
如果其他人偶然发现这一点,请在此处仔细检查您的领域代码:
wsFederation passiveRedirectEnabled =&#34; true&#34; issuer =&#34;必须匹配端点&#34; realm =&#34;必须匹配受众URI&#34; requireHttps =&#34;真&#34;
和
<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
删除/工作。