web-sso-with-cloud-and-Office 365-用户

时间:2013-01-11 13:37:58

标签: azure single-sign-on office365

在.net应用程序中实施web-sso-with-cloud-ad-o365-users的最佳解决方案是什么?我已经找到了很少的解决方案,但我对这些解决方案并不是很有信心。

我正在Windows Azure上构建ASP.NET Web应用程序。应用程序用户名和密码与Windows Identity Foundation的Office 365相同。

我可以在我的应用和Office365环境之间建立单点登录吗?因此,用户登录我的应用程序后必须登录Office365。

我已尝试以下链接并制作了MVC3 Web应用程序。

https://www.windowsazure.com/en-us/develop/net/how-to-guides/web-sso/

http://veerendracloudblogs.blogspot.in/2012/07/web-sso-with-cloud-ad-o365-users.html

当我运行应用程序并提供登录凭据时出现错误: -

应用程序中的服务器错误。

ID1038: AudienceRestrictionCondition无效,因为AudienceUris中不存在指定的受众群体。 观众:'spn:b6933382-49c5-4430-81cc-36dd50a3c971'

描述:在执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。

异常详细信息: Microsoft.IdentityModel.Tokens.AudienceUriValidationFailedException:ID1038:AudienceRestrictionCondition无效,因为AudienceUris中不存在指定的受众。 观众:'spn:b6933382-49c5-4430-81cc-36dd50a3c971'

来源错误:

在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

堆栈追踪:

[AudienceUriValidationFailedException:ID1038:AudienceRestrictionCondition无效,因为AudienceUris中不存在指定的受众群体。 观众:'spn:b6933382-49c5-4430-81cc-36dd50a3c971']    Microsoft.IdentityModel.Tokens.SamlSecurityTokenRequirement.ValidateAudienceRestriction(IList 1 allowedAudienceUris, IList 1 tokenAudiences)+1287    Microsoft.IdentityModel.Tokens.Saml2.Saml2SecurityTokenHandler.ValidateConditions(Saml2Conditions condition,Boolean enforceAudienceRestriction)+2309    Microsoft.IdentityModel.Tokens.Saml2.Saml2SecurityTokenHandler.ValidateToken(SecurityToken令牌)+786    Microsoft.IdentityModel.Tokens.SecurityTokenHandlerCollection.ValidateToken(SecurityToken令牌)+297    Microsoft.IdentityModel.Web.TokenReceiver.AuthenticateToken(SecurityToken token,Boolean ensureBearerToken,String endpointUri)+279    Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.SignInWithResponseMessage(HttpRequest request)+822    Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.OnAuthenticateRequest(Object sender,EventArgs args)+363    System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+136    System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)+69

1 个答案:

答案 0 :(得分:1)

看来你上面确实有正确的信息,但是当你说“没有成功”时,它意味着什么。当您尝试配置它时实际发生的情况以及当连接不起作用时实际发生的情况。您需要添加一些错误信息才能获得准确的帮助。

我看到的大部分问题都与获取/设置适当的智能链接有关,该链接在Web应用程序中用于将用户转移到O365服务器以获得正面的身份验证声明。因此,如果您已经通过了这一点,那么一旦您拥有声明就不会有问题,那么您就是经过身份验证的用户。所以你真正需要的是使用智能链接校正,下面将详细介绍问题,以确保你确实正确设置了它:

Using smart links or IdP initiated authentication with Office 365

Office 365单点登录配置与通过WS-Federation(WS-Fed)和WS-Trust协议支持的公司ADFS一起完成,白皮书“Office 365 Single Sign-On with AD FS 2.0 whitepaper”用于解释该过程。

您还可以查看基于SAML 2.0协议的Internet2 Shibboleth 2,基于声明的(Web)单点登录Office 365产品here