0

關於驗證的新手問題。我習慣將認證合併到我的應用後端服務器中,例如Spring Security Authentication。我不太瞭解身份驗證提供程序是如何工作的。Xamarin表單身份驗證 - 身份驗證提供程序?

我擔心的是,每個供應商只能驗證自己的帳戶,即谷歌只能驗證gmail帳戶,而Azure活動目錄只能驗證某種微軟註冊帳戶?我不願意oauth,因爲作爲一名用戶,我總是偏執於從某個未知的提供商那裏登錄某個遊戲或應用程序,因爲我不確定我是否僅將我的Gmail或Facebook帳戶密碼提供給了一個rando。

我很好給人選擇使用誓言,但不太舒服,如果這是唯一的選擇。我希望人們能夠給我他們想要的任何電子郵件地址,以及他們爲我的網站創建的密碼。

還有這些問題:如果我使用身份驗證提供程序,我可以獲取用於登錄的實際電子郵件地址嗎?或者我只得到一個令牌?
如果我要構建自己的身份驗證服務,以便我可以接受任何電子郵件域作爲用戶名,那麼在Xamarin表單中最容易實現什麼,並且有人可以將我指向教程或其他內容?

建議表示感謝。

+0

如果您正在實施自己的身份驗證,則可以使用https服務連接到您的服務器,並且您的服務器可以提供令牌或任何您需要的。 –

回答

1

是的,你是對的,每個身份提供者都提供了認證他們自己用戶的能力; Google OAuth支持Google帳戶,Azure Active Directory支持Microsoft工作&學校帳戶,Microsoft帳戶支持Microsoft個人帳戶等。

除了我們通常稱之爲「本地帳戶」或專門爲給定應用程序創建的帳戶之外,關於如何在應用程序中添加對這些身份提供程序的支持,您有很多選項。我將列舉出幾種方法:

  • 您可以自己編寫所有代碼,以便單獨與每個身份提供者集成,也可以構建您自己的本地帳戶解決方案。
  • 您可以在Xamarin Forms中使用SDK /庫,以方便在您的應用程序中使用多個身份提供程序。歷史上,Xamarin.Auth包爲Xamarin應用程序提供了此目的。它爲Facebook,Google,Microsoft和Twitter提供身份驗證功能。
  • 您可以使用爲您的應用程序提供驗證服務的專用雲服務。一些示例包括Azure Mobile Apps,Firebase AuthGigya等等。支持確切的身份提供者以及對Xamarin/Xamarin表單的支持程度因人而異。 Azure AD B2C是我知道supports Xamarin Forms以及Facebook,Google,Twitter和本地帳戶(免責聲明:我在AAD B2C上工作)的另一種選擇。這些服務有時會有免費等級&付費級別,所以您可以比較每個對比&。
  • 如果您願意,您還可以使用開源代碼(如Identity Server)構建自己的身份驗證服務。

這絕對取決於你去哪個路線,但一般來說每個解決方案將提供您可以訪問基於用戶身份驗證的一些用戶資料信息。對於Azure AD B2C,您可以配置您的應用收到的令牌中返回給您的應用的聲明。對於其他服務,您可能需要進行REST API調用以獲取某些用戶數據,例如電子郵件地址。

HTH。

+0

非常感謝非常有幫助如果我使用Azure AD B2C,是否允許我的用戶使用他們希望的任何電子郵件地址以及他們希望的任何密碼?還是僅限於使用支持的身份驗證提供程序? – user1023110