2016-03-06 53 views
0

我一直在审查苹果基于MAM的SSO框架。看起来这种方法实际上是关于向后端服务进行身份验证,而不是向应用程序本身进行身份验证。而且,虽然我明白服务端点通常需要某种形式的身份验证,但将其作为基于应用程序的AuthN框架的基础似乎很奇怪。我能想到的许多不正常的结果...基于iOS MAM的身份验证模型是否有意义?

  1. 如果在设备上的本地数据也将是得到它没有认证的挑战,因为访问可能会也不行网络电话
  2. 将有是一种奇怪的用户体验,因为应用程序挑战用户似乎是随机点(当验证会话超时时)
  3. 如果存在多个后端服务(例如1个企业端点和1个基于云的服务),解决方案将只涵盖一项服务,您将不得不以某种方式将两者都纳入体面的用户体验

我错过了什么?希望我误解了这一点,因为我喜欢留在苹果iOS生态系统中寻求解决方案。这看起来好像不能完成这项工作。

+0

你指的是哪个框架?你能提供一个链接吗?苹果公司的理念是,iOS设备是个人设备,因此在应用程序中不需要对本地数据进行访问控制和身份验证(显然,某些应用程序确实对敏感数据实施了保护以防止“窥探”)。你会这样做,通常使用钥匙串来保存证书,以便对自动验证挑战的初始响应可以实现自动化,仅当用户因更改凭证而失败时才会提示 – Paulw11

+0

Hi Paulw-在企业空间MAM中有一个完整一整套框架和供应商,以促进企业数据的安全。这里是一篇关于AuthN/SSO框架的文章 - https://samuelyates.wordpress.com/2013/10/11/kerberos-single-sign-on-in-ios-7/ –

+0

嗯好的。所以你指的是每个应用的VPN。这就是为什么我感到困惑;我并不知道任何SSO框架,比如说Core Location是一个框架。 VPN发生在iOS网络层,所以应用程序不知道它在那里。该应用程序正常访问网络,iOS根据需要激活VPN。这可能会在意外时间导致身份验证提示,这也是VPN和移动设备倾向于用户不友好的原因之一。 – Paulw11

回答

0

寻找更深,并与在iTunes上的工程师交谈后,这里就是我的结论是:

  1. 对于用户认证(用户启动和验证的应用程序),苹果MAM集成的身份验证框架是不是真的什么你要。该框架实际上只针对后端企业服务(仅限于)。

  2. 对于服务认证,是的,MAM集成认证框架很有意义。它是围绕挑战模型构建的,凭证可以在运行时提供 - 用户名/密码,客户端证书等..基本的行为是服务端点对HTTP 401提出质疑,NSURLSession委托给予了回应的机会。推荐的方法是使用iOS“保护空间”功能,将受保护的URL域/领域与将满足挑战的证书相关联。 (https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSURLProtectionSpace_Class/

好像最好的方法为同时满足是使用一个单独的用户认证解决方案在前面做用户身份验证,然后使用MAM集成服务调用AUTH框架。这里的“连接点”是来自用户身份验证的凭证可以应用于iOS保护空间。

我们目前正在POCing AirWatch SDK中,用于将此身份验证流程集成到SSO体验中。凭证应能够应用于保护空间,从任何重要的凭证处理中删除我们的应用程序代码。

顺便说一句,David Thiel在一本名为“iOS应用程序安全性”的书中有一篇很好的关于URL会话保护空间的文章。如果你正在做iOS应用程序安全,它必须拥有。