ACS30001:无法验证OpenID响应签名

时间:2015-08-17 17:34:10

标签: dotnetopenauth azure-active-directory acs

我正在使用Azure Active Directory访问控制进行概念验证图4 The fundamentals of Azure identity management是我正在拍摄的模型。由于我需要在深层传统SaaS解决方案中管理我自己的标识,因此我正在建立自己的OpenID提供程序。为此,我使用的是DotNotOpenAuth。在我的香草,#34;你好世界"例如,我构建了一个简单的MVC应用程序,并将其作为依赖方应用程序在我的访问控制服务命名空间中注册,并使用ACS管理服务将DotIOpenAuth.Samples中的OpenIdProviderMvc项目注册为我的OpenID提供程序。这是我注册的视图,

    var openIdAddress = new IdentityProviderAddress
    {
      Address = "...localhost...",
      EndpointType = "SignIn"
    };

    svc.AddRelatedObject(openId, "IdentityProviderAddresses", openIdAddress);
    svc.SaveChanges();

这是OpenID Provider端点页面,希望接收OpenID身份验证消息以允许用户登录其他网站。这很有效,当我启动我的依赖方应用程序时,我为DotNetOpenAuth(核心,依赖方及其依赖项)安装了相应的Nuget包,从ACS中的配置调用OpenID提供程序并且登录成功。但是,在重定向到ACS发送到我的命名空间的OpenID响应,(... accesscontrol.windows.net/v2/openid?...)我收到错误响应:

  

处理您的请求时出错。

     

HTTP错误代码:502
  消息:ACS30000:处理发送到OpenID端点的登录响应时出错   内部消息:ACS30001:无法验证OpenID响应签名   内部消息:ACS90005:外部服务器错误   迹点ID:41338728-fd6e-4299-9efb-ad8684976aae
  时间戳:2015-08-10 19:18:28Z

我想知道我需要做些什么才能帮助ACS验证OpenID响应签名。响应看起来不错(格式化为易读性,所以我不会超出我对低声望的链接限制):

  

https://....accesscontrol.windows.net/v2/openid?    上下文= CH 2 ...

     

openid.claimed_id = ... /用户/鲍勃

     

openid.identity = ... /用户/鲍勃

     

openid.sig = NU ... RS =

     

和openid.signed = claimed_id,身份,把assoc_handle,op_endpoint,的return_to,response_nonce,ns.alias3,alias3.mode,alias3.type.alias1,alias3.value.alias1,alias3.type.alias2,alias3.value.alias2 ,ns.sreg,sreg.email,sreg.fullname

     

openid.assoc_handle = WWcF!...

     

openid.alias3.type.alias2 = ... / namePerson&安培; openid.alias3.value.alias2 =摆锤

     

openid.ns.sreg = ... openid.net/extensions/sreg/1.1

     

openid.sreg.email=bob@dotnetopenauth.net

     

openid.sreg.fullname =鲍勃

这是我应该能够在规则组中处理的吗?我的OpenId提供程序和ACS之间的安全性是否缺少某些内容,例如发送一些与签名算法,指纹或其他内容相关的信息?

谢谢

0 个答案:

没有答案