Xamarin Forms身份验证 - 身份验证提供程序?

时间:2017-07-19 18:21:52

标签: xamarin xamarin.forms azure-active-directory azure-mobile-services

关于身份验证的新手问题。我习惯于将身份验证合并到我的应用后端服务器中,例如Spring Security Authentication。我真的不了解身份验证提供程序的工作原理。

我担心的是,不知何故,每个提供商只能对自己的帐户进行身份验证,即Google只能对gmail帐户进行身份验证,而Azure Active目录只能验证某种Microsoft注册帐户?我不喜欢oauth,因为作为一个用户,我总是喜欢从一个未知的提供商登录某些游戏或应用程序因为我从来不确定我是否只是将我的gmail或facebook帐户密码提供给rando。

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

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

建议表示感谢。

1 个答案:

答案 0 :(得分:3)

是的,您是对的,每个身份提供商都能够对自己的用户进行身份验证; Google OAuth支持Google帐户,Azure Active Directory支持Microsoft工作和学校帐户,Microsoft帐户支持Microsoft个人帐户,等等。

除了我们通常称为“本地帐户”或专门为给定应用程序创建的帐户之外,您还有很多选项可以在应用中添加对这些身份提供商的支持。我将列出几种方法:

  • 您可以自己编写所有代码,以便单独与每个身份提供商集成,并构建您自己的本地帐户解决方案。
  • 您可以在Xamarin表单中使用SDK /库,这有助于在您的应用中使用多个身份提供商。 Xamarin.Auth软件包历来为Xamarin应用程序服务。它为Facebook,谷歌,微软和Twitter提供身份验证功能。
  • 您可以使用专门的云服务,为您的应用提供身份验证服务。一些示例包括Azure Mobile AppsFirebase AuthGigya等。支持的确切身份提供商以及对Xamarin / Xamarin表单的支持程度各不相同。 Azure AD B2C是我知道supports Xamarin Forms以及Facebook,Google,Twitter和本地帐户的另一种选择(免责声明:我在AAD B2C上工作)。这些服务有时会免费提供服务。付费等级,所以你可以比较&对比每一个。
  • 如果您愿意,也可以使用Identity Server之类的开源代码构建自己的身份验证服务。

这绝对取决于您选择的路线,但一般来说,每个解决方案都可以让您在用户身份验证时访问某些用户个人资料信息。对于Azure AD B2C,您可以在应用程序收到的令牌中配置返回到应用程序的声明。对于其他服务,您可能需要进行REST API调用以获取一些用户数据,如电子邮件地址。

HTH。