简体   繁体   English

带有ADFS服务器的Azure ACS

[英]Azure ACS with ADFS Server

We have a scenario where we have a single application that will be accessed from our organization and also accessed from a outside organization. 我们有一个场景,其中有一个可以从我们的组织访问的应用程序,也可以从外部组织访问的应用程序。 We will be hosting this web application in azure. 我们将以天蓝色托管此Web应用程序。 I am using MVC 5 with the Owin WSFederation Middleware. 我正在将MVC 5与Owin WSFederation中间件一起使用。 I can connect to my Local ADFS Server and it works as expected. 我可以连接到我的本地ADFS服务器,它可以按预期工作。

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

When I use ACS as the Main STS and set up our ADFS server as an IDP, it routes to the correct ADFS login page, but once I authenticate I get this error 当我使用ACS作为主要STS并将我们的ADFS服务器设置为IDP时,它将路由到正确的ADFS登录页面,但是一旦我进行身份验证,就会收到此错误

ID4037: The key needed to verify the signature could not be resolved from the following security key identifier 'SecurityKeyIdentifier ( IsReadOnly = False, Count = 1, Clause[0] = X509RawDataKeyIdentifierClause(RawData = MIIC4DCCAc...'. Ensure that the SecurityTokenResolver is populated with the required key. ID4037:无法通过以下安全密钥标识符'SecurityKeyIdentifier (IsReadOnly = False,Count = 1,Clause [0] = X509RawDataKeyIdentifierClause(RawData = MIIC4DCCAc ...) 来解析验证签名所需的密钥 。。填充所需的密钥。

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

I feel like this is an issue because the Federated metadata contains the key for the signature and since the owin middleware only has the metadata from the ACS the signer can't be determined. 我觉得这是一个问题,因为联合元数据包含签名的密钥,并且由于owin中间件仅包含来自ACS的元数据,因此无法确定签名者。

Thoughts? 思考?

Is the realm configured in ACS? 是否在ACS中配置了领域?

If I was implementing this, then i would probably use ADFS instead of ACS for my Home Realm Discovery because ACS is on it's way out. 如果执行此操作,则我可能会使用ADFS而不是ACS进行家庭领域发现,因为ACS即将淘汰。

I would configure Azure as an additional Claims provider in ADFS and only have my application using ADFS. 我会将Azure配置为ADFS中的其他Claims提供程序,并且仅让我的应用程序使用ADFS。

You also get a little more control around what the HRD pages look like. 您还可以更好地控制HRD页面的外观。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM