Xamarin表单身份验证 - 身份验证提供程序?

问题描述:

关于验证的新手问题。我习惯将认证合并到我的应用后端服务器中,例如Spring Security Authentication。我不太了解身份验证提供程序是如何工作的。Xamarin表单身份验证 - 身份验证提供程序?

我担心的是,每个供应商只能验证自己的帐户,即谷歌只能验证gmail帐户,而Azure活动目录只能验证某种微软注册帐户?我不愿意oauth,因为作为一名用户,我总是偏执于从某个未知的提供商那里登录某个游戏或应用程序,因为我不确定我是否仅将我的Gmail或Facebook帐户密码提供给了一个rando。

我很好给人选择使用誓言,但不太舒服,如果这是唯一的选择。我希望人们能够给我他们想要的任何电子邮件地址,以及他们为我的网站创建的密码。

还有这些问题:如果我使用身份验证提供程序,我可以获取用于登录的实际电子邮件地址吗?或者我只得到一个令牌?
如果我要构建自己的身份验证服务,以便我可以接受任何电子邮件域作为用户名,那么在Xamarin表单中最容易实现什么,并且有人可以将我指向教程或其他内容?

建议表示感谢。

+0

如果您正在实施自己的身份验证,则可以使用https服务连接到您的服务器,并且您的服务器可以提供令牌或任何您需要的。 –

是的,你是对的,每个身份提供者都提供了认证他们自己用户的能力; 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