我正在使用DotNetOpenAuth编写自己的OpenId提供程序。此提供商仅供我自己网站的信赖方使用。换句话说,它是一个封闭的提供者。因此,我想自定义OP,以便它仅在某些情况下进行身份验证,如下所示。
当站点/依赖方#1进行身份验证时,用户只需传递身份验证质询。
当站点/依赖方#2进行身份验证时,用户必须通过身份验证质询,但也必须已经存在OP检索到的其他一些数据。
RP可以告诉OP有关要求。我该如何实现呢?
我应该使用某种自定义PAPE(我该怎么做?)或者可能通过Attribute Exchange(我该怎么做?)或其他方式(我该怎么做?)
答案 0 :(得分:0)
RP可以向OP询问有关通过AX验证用户的其他信息。这可能是最简单,最合适的方式。 DotNetOpenAuth中使用AX的相关类是FetchRequest
和FetchResponse
。
您可以通过检查OP上的IHostProcessedRequest.Realm
属性,并通过选中IHostProcessedRequest.IsReturnUrlDiscoverable()
方法返回RelyingPartyDiscoveryResult.Success
来添加额外保证,从而使您的OP仅响应来自白名单RP的身份验证请求