2015-05-25 32 views
1

我可以運行自己的身份驗證提供程序(即基於OpenId)並讓用戶使用OAuth進行身份驗證嗎?提供者將作爲SSO點服務於多個Web應用程序。身份驗證提供程序和OAuth

做到這一點的原因是,我只需要一個applicationID(來自每個OAuth提供者支持)爲我的所有webapps。該提供商將提供JSON安全令牌,這將用於安全訪問。

UPDATE 我只是補充

  1. 用戶要登錄到一些我的web應用程序的
  2. 用戶被重定向到我的身份提供
  3. 用戶使用情況實例選擇他想要的方式登錄(pasword或某些OAuth提供程序)
    • 在名稱/通行證的情況下我的ID提供程序只會驗證,授權通常的方式並生成安全令牌用戶可以使用
    • 如果用戶選擇OAuth登錄,他將遵循正常的OAuth流程,這將通過OAuth提供程序驗證用戶身份,然後在完成重定向回到我的ID提供程序時,這將生成安全令牌,用戶可以使用
  4. 用戶可以使用該令牌來證明自己我所有的webapps
  5. 的web應用將會驗證用戶令牌對我的ID提供商

的將是一些方法如何連接在一起的相同用戶來自不同供應商的帳戶

回答

1

是的,你可以看看Thinktecture的IdentityServer爲例。

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

更新:從您的意見,它看起來像你真的在尋找一個聯邦提供商。看看Azure訪問控制服務,它與谷歌作爲身份提供商進行整合:https://msdn.microsoft.com/en-us/library/azure/gg185929.aspx

+0

它如何與這個OpenID提供商合作。我的應用程序只知道OpenID提供者,而提供者是由所有OAuth提供者註冊的?我還沒有找到任何示例,您可以使用Google OAuth針對某些OpenID提供商進行授權。也許我只是個不好的偵探。另一件事是我從Java世界,但我希望會有類似的解決方案Java。 – Zveratko

+0

OpenID Connect和OAuth是標準化協議,因此與平臺無關。如果您想使用Google的OAuth提供商,則需要向Google註冊您的應用程序(因爲他們將爲您的應用程序執行身份驗證)。 – MvdD

+0

這是我想要避免的。我只想註冊我的自定義標識提供程序。 Web應用程序應該以某種方式隱藏在它後面。我在我的問題中添加了用例。 – Zveratko