我可以运行我自己的身份验证提供程序吗?基于OpenId),并允许用户使用OAuth对其进行身份验证?提供者将作为多个web应用程序的SSO点提供服务。
这样做的原因是,我只需要一个applicationID(来自每个OAuth提供程序支持)为我所有的web应用程序。提供者将提供JSON安全令牌,这将用于安全访问。
我将添加用例示例
- 用户想要登录到我的一些web应用
- 用户被重定向到我的身份提供者
- 用户选择他想要登录的方式(密码,或一些OAuth提供程序)
- 在name/pass的情况下,我的ID提供者将只是验证,授权通常的方式,并生成安全令牌,用户可以使用
- 如果用户选择OAuth登录,他将遵循正常的OAuth流程,该流程将由OAuth提供者验证用户身份,然后在完成后重定向到我的ID提供者,这将生成安全令牌,用户可以使用
- 用户可以使用令牌向我所有的webapps证明自己
- webapps将根据My ID provider验证用户令牌
将以某种方式连接来自不同提供商的相同用户帐户。
是的,你可以,以Thinktecture的IdentityServer为例。
但是要做你想做的,你不需要运行你自己的OpenID Connect提供程序。您可以使用现有的解决方案,例如Azure Active Directory。
更新:从你的评论来看,看起来你真的在寻找一个联邦提供者。看看Azure访问控制服务,以及它作为身份提供商与谷歌的集成:https://msdn.microsoft.com/en-us/library/azure/gg185929.aspx