我希望创建一个与facebook或pokerstars非常类似的功能,如果你之前使用过它们的话。基本上,应用程序要求用户登录,并且可以从浏览器以及本机和Web应用程序访问其信息。
我该如何实现这一目标?请建议研究哪些服务来实现这一目标。以我目前的理解。我将用html和php创建网站,并使用RESTful协议创建一个web服务,并将它们托管在amazon aws服务器上。然后我可以连接到本机应用程序中的这些服务器?我不太清楚本机应用程序如何与服务器交互
如果您知道任何特定协议或更好的服务器托管服务,请告诉我。
答案 0 :(得分:0)
如果我正确地解释你的问题,你正在寻找这样的事情:
这是我们一直在移动网络行业所做的事情。从技术上讲,我们有TAC / ACS或HSS配置文件服务,但在任何一种情况下,都是一样的 - 专用服务和网络流程:
如果你想要一个预配置的解决方案,你可以使用任何带有RESTstyle连接器的网络数据库(例如MongoDB?)但是你也可以在与NoSQL或SQLLite数据库对话的过程中通过它。最终结果是一样的。
对于商业解决方案,我可能喜欢OpenStack,因为您可以在其上运行代码,并且他们拥有您可能能够CoOpt的身份代理。
就个人而言,我只是在像Amazon的EC2那样的某个云上运行数据存储区,它可以回复RESTful请求,例如:
我在这里遗漏了安全等必要的东西,但你明白了。
这样做的另一个好处是,您可以为所有应用程序/应用程序服务提供单一身份服务。给定应用程序元素的细节只是配置文件中的子字段。这不仅为您提供了适用于Web,桌面和移动设备的通用身份代理,还为您的所有应用程序提供了单点登录。用户登录一次并对您拥有的所有内容进行身份验证。从一个站点移动到另一个站点,现在变得无缝。
最后,您将应用程序的身份管理,备份,安全令牌管理等放置在外部。如果您以后想要为第二因素身份验证添加Google身份验证器,则不必将其添加到您拥有的每个应用程序中。
我还要补充一点,您不希望将身份数据库保留在直接互联网连接点上。有人可能会让你的生活变得困难,并在以后得到它。相反,您希望您的身份服务器具有私有链接。然后做这样的事情:
在这种情况下,用户可能会输入用户名和密码,但应用程序或网站会将其转换为令牌。这就是你发送的内容。
为什么我们这样做?
首先,如果有人试图访问您的身份数据库,那么没有什么用处。它仅包含用于登录的不透明令牌和加密数据的blob。来吧 - 拿数据库。我们不在乎。
其次,嗅探传输会让攻击者一无所获 - 再次,它都是加密的blob。
这意味着稍后,如果您有五个使用代理的应用程序,并且有人攻击网络并窃取数据库,您就不在乎了,因为您的用户从未首先提供登录名和密码,即使他们这样做了,没有用户密钥的人数据本身就是垃圾。
这有帮助吗?