Authentication 预计新站点将支持哪些著名的OpenID提供商?

Authentication 预计新站点将支持哪些著名的OpenID提供商?,authentication,oauth-2.0,openid-connect,Authentication,Oauth 2.0,Openid Connect,我计划开发一个支持OpenID Connect作为依赖方的web应用程序,以便该应用程序的用户可以使用自己选择的身份提供者注册和登录。(这与每个Stack Exchange站点上的“我的登录”使用的技术相同。)服务器运营商可以下载和安装此应用程序,就像WordPress、phpBB和MediaWiki软件一样。服务器运营商需要手动注册哪些OpenID连接提供商 当OpenID2.0是最常见的协议版本时,大多数身份提供者(IDP)允许任何依赖方(RP)使用他们的身份服务。只有少数国内流离失所者使用

我计划开发一个支持OpenID Connect作为依赖方的web应用程序,以便该应用程序的用户可以使用自己选择的身份提供者注册和登录。(这与每个Stack Exchange站点上的“我的登录”使用的技术相同。)服务器运营商可以下载和安装此应用程序,就像WordPress、phpBB和MediaWiki软件一样。服务器运营商需要手动注册哪些OpenID连接提供商

当OpenID2.0是最常见的协议版本时,大多数身份提供者(IDP)允许任何依赖方(RP)使用他们的身份服务。只有少数国内流离失所者使用RPs白名单;我遇到的是PayPal Access(现在称为)。关闭访问是有商业原因的,但关闭的政策需要为国内流离失所者付出额外的努力,所以大多数人并不费心

2015年4月,谷歌放弃了OpenID2.0,转而支持OpenIDConnect,在OpenIDConnect中,每个RP都是一个OAuth 2.0客户端应用程序,具有自己的客户端ID和提供商发布的客户端机密。通常,OAuth要求每个客户机在带外向每个提供程序注册,当每个提供程序使用唯一的API公开受保护的资源时,这是很好的。但是OpenID Connect是一个通用的身份验证API,当用户在RP的登录页面中输入相应的OpenID标识符URI时,所有IDP都将以相同的方式公开。因此,描述了一个可选的动态客户端注册(dyn reg)功能,该功能允许RP自动注册为OAuth客户端,如中所述。然而,每个IDP必须努力实施dyn reg。谷歌和贝宝是OpenID连接IDP的例子,他们选择不这样做。即使提供商实现了dyn reg,该规范仍然允许IDP要求RP首先提供提供商发布的有效初始访问令牌。因此,如果存在n个RPs和m个公共IDP,那么人类必须阅读并接受n*m次合同

换句话说,OpenID2.0中的默认值是open;OpenID Connect中的默认设置是关闭的

因此,随着越来越多的OpenID提供商效仿谷歌,放弃OpenID 2.0,转而支持OpenID Connect,如果我使用RP live,我预计粘贴标识符URI的最终用户将被拒绝,并显示一条错误消息,大意是“Example.com不知道该标识符的提供商,不支持动态客户端注册。”然后,运行我的web应用程序的服务器的操作员必须读取此类错误的日志,并手动向每个此类IDP注册以获取客户端凭据。我必须在这个web应用程序中构建配置变量,让服务器操作员提前为每个流行的提供商指定客户端凭据,这样网站的用户就可以转换而不是失望

我想让下载了我的应用程序的服务器运营商能够轻松地将其安装到其域中的web服务器上,并作为RP上线。因此,我希望其安装过程能够建议服务器运营商可能遇到此问题的公共IDP,而不仅仅是空白的“添加OpenID连接提供程序”让管理员自己处理的表单

其他相关问题(和)的列表太短、过时,没有将预期手动登记的国内流离失所者分开,也没有将流行的国内流离失所者与特殊群体分开。例如,Salesforce.com是一个利基IDP,我认为最终用户不会期望能够在公共web应用程序上输入利基IDP的标识符。 我想知道我可以从哪些渠道收集关于广泛使用的IDP的信息,并保持最新

那么,在网站上线之前,我该如何找到不支持开放动态客户端注册的知名通用OpenID Connect提供商呢

  • 检查OpenID连接提供程序的最佳位置在此处:最新的认证提供程序列表在此处:
  • 二,。如果我理解正确,OpenID Connect完全支持您的用例

    三,。我建议您查看IdentityServer3:,因为我相信它会满足您的要求。我个人使用它,它的伟大开源项目由安全领域的专家维护和开发

    更新:


    我不确定您是否真的需要动态客户端注册,在OIDC中,您的整个应用程序被视为单个客户端/RP。大多数OIDC提供商完全支持您的应用程序客户端/用户(以及应用程序每个客户端的用户集),而无需动态客户端注册。如果您的应用程序是动态门户的保护伞,您将需要DCR。

    关于3:我对操作IDP不感兴趣,只是一个RP。我所说的“IDP”指的是操作IDP服务器的组织,而不是我可以运行自己的IDP的软件。对此表示抱歉。似乎我误解了。现在我已经编辑了我的Q以澄清我的应用程序的RP角色,在我的Q的哪一部分我仍然需要“仔细检查每一点”?哦,已经有一段时间了!似乎更好,我会更新我的答案,希望它会有用。Q:“让服务器操作员更容易安装我的应用程序”A:“在OIDC中,您的整个应用程序被视为单客户端/RP。“我的意思是,我正在开发服务器操作员可以下载和安装的软件。如果是MediaWiki,应用程序会是“MediaWiki”,还是“维基媒体网站上的MediaWiki”、“维基网站上的MediaWiki”、“Nookipedia.com上的MediaWiki”等等。?我将对Q进行编辑,以明确这一点。从OpenID 2到OpenID Connect的转换对于像我们这样开发开放源代码软件的人来说真的很糟糕,这些软件的设计只是由许多服务器管理员安装,因为我们的N个用户都需要在M个身份提供商上注册。以前N*M的复杂度完全为零,更不用说信用卡、电话号码和社交网络了