身份验证提供程序和OAuth

时间:2015-05-25 12:30:19

标签: java security oauth openid

我可以运行自己的身份验证提供程序(即基于OpenId)并让用户使用OAuth对其进行身份验证吗?提供程序将作为多个Web应用程序的SSO点服务器。

这样做的原因是,我将只需要一个applicationID(来自每个支持的OAuth提供程序)用于我的所有webapps。提供程序将提供JSON安全令牌,用于安全访问。

更新 我将添加用例示例

  1. 用户想要登录我的某些webapp
  2. 用户被重定向到我的身份提供商
  3. 用户选择他想要登录的方式(pasword或某些OAuth提供商)
    • 在名称/通行证的情况下我的ID提供商将进行身份验证,授权通常的方式并生成用户可以使用的安全令牌
    • 如果用户选择OAuth登录,他将遵循正常的OAuth流程,该流程将通过OAuth提供程序验证用户身份,然后在完成后重定向回My ID提供程序,这将生成用户可以使用的安全令牌
  4. 用户可以使用该令牌向我的所有webapps证明自己
  5. webapps将针对我的ID提供商验证用户令牌
  6. 如何将来自不同提供商的同一用户帐户连接在一起。

1 个答案:

答案 0 :(得分:1)

是的,你可以,例如看一下Thinktecture的IdentityServer

但要做你想做的事,你不需要运行自己的OpenID Connect提供程序。您可以使用现有的解决方案,例如Azure Active Directory

更新:根据您的评论,您似乎真的在寻找联盟提供商。查看Azure Access Control服务,并在此处与Google作为身份提供商进行集成:https://msdn.microsoft.com/en-us/library/azure/gg185929.aspx