我一直在审核Apple的基于MAM的SSO框架。看起来这种方法实际上是关于对后端服务进行身份验证,而不是对应用程序本身进行身份验证。而且,虽然我理解服务端点通常需要某种形式的身份验证,但将它作为 app 的AuthN框架的基础似乎很奇怪。我可以想到许多功能失调的结果......
我错过了什么?希望我误解了这一点,因为我喜欢留在Apple iOS生态系统中寻求解决方案。这个看起来似乎无法完成这项工作。
答案 0 :(得分:0)
在深入了解并与AirWatch工程师交谈后,我得出的结论是:
对于用户身份验证(用户启动和对应用进行身份验证),Apple MAM集成的身份验证框架并不是您想要的。该框架实际上是针对后端企业服务(仅限)。
对于服务身份验证,是的,MAM集成身份验证框架很有意义。它围绕挑战模型构建,并且可以在运行时提供凭证 - 用户名/密码,客户端证书等。基本行为是服务端点使用HTTP 401进行挑战,并且NSURLSession委托有机会进行响应。建议的方法是使用iOS“保护空间”功能,该功能将受保护的URL域/域与将满足挑战的凭据相关联。 (https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSURLProtectionSpace_Class/)
似乎最好的方法是同时使用单独的用户身份验证解决方案来执行用户身份验证,然后使用MAM集成的身份验证框架进行服务调用。这里的“连接点”是来自用户身份验证的凭据可以应用于iOS保护空间。
我们目前正在使用AirWatch SDK来将此身份验证流程集成到SSO体验中。凭证应该能够应用于保护空间,从任何重要的凭证处理中删除我们的应用程序代码。
顺便说一句,David Thiel在一本名为“iOS Application Security”的书中对URL会话进行了很好的写作。如果您正在进行iOS应用程序安全性,那么它必须具备。