1

我有一個基於身份的ASP.Net核心網站,我無法找到如何與來自c#應用程序的服務交互。 該網站允許通過電子郵件+密碼或Facebook登錄,我想從應用程序做同樣的事情,但當然是通過API,而不是手機網站。消費基於Asp.Net核心身份的網站:如何處理移動應用程序的身份驗證?

我有點糊塗了,我可以找到不同的解決方案,如:

OAuth2.0, OpenId Connect and IdentityServer 或只是OpenId Connect

第二個鏈接看起來像什麼,我期待的,但我有點困惑,說明中提到的服務OpenIdDict-Core有什麼不同?

哪一個應該是正確的解決方案?我只想使用密碼或外部登錄進行身份驗證,然後使用C#客戶端(.Net標準)使用API​​。

謝謝!

+1

我張貼了關於ASOS/OpenIddict一些細節,我希望這將有助於。請注意,我故意忽略了你的第二個問題,因爲它「主要是基於觀點的」(因爲我是ASOS和OpenIddict背後的主要人物,我並不真正客觀)。 – Pinpoint

+0

我認爲OpenIddict對我來說是正確的解決方案,我將進一步調查/測試:)感謝您的澄清! (包括事實,ASOS和OpenIddict被人連接在一起) – Jean

回答

1

第二個鏈接看起來像我在找什麼,但我有點困惑,與說明中提到的服務OpenIdDict-Core有什麼不同?

AspNet.Security.OpenIdConnect.Server(代號ASOS)是OWIN /武士刀的的OAuthAuthorizationServerMiddleware在ASP.NET核心世界的等價物:它是一個低級別的ID連接框架,可以用來實現自己的服務器,使用相同的事件 - 作爲ASP.NET核心安全中間件的其餘部分。 ASOS提供了您需要的所有原語(例如,OpenIdConnectRequestOpenIdConnectResponse),併爲您處理大部分協議詳細信息(例如請求驗證或令牌生成),但這取決於您實施客戶端身份驗證或用戶身份驗證。 ASOS不適合所有人:它專門設計用於提供低層協議優先體驗並儘可能靈活:如果您對OAuth2/OpenID Connect的操作方式感到不舒服一般工作,那麼它可能不適合你。

有關ASOS的更多信息,您可以閱讀以下博客文章系列:http://kevinchalet.com/2016/07/13/creating-your-own-openid-connect-server-with-asos-introduction


OpenIddict是基於ASOS的ID連接服務器庫:它處理之類的客戶端身份驗證或撤銷憑證爲你提供你需要的接口(它還配備了基於EF默認店) 。

與ASOS,這是一個自以爲是服務器,其主要目的是鼓勵你從安全的角度拒絕沒有被認爲是「安全的」什麼都做正確的事(例如,它會拒絕包含response_type=token如果授權請求客戶是一個機密的客戶)。

OpenIddict背後的想法是,你必須實現的是用戶認證,這可以在你自己的MVC控制器中使用ASP.NET Core Identity完成。其他一切都被認爲是「危險的」,並被OpenIddict故意隱藏和處理。

如果您想了解更多關於OpenIddict,我建議你閱讀這篇博客:https://blogs.msdn.microsoft.com/webdev/2016/10/27/bearer-token-authentication-in-asp-net-core/

+0

我會去OpenIddict,我希望它會保持多年:d 你能不能詳細(只有一個每個句子)什麼對應的3個樣品和他們有什麼不同? 授權碼流,隱式流和密碼流 – Jean

+1

@Jean我建議閱讀http://kevinchalet.com/2016/07/13/creating-your-own-openid-connect-server-with-asos-choosing-正確的流程/更多關於不同流量的信息。 – Pinpoint

+0

謝謝,它似乎回答了這個問題;)我將在明天更詳細地檢查! – Jean

相關問題