SaaS over Paas(GAE)方案的身份验证最佳实践

时间:2013-08-21 17:19:24

标签: google-app-engine saas paas

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

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

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

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

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

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

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

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

A

1 个答案:

答案 0 :(得分:0)

Having just completed my first project using Google App Engine,我可以说我遇到了很多问题。我会尝试解释我对每一点的处理方法,并从你的角度来看待它。

  1. 身份验证 - 通常使用Google的身份验证是最简单的路线,但您仍需要实施自定义适应才能使用“公司”/“群组”概念。在数据存储区/您喜欢的任何数据库中实现使用名为“Groups”的实体,其中包含Google用户列表...这样用户可以属于多个组..然后您只需按属性(用户)搜索即可获取所有组他们属于。我出于无关的原因实施了自己的身份验证系统。

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

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