1

我正在通过 PaaS(Google App Engine)设计一个 SaaS 应用程序。我的 SaaS 将有两个用户界面:

  • 基于网络
  • 基于移动应用

基于 Web 的功能丰富,而移动应用程序将具有基本和/或经常使用的功能。

移动应用程序将调用 RESTful 服务来执行业务逻辑。

该 SaaS 主要针对使用移动应用的个人;但是,可能会有这样一个用例,其中这些人可以组成一个团队并作为一家公司运营。因此,考虑到这一点,我正在考虑两个实体:帐户(租户)和用户。我正在考虑在这两个实体之间建立多对多关系,因为一个用户可能是多个帐户的一部分(不太可能但不能排除),当然,一个帐户可以有多个用户。

我想知道在这种情况下进行身份验证的最佳做法:

  • 我应该使用 Google 提供的身份验证还是应该实施自己的身份验证?(我仍在探索 OAuth 和 Google 的身份验证产品。)
  • 我认为,对于基于 Web 的界面,通过 SSL 的用户名/密码就足够了。但是,不确定,这可以应用于移动应用程序吗?
  • 我可以避免必须在移动应用程序中存储凭据的情况吗?

提前感谢您对此提供的任何帮助。

一个

4

1 回答 1

0

刚刚使用 Google App Engine 完成了我的第一个项目,我可以说我遇到了很多问题。我将尝试解释我对每一点的处理方法,并从你的角度来处理它。

  1. 身份验证 - 通常使用 Google 的身份验证是最简单的方法,但您仍然必须实现自定义调整才能使用“公司”/“组”概念。在数据存储区/您喜欢的任何数据库中实现,使用一个名为“Groups”的实体,它有一个 google 用户列表……这样用户可以属于许多组……然后你只需按属性(用户)搜索即可获取所有组他们属于。出于不相关的原因,我实现了自己的身份验证系统。

  2. Google App Engine 为其自己的域提供 SSL/HTTPS 支持。您也可以添加您自己的具有 SSL 支持的自定义域。您还可以通过本机应用程序或移动 Web 应用程序使用 SSL。我只是使用了它附带的本机支持。

  3. 是和不是。您将始终必须将凭据存储在某处。也许它不会在您的应用程序代码中/直接连接到您的应用程序(Google auth 就是一个例子)。但是,在您手机上的某个地方,凭据将驻留。它们可能被加密/混淆,但它们会在那里。因此,要么让您的用户每次都输入它们,要么保存它们/使用手机提供的那些。对我自己而言,.NET 提供了一种以安全方式(非纯文本)为每个用户的机器存储凭据的好方法。

于 2013-08-21T17:33:17.250 回答