Dam*_*ick 5 authentication oauth-2.0 openid-connect
我计划开发一个支持OpenID Connect作为依赖方的Web应用程序,以便应用程序的用户可以使用他选择的身份提供程序进行注册和登录.(这与每个Stack Exchange站点上的"我的登录"使用的技术相同.)此应用程序可供服务器运营商下载和安装,就像WordPress,phpBB和MediaWiki软件一样可用.服务器运营商应该手动注册哪些OpenID Connect提供商?
当OpenID 2.0是最常见的协议版本时,大多数身份提供商(IDP)允许任何依赖方(RP)使用其身份服务.只有少数国内流离失所者操作了RP的白名单; 我遇到的是PayPal Access(现在称为PayPal登录).关闭访问有商业原因,但封闭的政策需要国内流离失所者的额外努力,因此大多数人都没有打扰.
2015年4月,Google放弃了OpenID 2.0,转而使用OpenID Connect,其中每个RP都是OAuth 2.0客户端应用程序,具有自己的客户端ID和提供商发布的客户端密钥.通常,OAuth要求每个客户端在带外注册每个提供程序,这在每个提供程序使用唯一API公开受保护资源时都很好.但OpenID Connect是一种常见的身份验证API,当用户在RP的登录页面中输入相应的OpenID标识符URI时,所有IDP都应以相同的方式公开.因此,OpenID Connect规范描述了一个可选的动态客户端注册(dyn-reg)功能,允许RP自动注册为OAuth客户端,如Hans Z所述."您是否可以在不获取OAuth凭据的情况下使用OpenID Connect? " .但是,每个IDP都必须努力实施dyn-reg.Google和PayPal是选择不这样做的OpenID Connect IDP的示例.即使提供商确实实施了dyn-reg,规范仍允许IDP要求RP首先提供由提供商发布的有效初始访问令牌.因此,如果有n个 RP和m个公共国内流离失所者,人类必须阅读并接受合同n*m次.
换句话说,OpenID 2.0中的默认值是打开的; OpenID Connect中的默认值已关闭.
因此,随着越来越多的OpenID提供商遵循谷歌的领先优势并放弃OpenID 2.0而转向OpenID Connect,如果我采用RP直播,我希望粘贴标识符URI的最终用户被拒绝,并显示错误消息" Example.com不知道此标识符,不支持动态客户端注册." 然后,运行我的Web应用程序的服务器的操作员必须读取此类错误的日志,并手动注册每个此类IDP以获取客户端凭据.我必须在此Web应用程序中构建配置变量,以便服务器操作员提前为每个受欢迎的提供程序指定客户端凭据,以便转换站点的用户而不是失望.
我想让已下载我的应用程序的服务器操作员轻松地将其安装在他的域中的Web服务器上并作为RP生效.所以我希望它的设置过程能够建议服务器运营商可能会遇到这个问题的公共IDP,而不是只留下一个空白的"添加OpenID Connect Provider"表单,而这个表单让管理员独立完成.
其他相关问题(OpenID Connect提供商和OpenID Connect提供商列表)的列表太短,过时,没有将预期手动注册的IDP分开,也没有将流行的IDP与利基IDP分开.例如,Salesforce.com是一个利基IDP,只允许自己的客户成为RP,我认为最终用户不希望能够从公共Web应用程序上的利基IDP输入标识符.我想知道从哪些来源我可以收集有关广泛使用的国内流离失所者的信息并保持最新状态.
那么,如何在网站上线之前找到不支持开放式动态客户端注册的知名通用OpenID Connect提供商呢?
2.如果我理解正确的话,OpenID Connect 完全支持您的用例。
3.我建议您查看IdentityServer3:https://github.com/IdentityServer/IdentityServer3,因为我相信它会满足您的要求。我个人正在使用它,它的伟大开源项目是由安全领域的专家维护和开发的。
更新:
我不确定您是否真的需要动态客户端注册,在 OIDC 中您的整个应用程序被视为单个客户端/RP。大多数 OIDC 提供商完全支持您的应用程序客户端/用户(以及应用程序每个客户端的用户集),无需动态客户端注册。如果您的应用程序是动态门户的保护伞,您将需要 DCR。
| 归档时间: |
|
| 查看次数: |
1036 次 |
| 最近记录: |