通过移动设备使用Active Directory验证用户

时间:2015-07-09 16:50:51

标签: azure mobile xamarin active-directory

这确实是最佳做法/安全类型问题。 这是设置 - 我正在构建一个移动应用程序,以便我们的员工可以在他们的移动设备上接收紧急通知(服务器中断,影响他们所在建筑物的恶劣天气等)。在当前(非常非常阿尔法)阶段,当在移动应用程序上注册时,他们可以简单地输入用户名。基本上 - 没有什么可以阻止某人下载应用程序并注册'使用像管理员这样的通用帐户'或类似的。我想要的是用户必须输入他们的AD密码并进行身份验证,以验证他们实际上是用户。

这里的捕获?我们的AD基础设施不是外部的。我们当然在DMZ中有Web服务器,但我们不希望将其用于身份验证。我目前正在使用Azure移动服务进行设备注册。然后,我们的服务器(不是外部)访问Azure以获取用户及其设备ID列表(当需要通知时),并适当地发送通知。

我可以想到几种方法来做我想要的事情(一个例子 - 发送加密密码并注册表,服务器抓取和解密,检查身份验证,然后通过设备发送通知/失败),但我想要其他人的一些意见。 你会怎么做呢?你有没有做过这样的事情?我现在对所有想法持开放态度。正如预期的那样,安全性是最受关注的问题,其次是效率/速度。

注意:这适用于iOS / WinPhone / Android,使用Xamarin

编辑:对不起,我应该提到,我们也提供Citrix XenMobile / Worx。我完全忘记了(另一支球队拥有)。尽管如此,不确定Worx是否可以将用户名传递给应用程序......(我对Worx一无所知)

2 个答案:

答案 0 :(得分:1)

我会使用Azure Active Directory(AAD)。您可以将您的onprem AD基础架构与AAD集成,有关详细信息,请参阅https://technet.microsoft.com/library/jj573653

然后您可以将AAD身份验证添加到您的应用中,请参阅https://azure.microsoft.com/en-us/documentation/articles/mobile-services-how-to-register-active-directory-authentication/以向手机应用添加身份验证。

一旦您的移动应用具有AAD身份验证,您就可以使用Azure Active Directory身份验证库(ADAL)。见https://msdn.microsoft.com/en-us/library/azure/dn151135.aspx。关于如何传递令牌并在此处使用AAD,有几个代码示例:https://msdn.microsoft.com/en-us/library/azure/dn646737.aspx

答案 1 :(得分:1)

您可能需要与XenMobile组件背后的任何人聊天,因为它可能会为您的问题提供解决方案。它可能提供以下内容(可能因为它取决于安装的内容及其配置方式)

  • App VPN
  • SSO机制(NTLM,KCD,Basic,Formfill等)

在完全打击的XenMobile(MDM,AppC,Netscaler)中你会" Wrap"应用程序并利用VPN以连接到后端服务。然后,您可以直接调用AD,也可以不构建身份验证,并依赖Web服务和netscaler。会像webservice一样发出401挑战,netscaler拦截并回复用户凭据,来自Web服务器的数据会传递到应用程序。