我希望将OpenID实现为一组合作伙伴网站的提供商。问题是这个网站是为孩子(小于13岁)所以我有业务限制需要处理 - 主要是帐户不能在任何非合作伙伴网站上使用(我们合作每个获得批准的合作伙伴,以确保他们符合行业隐私/安全法规。)
过去我们推出了自己的会员和合作伙伴系统,但我希望转向行业认可的引擎,让我们自己和合作伙伴的生活更轻松。
那么,是否有内置的方法将OpenID访问权限限制在某些网站上,或者我是否需要对代码和权限进行一些深度代码更改才能实现此目的?
答案 0 :(得分:5)
是的,绝对的。基于你的dotnetopenid标签,我认为这是你正在使用的库,这很棒。进来的IAuthenticationRequest上有一个Realm属性。用它来检查领域值是否显示在合作伙伴网站领域的白名单中。如果是,请继续执行正常的身份验证步骤,并将IAuthenticationRequest.IsAuthenticated设置为true并返回。如果未识别出领域,则此< 13岁正在尝试使用他们的OpenID登录非合作伙伴网站,您可以设置IsAuthenticated = false并返回将中止登录。
如果您对特定情况有其他疑问,请随时发送电子邮件至dotnetopenid@googlegroups.com
答案 1 :(得分:2)
一切都取决于 这在OpenID协议中是可行的 - 如果您的库支持它,这只是一个问题。查看文档和配置文件,了解对站点登录权限的限制 如果您只是自己编程,这很容易 - 当您登录OpenID时,它会重定向到您的网站,看看您是否允许用户登录它。通常你问用户,但在你的情况下,你可以查看白名单,看看它是否被批准。
答案 2 :(得分:1)
我自己没有实现过OpenId,所以请耐心等待。
当我登录yahoo获取OpenId时,它会问我是否真的希望他们向stackoverflow.com提供我的身份。此时,提供商(例如,雅虎,您)应该很容易查找目标网站,看看它是否是经批准的合作伙伴,如果不是,则停止流程。