在 .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 无效,因为指定的 Audience 不在 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(IList1 allowedAudienceUris, IList
1 tokenAudiences)+1287 Microsoft.IdentityModel.Tokens.Saml2.Saml2SecurityTokenHandler.ValidateConditions(Saml2Conditions 条件,布尔型enforceAudienceRestriction)+2309 Microsoft.IdentityModel.Tokens.Saml2.Saml2SecurityTokenHandler.ValidateToken(SecurityToken 令牌)+786 Microsoft.IdentityModel.Tokens.SecurityTokenHandlerCollection。 ValidateToken(SecurityToken token) +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