Azure ACS与ADFS服务器

时间:2015-01-23 17:31:19

标签: asp.net-mvc owin adfs acs ws-federation

我们有一个场景,我们只有一个应用程序可以从我们的组织访问,也可以从外部组织访问。我们将在azure中托管此Web应用程序。我正在使用MVC 5和Owin WSFederation Middleware。我可以连接到我的本地ADFS服务器,它按预期工作。

           app.UseWsFederationAuthentication(
            new WsFederationAuthenticationOptions
            {
                Wtrealm = "https://localhost:44321/",
                MetadataAddress = "https://sso2.xxxxx.com/FederationMetadata/2007-06/FederationMetadata.xml"
            });

当我使用ACS作为主STS并将ADFS服务器设置为IDP时,它会路由到正确的ADFS登录页面,但是一旦我进行身份验证,我就会收到此错误

ID4037:无法通过以下安全密钥标识符解析验证签名所需的密钥' SecurityKeyIdentifier    (    IsReadOnly = False,    计数= 1,    Clause [0] = X509RawDataKeyIdentifierClause(RawData = MIIC4DCCAc ...'。确保使用所需的密钥填充SecurityTokenResolver。

           app.UseWsFederationAuthentication(
            new WsFederationAuthenticationOptions
            {
                Wtrealm = "https://localhost:44321/",
                MetadataAddress = "https://xxxxxxxx.accesscontrol.windows.net/FederationMetadata/2007-06/FederationMetadata.xml"
            });

我觉得这是一个问题,因为联合元数据包含签名的密钥,并且由于owin中间件只有来自ACS的元数据,因此无法确定签名者。

思想?

1 个答案:

答案 0 :(得分:0)

是否在ACS中配置了域?

如果我正在实现这一点,那么我可能会在我的Home Realm Discovery中使用ADFS而不是ACS,因为ACS已经出现了。

我会将Azure配置为ADFS中的其他声明提供程序,并且只使用ADFS使用我的应用程序。

您还可以更好地控制HRD页面的外观。