提供访问控制和单点登录的身份代理转让专利

申请号 : CN201680012311.7

文献号 : CN107534557B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : K.D.卡鲁纳卡兰V.帕瓦J.刘

申请人 : 移动熨斗公司

摘要 :

公开了提供对基于云的服务的安全访问的技术。在各种实施例中,从设备上的客户端app接收连接到与所述基于云的服务相关联的安全性代理的请求。使用所述设备与所述安全性代理与之相关联的节点之间的安全隧道连接以建立所请求的到所述安全性代理的连接。使用与安全隧道相关联的信息,以确定进行请求的客户端app被授权从所述设备访问所述基于云的服务并从与所述基于云的服务相关联的身份提供商获得安全性令牌,所述安全性令牌要由所述客户端app使用以认证到所述基于云的服务。

权利要求 :

1.一种提供对基于云的服务的安全访问的方法,包括:从设备上的第一客户端应用程序接收将所述第一客户端应用程序连接到安全性代理的请求,其中所述第一客户端应用程序与所述基于云的服务相关联;

确定在所述设备与第二基于云的服务之间存在安全隧道,其中安全隧道连接被用于将第二客户端应用程序认证到所述第二基于云的服务;以及使用所述安全隧道以建立所请求的到所述安全性代理的连接,并将所述第一客户端应用程序认证到所述基于云的服务,

其中与所述安全隧道相关联的信息被用于确定所述第一客户端应用程序被授权从所述设备访问所述基于云的服务并从与所述基于云的服务相关联的身份提供商获得安全性令牌,所述安全性令牌要由所述第一客户端应用程序使用以认证到所述基于云的服务。

2.如权利要求1所述的方法,其中所述请求由所述第一客户端应用程序响应于从所述基于云的服务接收到的重定向消息而发送。

3.如权利要求2所述的方法,其中所述重定向消息包括与所述安全性代理相关联的URL或其他定位符。

4.如权利要求1所述的方法,其中所述安全性代理与安全性代理服务器系统相关联,并且所述安全隧道是在所述设备与在所述安全性代理服务器系统上运行的隧道服务器之间建立的。

5.如权利要求1所述的方法,进一步包括:至少部分地通过从所述设备接收安全性证书来建立所述安全隧道。

6.如权利要求5所述的方法,进一步包括:使用包括所述安全性证书的信息,以确定设备、应用程序、用户和证书信息中的一个或多个。

7.如权利要求5所述的方法,进一步包括:使用与所述安全性证书相关联的信息,以确定所述第一客户端应用程序被授权访问所述基于云的服务。

8.如权利要求1所述的方法,其中所述安全性代理被配置成:使用与所述安全隧道相关联的信息,以至少部分地通过执行关于所述设备的依从性检验来确定所述第一客户端应用程序被授权从所述设备访问所述基于云的服务。

9.如权利要求1所述的方法,进一步包括:确定所述第一客户端应用程序是否被授权从所述设备访问所述基于云的服务。

10.如权利要求1所述的方法,进一步包括:监视所述设备的依从性态势;以及至少部分地基于所述设备的依从性态势已改变的指示来阻拦对所述基于云的服务的访问。

11.如权利要求1所述的方法,其中所述安全性代理包括:身份提供商代理,被配置成同与所述基于云的服务相关联的身份提供商具有链式身份提供商或其他基于信任的关系。

12.如权利要求11所述的方法,进一步包括:代表进行请求的客户端应用程序来建立所请求的到所述身份提供商代理的连接,而无需提供任何进一步的凭证。

13.如权利要求1所述的方法,其中所述安全性令牌包括安全性断言标记语言(SAML)断言。

14.如权利要求1所述的方法,其中所述安全性代理包括所委托的身份提供商。

15.如权利要求1所述的方法,其中所述安全性代理包括服务提供商代理。

16.如权利要求15所述的方法,其中所述服务提供商代理被配置成:作为以及代表与所述服务相关联的身份提供商代理,对所述安全性令牌进行签名。

17.一种提供对基于云的服务的安全访问的系统,包括:通信接口;以及

处理器,耦合到所述通信接口且被配置成:经由所述通信接口从设备上的第一客户端应用程序接收将所述第一客户端应用程序连接到安全性代理的请求,其中所述第一客户端应用程序与所述基于云的服务相关联;

确定在所述设备与第二基于云的服务之间存在安全隧道,其中安全隧道连接被用于将第二客户端应用程序认证到所述第二基于云的服务;

使用所述安全隧道以建立所请求的到所述安全性代理的连接,并将所述第一客户端应用程序认证到所述基于云的服务,

其中与所述安全隧道相关联的信息被用于确定所述第一客户端应用程序被授权从所述设备访问所述基于云的服务并从与所述基于云的服务相关联的身份提供商获得安全性令牌,所述安全性令牌要由所述第一客户端应用程序使用以认证到所述基于云的服务。

18.如权利要求17所述的系统,其中所述安全性代理包括身份提供商代理。

19.如权利要求17所述的系统,其中所述安全性代理包括服务提供商代理。

20.一种计算机可读储存介质,其中存储有提供对基于云的服务的安全访问的计算机程序产品,所述计算机程序产品体现在非瞬变计算机可读储存设备中且包括用于执行下述操作的计算机指令:

从设备上的第一客户端应用程序接收将所述第一客户端应用程序连接到安全性代理的请求,其中所述第一客户端应用程序与所述基于云的服务相关联;

确定在所述设备与第二基于云的服务之间存在安全隧道,其中安全隧道连接被用于将第二客户端应用程序认证到所述第二基于云的服务;

使用所述安全隧道以建立所请求的到所述安全性代理的连接,并将所述第一客户端应用程序认证到所述基于云的服务,

其中与所述安全隧道相关联的信息被用于确定所述第一客户端应用程序被授权从所述设备访问所述基于云的服务并从与所述基于云的服务相关联的身份提供商获得安全性令牌,所述安全性令牌要由所述第一客户端应用程序使用以认证到所述基于云的服务。

说明书 :

提供访问控制和单点登录的身份代理

[0001] 对其他申请的交叉引用
[0002] 本申请要求2015年1月26日提交的名称为IDENTITY PROXY TO PROVIDE MOBILE APP ACCESS CONTROL AND SINGLE SIGN ON的美国临时专利申请No. 62/107,927的优先
权,该美国临时专利申请出于所有目的通过引用并入本文。

背景技术

[0003] 越来越多地,移动设备正在将安全性保护和技术并入到操作系统中。在许多类型的设备中,应用被“沙盒化”且不能被设备上的其他app(应用程序)攻击。这也意味着:其自
身的沙盒中的每一个应用典型地执行认证和授权过程。例如,应用典型地不能共享下述会
话或令牌:其可以允许一个应用认证且允许其他应用利用相同的会话/令牌来得到单点登
录。
[0004] 安全性断言标记语言(SAML)是允许用户认证和授权数据被交换的XML标准。使用SAML,在线服务提供商(SP)可以联系分离的在线身份提供商(IDP)以认证正在尝试访问安
全资源的用户。在移动设备中,例如,可以使用SAML或其他标准和/或协议以将移动app用户
认证到关联的在线服务。然而,一些app可能不支持某些协议/标准,和/或可能不支持某些
技术,诸如到分离的IDP的重定向。
[0005] 使用基本认证可能不是期望的,例如以便防止用户的企业凭证(诸如企业用户名和密码)暴露在移动设备上和/或暴露于基于云的服务提供商(SP)。

附图说明

[0006] 在以下详细描述和附图中公开了本发明的各种实施例。
[0007] 图1A是图示了提供对基于云的服务的安全移动访问的系统的实施例的框图。
[0008] 图2是图示了提供对基于云的服务的安全移动访问的过程的实施例的流程图。
[0009] 图3是图示了提供对基于云的服务的安全移动访问的过程的实施例的流程图。
[0010] 图1B是图示了提供对基于云的服务的安全移动访问的系统的实施例的框图。
[0011] 图4是图示了代表移动客户端app建立安全隧道且请求连接的过程的实施例的流程图。
[0012] 图5是图示了基于设备安全性态势监视和控制对基于云的服务的访问的过程的实施例的流程图。
[0013] 图6是图示了提供对基于云的服务的安全移动访问的过程的实施例的流程图。
[0014] 图7是图示了提供对基于云的服务的安全移动单点登录访问的过程的实施例的流程图。
[0015] 图8是图示了基于设备安全性态势监视和控制对基于云的服务的访问的过程的实施例的流程图。
[0016] 图9是图示了提供对基于云的服务的安全移动访问的过程的实施例的流程图。
[0017] 图10是图示了经由所委托身份提供商架构和模型提供对基于云的服务的安全访问的系统的实施例的框图。
[0018] 图11A和11B是图示了在各种实施例中提供对服务的安全访问的图10中表示的实体之间的呼叫的序列的示例的序列图。

具体实施方式

[0019] 可以以许多方式实现本发明,该许多方式包括作为过程;装置;系统;物质组成;体现在计算机可读储存介质上的计算机程序产品;和/或处理器,诸如:被配置成执行存储在
存储器上和/或由存储器提供的指令的处理器,该存储器耦合到该处理器。在本说明书中,
这些实现方式或本发明可采取的任何其他形式可以被称作技术。一般地,可以在本发明的
范围内更改所公开的过程的步骤的次序。除非以其他方式声明,被描述为被配置成执行任
务的诸如处理器或存储器之类的部件可以被实现为:一般部件,其暂时被配置成在给定时
间处执行任务;或者具体部件,其被制造成执行任务。如本文所使用,术语“处理器”指代被
配置成处理数据(诸如计算机程序指令)的一个或多个设备、电路和/或处理核。
[0020] 下面连同图示了本发明原理的附图一起提供本发明的一个或多个实施例的详细描述。结合这样的实施例描述本发明,但本发明不限于任何实施例。本发明的范围仅受权利
要求限制,并且本发明涵盖了许多可替换方案、修改和等同方案。在以下描述中阐述了许多
具体细节以便提供对本发明的透彻理解。这些细节是出于示例的目的而提供的,并且,在没
有这些具体细节中的一些或全部的情况下可以根据权利要求来实践本发明。出于清楚的目
的,未详细描述本发明相关技术领域中已知的技术材料,使得不会不必要地模糊本发明。
[0021] 公开了访问供现代操作系统之用的安全资源的安全身份代理,包括而不限于在移动操作系统上运行的移动app。在各种实施例中,身份代理可以用于访问来自移动设备的安
全资源,诸如移动app(例如,在iOS®或Android®操作系统和/或设备上运行的app),或者
在其中可以通过操作系统(例如,Microsoft Windows® 10)对应用进行沙盒化或以其他方
式使应用彼此隔离的其他情境中。在各种实施例中,身份代理可以被配置成和/或用于执行
以下各项中的一个或多个:
[0022] · 关于移动app用户的安全访问控制,并入有动态信息,诸如移动设备安全性态势、app是否处于管理之下等,而不将凭证暴露于服务提供商;
[0023] · 针对多个移动设备app(例如,与企业或其他实体相关联的所管理的app的集合)的单点登录。
[0024] 在各种实施例中,可以提供安全代理。安全代理可以包括隧道服务器,所管理的移动设备可以被配置(例如,被隧道插件或其他隧道客户端配置)成经由安全隧道连接到该隧
道服务器。隧道的建立可以至少部分地基于从隧道客户端或移动设备上的另一受信任客户
端接收到的安全性证书。可以基于证书来确定设备身份,并且可以使用设备安全性态势信
息(例如,在管理之下、受损害、丢失/被盗等)以确定是否将建立安全隧道。一旦已经建立信
任,就可以建立并使用从用于访问基于云的服务的移动客户端app到身份提供商(IdP)代理
的TCP或其他连接,以针对客户端app获得SAML断言(或者其他安全性令牌或信息),以供客
户端app使用以访问基于云的服务。在一些实施例中,如果app、设备、用户等的安全性态势
或其他信息改变,则先前建立的对基于云的服务的访问可能被切断。在一些实施例中,通过
下述操作来提供单点登录:使安全隧道以及移动设备的关联信任一旦被建立就能够被移动
设备上的其他客户端app使用,以经由IdP代理获得SAML断言或其他令牌以便访问与这样的
其他客户端app相关联的相应的基于云的服务。
[0025] 在一些实施例中,安全代理可以包括所委托的身份提供商(所委托的IdP)。可以在服务提供商与包括安全代理的身份提供商代理(IdP代理)之间建立信任。在各种实施例中,
可以包括和使用服务提供商代理,以当直接从身份提供商(IdP)(例如,经由IdP发起的认
证)请求访问时提供安全访问。
[0026] 图1A是图示了提供对基于云的服务的安全移动访问的系统的实施例的框图。在所示的示例中,移动设备102包括移动设备管理代理器104。移动设备管理(MDM)代理器104可
以包括移动设备102的移动操作系统(例如iOS、Android)的本机MDM客户端和/或功能以及
第三方MDM客户端、代理器和/或app(例如,由第三方移动性管理提供商(诸如Mobile Iron, 
Inc.)提供的一个)中的一个或全部两个。移动设备102已在其上安装了被配置成用于访问
基于云的服务108的移动app 106。基于云的服务108的示例包括而不限于基于云的生产力
套件(诸如Microsoft® Office 365)以及客户关系管理(CRM)和其他商业应用(诸如SAP®
和salesforce.com®)。在各种实施例中,基于云的服务可以由下述各项中的一个或多个访
问:本机客户端应用(例如,邮件应用);与基于云的服务相关联的第三方客户端app,例如由
服务提供的一个;以及未被服务提供但可以用于和/或被配置成访问服务的第三方客户端
app。
[0027] 在图1A中所示的示例中,隧道插件110已经被安装在移动设备102上。在各种实施例中,隧道插件110可以被配置成建立到在安全性代理服务器或其他服务器系统116上运行
的隧道服务器114的安全隧道112。在一些实施例中,移动设备102的用户可以注册设备,例
如经由企业移动管理(EMM)服务器118。EMM服务器118可以被配置成将移动设备102配置成
由EMM服务器118和关联元件(诸如安全性代理116)管理。EMM服务器118可以被配置成经由
MDM代理器104(诸如通过使关联的MDM代理器104被安装在设备上和/或通过配置移动设备
102的本机MDM功能)来建立对移动设备118的MDM控制。在各种实施例中,可以使客户端app 
106处于EMM服务器118和/或MDM代理器104的管理之下。例如,可以提供配置简档或其他配
置数据,以确保经由隧道插件110的监管和/或在隧道插件110的监管之下发送与客户端app 
106相关联的连接请求和/或其他业务。
[0028] 在各种实施例中,隧道插件110可以被配置成选择性地引导与客户端app 106相关联的业务。例如,隧道插件110可以被配置成将由客户端app 106寻址到基于云的服务108的
业务直接转发到基于云的服务108,但经由隧道112来发送寻址到与安全性代理服务器116
相关联的节点的业务。在一些实施例中,客户端app 106可以将所有业务寻址到服务108,并
且移动或其他操作系统(例如,Android®、Microsoft Windows® 10)可以被配置(例如,被
移动设备管理服务器或其他MDM权威机构配置)成将所选app业务直接发送到服务108且仅
经由隧道(诸如隧道112)发送来自相同app的其他业务。
[0029] 在各种实施例中,可以至少部分地基于向隧道插件110提供的证书(例如,由EMM服务器118提供给隧道插件110的证书)来建立安全隧道112。
[0030] 在图1A中所示的示例中,安全性代理116包括:身份提供商(IdP)代理120,其被配置成与经由信任关系126而与基于云的服务108相关联的“现实”身份提供商(IdP)124具有
“链式IdP”或其他信任关系122。在一些实施例中,基于云的服务108可以被配置成信任(例
如,基于先前交换的证书等)现实IdP 124,但将在基于云的服务108处接收到的连接请求重
定向到IdP代理120,以执行认证,如下面结合图1B更充分描述的那样。
[0031] 图1B是图示了提供对基于云的服务的安全移动访问的系统的实施例的框图。在所示的示例中,客户端app 106经由隧道插件110向基于云的服务108发送建立到基于云的服
务108的连接128的请求。在各种实施例中,移动设备102可以被配置(例如,被移动设备102
的MDM代理器104和/或本机MDM功能配置)成经由隧道插件110来发送与客户端app 106相关
联的连接请求和/或其他通信。在各种实施例中,基于云的服务108可以被配置成向认证节
点重定向来自尚未被认证的客户端(诸如客户端app 106)的连接请求。在一些实施例中,可
以使用安全性访问标记语言(SAML)标准。
[0032] 在所示的示例中,基于云的服务108可以被配置成将连接请求重定向到与IdP代理120相关联的URL。在被重定向时,客户端app 106可以将建立连接130的请求发送到IdP代理
120,以执行获得对基于云的服务108的访问所需的认证。在各种实施例中,隧道插件110可
以被配置成将连接请求识别为与IdP代理120相关联(例如,基于URL),且可以被配置成仅经
由安全隧道(诸如隧道112)来发送被引导到IdP代理120的连接请求和/或其他业务。在一些
实施例中,如果隧道112尚未被建立,则隧道插件110可以被配置成响应于连接请求而建立
安全隧道,且一旦隧道已经被建立,就经由隧道来发送连接请求。
[0033] 在各种实施例中,被提供给隧道插件110的证书或其他安全性凭证和/或信息可以被隧道插件110使用以建立安全隧道112。证书或其他信息可以被隧道服务器114、IdP代理
120和/或其他部件使用以认证用户和/或移动设备102。在一些实施例中,基于证书的认证
使认证能够被执行,而无需用户的企业凭证(例如,用户名和密码)被录入在移动设备102处
或以其他方式存储在移动设备102上和/或被披露给基于云的服务108。在一些实施例中,可
以在安全性代理服务器116处使用由隧道插件110呈现以建立安全隧道112的证书,以认证
用户和移动设备102。用户和/或设备信息可以与安全性代理服务器116处的证书相关联。安
全性代理服务器116可以具有对企业目录(诸如Microsoft® Active Directory®(微软活
动目录))的信任关系和直接或间接(例如,经由另一服务器)连接,且可以被配置成从该目
录获得用户信息(例如,角色、区、组或划分等)。
[0034] 在图1B中所示的示例中,隧道服务器114和/或IdP代理120已经允许经由安全隧道112在客户端app 106与IdP代理120之间建立连接130。在一些实施例中,可以在允许安全隧
道112和/或连接130被建立之前检验移动设备102的设备安全性态势和/或其他态势信息。
例如,可以通过查询EMM服务器118来执行依从性检验,以确保移动设备102依从和/或保持
依从。EMM服务器118可以被配置成从移动设备102接收信息(例如,经由MDM代理器104),并
基于此来作出安全性或其他设备依从性态势确定。例如,如果先前处于管理之下的移动设
备102和/或一个或多个app不再处于管理之下,或者移动设备102已经“被越狱”或根访问获
得或者以其他方式受损害,或者如果已经安装未授权的app等等,则EMM服务器118可以确定
移动设备102不再依从。在各种实施例中,隧道插件110、隧道服务器114、IdP代理120和/或
其他部件中的一个或多个可以被配置成执行关于移动设备102的依从性检验。
[0035] 在一些实施例中,隧道服务器114、IdP代理120和/或IdP 124中的一个或多个可以被包括在EMM服务器118中。在一些实施例中,例如,如果EMM服务器118在屋里和/或IdP 124
被包括在EMM服务器118中,则可以省略IdP代理120。在一些实施例中,至少有限的隧道服务
器114可以被包括在EMM服务器118中。隧道客户端(诸如隧道插件110)可以被配置成通过直
接与EMM服务器118通信来执行移动设备依从性检验。
[0036] 在一些实施例中,隧道插件110可以支持和提供高级分割隧道能力。例如,在一些实施例中,隧道插件110可以被配置成除了将业务直接发送到服务提供商或其他目的地外,
还从多个隧道服务器当中选择其需要哪个隧道服务器以用于各种目的地。例如,在其中IdP
代理120被包括在EMM服务器118中的实施例中,IdP代理业务可以被发送到EMM服务器118,
而去往基于云的服务提供商的业务可以被直接发送到服务。
[0037] 在各种实施例中,在建立隧道112和/或连接130之后执行持续依从性监视。如果先前依从的移动设备102被确定为已经停止依从,则可以采取响应动作,例如切断从客户端
app 106直接到基于云的服务108的连接130、隧道112和通信中的一个或多个。在各种实施
例中,可以监视持续依从性,和/或可以由隧道服务器和隧道插件中的一个或全部两个实行
访问控制。例如,隧道插件可以实行本地策略,诸如“失去与EMM服务器的联系达超过规定小
时数”。在一些实施例中,可以使用分割隧道,并且可以在按app和/或按隧道的基础上实行
策略。
[0038] 在各种实施例中,连接130可以被客户端app 106使用,以从IdP代理120获得SAML断言或其他安全性令牌,以供客户端app 106使用以将其自身认证到基于云的服务108。IdP
代理120可以被配置成代表客户端app 106从IdP 124获得由IdP 124签名且因而受基于云
的服务108信任的安全性令牌。在一些实施例中,一旦被认证,就可以经由连接128来发送客
户端app 106与基于云的服务108之间的服务相关业务。
[0039] 在各种实施例中,可以提供单点登录功能。隧道插件110可以被配置成使用现有安全隧道(诸如隧道112),该现有安全隧道被建立以使第一客户端app(诸如客户端app 106)
能够连接到IdP代理120,以便随后使第二(或另一)客户端app(未示出)能够经由相同隧道
112连接到IdP代理120。将已经结合建立隧道112来建立移动设备102与安全性代理服务器
116之间的信任,并且在一些实施例中,可以使用结合认证和提供安全性令牌到客户端app 
106而获得且高速缓存的用户和/或设备信息,以获得且向第二(或其他随后)客户端app提
供安全性令牌,以供第二(或其他随后)app使用,以便认证其自身且获得对第二(或其他随
后)app与之相关联的基于云的服务的访问。
[0040] 图2是图示了提供对基于云的服务的安全移动访问的过程的实施例的流程图。在各种实施例中,图2的过程可以由隧道插件或其他隧道客户端(诸如图1A和1B的隧道插件
110)实现。在所示的示例中,从与基于云的服务相关联的客户端app接收连接请求(202)。如
果该连接请求不是隧道插件或其他实体被配置成仅通过安全隧道(诸如图1A和1B的隧道
112)发送的连接请求(例如,去往基于云的服务的连接请求)(204),则允许连接(206)并且
将该连接请求转发到目的地。如果取而代之该连接请求被确定为与要仅经由安全隧道进行
连接到的目的地相关联(诸如,在图1A和1B中所示的示例中,去往IdP代理120的连接请求)
(204),则建立到目的地的安全隧道(208)(在一些实施例中,除非已经存在),并且经由安全
隧道将该连接请求发送到目的地(210)。如果成功建立连接(212),则该过程结束。如果否
(212),则返回合适的错误消息,诸如“认证失败了”(214),此后,该过程结束。
[0041] 图3是图示了提供对基于云的服务的安全移动访问的过程的实施例的流程图。在各种实施例中,图3的过程可以由隧道服务器或其他服务器侧部件(诸如图1A和1B的隧道服
务器114)实现。在所示的示例中,从移动设备接收建立安全隧道且连接到IdP代理的请求
(302)。检验移动设备的安全性(或其他依从性)态势(304)。例如,可以至少部分地基于由被
配置成管理移动设备的EMM服务器(诸如图1A和1B的EMM服务器118)提供的信息来执行依从
性检验。如果移动设备被确定为不安全(或以其他方式依从)(306),则拒绝建立隧道和/或
连接到IdP代理的请求(308)。如果移动设备被确定为安全(或以其他方式依从)(306),则建
立到IdP代理的隧道和所请求的连接(310)。
[0042] 图4是图示了代表移动客户端app建立安全隧道且请求连接的过程的实施例的流程图。在各种实施例中,图4的过程可以用于执行图3的过程的步骤310,且可以由隧道服务
器或其他服务器侧部件(诸如图1A和1B的隧道服务器114)实现。在所示的示例中,终止(即,
建立)安全隧道,诸如图1A和1B的隧道112(402)。将要被发送到IdP代理的业务转换成TCP流
(例如,由隧道服务器(诸如图1A和1B的隧道服务器114)转换)(404)。在一些实施例中,可以
使用除TCP连接外的连接,并且省略步骤404。代表请求了连接到IdP代理的移动app和设备
来建立到IdP代理的TCP(或其他)连接(406)并且使用该TCP(或其他)连接以发送TCP流(或
其他app业务)。经由安全专用信道将移动app、用户、设备和/或证书信息传递到IdP代理
(408)。在各种实施例中,经由安全专用信道而传递到IdP代理的信息可以由IdP代理使用,
以认证用户/设备/app和/或从与基于云的服务相关联的“现实”IdP获得凭证,该凭证要由
进行请求的移动客户端app使用以访问基于云的服务。
[0043] 图5是图示了基于设备安全性态势监视和控制对基于云的服务的访问的过程的实施例的流程图。在各种实施例中,图5的过程可以由移动设备管理代理器、隧道插件、隧道服
务器和身份提供商(IdP)代理(诸如图1A和1B的MDM代理器104、隧道插件110、隧道服务器
114和/或IdP代理120)中的一个或多个实现。在所示的示例中,监视移动设备安全性(或其
他依从性)态势信息以确保持续的依从性(502)。如果移动设备和/或移动app被确定为已经
变成非依从的(504),则阻拦对基于云的服务的进一步访问(506)。否则,监视继续直到被完
成(508),例如,移动设备不再连接到对其的访问由实现图5的过程的节点管理的任何基于
云的服务。
[0044] 图6是图示了提供对基于云的服务的安全移动访问的过程的实施例的流程图。在各种实施例中,图6的过程可以由身份提供商(IdP)代理(诸如图1A和1B的IdP代理120)实
现。在所示的示例中,接受来自移动客户端app的TCP连接(602)。例如,在图1B中所示的示例
中,IdP代理120可以接受TCP连接130的建立。使用经由安全专用信道从隧道服务器(或其他
节点)接收到的移动设备、app、用户和/或证书信息以认证进行请求的app、移动设备和/或
用户中的一个或多个(604)。如果对已请求对其的访问的基于云的服务的访问被确定为未
被授权(606),则返回指示认证已经失败的响应(608)。如果访问被确定为已授权(606),则
生成SAML断言并将其发送到与基于云的服务相关联的身份提供商(IdP)(诸如图1A和1B中
所示的示例中的IdP 124)(610)。从与基于云的服务相关联的IdP接收要被提供给进行请求
的客户端app以认证到服务的SAML断言(612)。将从IdP接收到的SAML断言提供给已请求对
服务的访问的客户端app(614),以由客户端app使用以便认证到基于云的服务。
[0045] 尽管上面的示例和本文描述的其他示例提到了SAML断言的使用,但是在各种实施例中,可以使用和/或提供其他安全性令牌和/或凭证,以使移动客户端app能够至少部分地
基于至少部分地通过建立安全隧道(诸如图1A和1B的隧道112)而在移动设备与管理节点
(诸如图1A和1B的安全性代理服务器系统116)之间建立的信任来认证到基于云的服务。
[0046] 图7是图示了提供对基于云的服务的安全移动单点登录访问的过程的实施例的流程图。在各种实施例中,图7的过程可以由隧道插件或其他隧道客户端(诸如图1A和1B的隧
道插件110)和/或隧道服务器或其他服务器侧部件(诸如图1A和1B的隧道服务器114)实现。
在所示的示例中,接收建立到IdP代理的连接的请求(702),例如在隧道插件(诸如图1A和1B
的隧道插件110)处。确定是否已经建立到与IdP相关联的目的地的安全隧道(704)。如果是,
则使用现有隧道以代表进行请求的移动客户端app来建立到IdP的连接(706)。如果否
(704),则如上所述那样建立隧道,且使用该隧道以建立所请求的到IdP代理的连接。
[0047] 在各种实施例中,如果如本文描述的那样一个移动app已经认证到其关联的基于云的服务,则随后的app可以使用相同安全隧道和关联的信任来认证到其相应的关联服务,
该相同安全隧道和关联的信任被建立以服务于第一移动app的请求到IdP代理的连接的连
接请求。在各种实施例中,可以使用在安全性代理服务器处高速缓存和/或重新生成的安全
性令牌(例如,小甜饼、SAML断言),以允许随后的app认证到其相应的基于云的服务。在各种
实施例中,可以在安全性代理服务器处(例如,在隧道服务器、IdP代理或另一实体处/由隧
道服务器、IdP代理或另一实体)高速缓存用户、移动设备、app和证书信息中的一个或多个,
并可以使用用户、移动设备、app和证书信息中的一个或多个以获得安全性令牌,该安全性
令牌要由相同设备上的第二或其他随后进行请求的移动app使用以认证到其对应的基于云
的服务。
[0048] 图8是图示了基于设备安全性态势监视和控制对基于云的服务的访问的过程的实施例的流程图。在各种实施例中,图8的过程可以由移动设备管理代理器、隧道插件、隧道服
务器和身份提供商(IdP)代理(诸如图1A和1B的MDM代理器104、隧道插件110、隧道服务器
114和/或IdP代理120)中的一个或多个实现。在所示的示例中,接收经更新的移动设备安全
性、策略和/或其他依从性信息(802)。例如,隧道插件、以及MDM代理器、以及安全性代理服
务器中的一个或多个可以从EMM服务器或针对依从性监视移动设备的其他节点接收与移动
设备有关的经更新的信息。可以在适用的情况下应用一个或多个有条件的访问控制规则,
以确定和采取可能必需的任何响应动作。例如,可以将一个或多个规则存储在安全性代理
服务器(诸如图1A和1B的服务器116)上。每一个规则可以指示在被满足的情况下要求在规
则中定义的一个或多个响应动作被采取的一个或多个准则。例如,规则可以指示:如果移动
设备被确定为已经被越狱和/或获取根权限(rooted),则要切断对基于云和/或基于企业营
业场所的服务的访问。另一规则可以指示:如果设备被带到某个地理地区(例如,地理围栏、
故国、家乡地区、企业园区或不是这些等)外,则可以以缺少阻拦访问的方式(诸如,通过限
制对某些在屋里或基于云的服务和/或资源的访问,限制诸如下载、转发、张贴等之类的功
能)降级或调节访问。
[0049] 在各种实施例中,基于规则的方法使得能够通过更新规则集来容易地改变策略,并允许在移动设备和其上安装的app之上定义和练习更精细的控制。
[0050] 图9是图示了提供对基于云的服务的安全移动访问的过程的实施例的流程图。在各种实施例中,图9的过程可以由身份提供商(IdP)代理(诸如图1A和1B的IdP代理120)实
现。在各种实施例中,图9的过程可以用于取决于用于访问服务的设备和/或应用的性质来
差异性地管理对基于云的或其他的服务的访问。在所示的示例中,在IdP代理处直接(即,不
是如图1B中所示的示例中那样经由隧道或隧道服务器)从浏览器或其他应用接收连接请求
(902)。在各种实施例中,可以从进行通信的浏览器、未管理的应用或所管理的应用而不是
经由安全隧道接收连接请求。如果与桌面浏览器或其他桌面软件形成对照,浏览器或其他
进行请求的应用被确定为与移动设备相关联(904),则发送挑战以请求提供证书以便认证
用户和/或设备(906)。在一些实施例中,可以发送除呈现证书的挑战外的响应。例如,可以
基于IP地址(例如,列入白名单的IP地址范围等)和/或与是否应当允许连接有关的其他动
态确定的信息来作出确定。如果证书未被提供和/或被确定为不是有效的(或者在一些实施
例中,被确定为与当前未处于安全的或以其他方式依从的态势中的设备相关联),或者在一
些可替换实施例中,如果用于接受连接的其他准则(例如,在列入白名单的IP范围和/或其
他所配置和/或可配置的接受准则内),则拒绝访问(910)。如果存在有效证书(908),或者如
果浏览器被确定为桌面(即,非移动)浏览器(和/或其他接受准则已经被确定为已被满足)
(904),则正常处理请求(912),诸如通过将请求传递(例如,对连接进行代理)直到与服务相
关联的“现实”IdP。在一些实施例中,即使有效证书已经被呈现(908),也可以应用有条件的
访问规则以确定是允许还是阻拦请求,例如基于用户代理器(例如,所使用的浏览器或其他
软件的品牌或版本、源IP地址等)。
[0051] 在所示的示例中,系统和环境1000包括一个或多个用户代理器,由用户代理器1002在图10中表示,例如而不限于浏览器、所管理的app、未管理的app、或者在移动或其他
设备上运行的其他软件,该一个或多个用户代理器被配置成用于访问由服务提供商1004
(例如Box.com™、Dropbox™或salesforce.com®)提供的基于云的服务。用户代理器1002
与身份提供商1006相关联,身份提供商1006例如是在屋里的、基于云的或其他的身份提供
商,诸如由Ping Identity Corporation™供应的PingOne™服务。在所示的示例中,已经在
服务提供商1004与在安全性代理服务器1010上运行的身份提供商代理1008之间建立信任
关系。例如,服务提供商1004和身份提供商代理1008可能已经交换证书。类似地,已经(例
如,经由证书的交换)在身份提供商1006与服务提供商代理1012之间建立信任关系。
[0052] 在如下面结合图11A和11B更充分描述的一些实施例中,身份提供商代理1008和服务提供商代理1012具有在它们之间建立的信任关系,并且每一个已经被配置成代表另一个
来重新签名断言。例如,在各种实施例中,身份提供商代理1008被配置成向服务提供商1004
和/或用户代理器1002提供(例如,用于进一步呈现给身份提供商1006且供身份提供商1006
消耗)由身份提供商代理1008代表(即,充当且显现为)服务提供商代理1012而签名的断言。
类似地,在各种实施例中,服务提供商代理1012被配置成向身份提供商1006和/或用户代理
器1002提供(例如,用于进一步呈现给服务提供商1004且供服务提供商1004消耗)由服务提
供商代理1012代表(即,充当且显现为)身份提供商代理1008而签名的断言。
[0053] 在各种实施例中,用户代理器1002可以通过首先联系服务提供商1004或者通过首先利用身份提供商1006进行认证且然后访问由服务提供商1004提供的服务,来发起对由服
务提供商1004提供的服务的访问。例如,用户代理器1002可以向服务提供商1004发送访问
服务的请求。如果服务提供商1004确定不存在与用户代理器1002的现有(即,先前认证的)
会话,则服务提供商1004可以被配置成将用户代理器1002重定向到身份提供商代理1008,
身份提供商代理1008进而可以经由由身份提供商代理1008使用与服务提供商代理1012相
关联的证书而签名的通信,将用户代理器1002重定向到身份提供商1006。身份提供商1006
可以针对凭证而挑战用户代理器1002,且在成功登陆时可以向用户代理器1002提供第一
(SAML或其他)断言以用于呈现给服务提供商代理1012,该服务提供商代理1012可以被配置
成用于向用户代理器1002提供由服务提供商代理1012使用与身份提供商代理1008相关联
的证书而签名的第二(SAML或其他)断言,以呈现给服务提供商1004以便获得对服务(或其
他资源)的访问。
[0054] 在各种实施例中,身份提供商发起的认证可以由用于经由身份提供商1006进行访问和登录的用户代理器1002在试图访问与服务提供商1004相关联的服务之前执行。在成功
登录时,身份提供商1006可以经由在用户代理器1002处呈现的图形或其他用户界面来提供
经认证的用户可访问的一个或多个服务的例如网页、列表或其他表示。与服务提供商1004
相关联的服务的选择可以导致身份提供商1006向用户代理器1002提供第一(SAML或其他)
断言以用于呈现给服务提供商代理1012,该服务提供商代理1012可以被配置成用于向用户
代理器1002提供由服务提供商代理1012使用与身份提供商代理1008相关联的证书而签名
的第二(SAML或其他)断言,以呈现给服务提供商1004以便获得对服务(或其他资源)的访
问。
[0055] 图11A和11B是图示了在各种实施例中提供对服务的安全访问的图10中表示的实体之间的呼叫的序列的示例的序列图。首先参照图11A,在所示的示例中,将访问服务的请
求1102从用户代理器1002发送到服务提供商1004。服务提供商1004处理请求(1104),并在
该示例中确定不存在先前认证的会话。服务提供商1004经由通信1106将用户代理器1002重
定向到身份提供商代理1008,通信1106包括要被呈现给身份提供商代理1008的认证请求。
用户代理器1002经由超文本传输协议(HTTP)GET请求1108将认证请求提供给身份提供商代
理1008。在各种实施例中,可以通过例如由隧道插件或者移动(或其他)设备上的其他实体
实行的有条件的访问控制规则来对请求1108进行门控。身份提供商代理1008处理请求
(1110),包括:通过生成由身份提供商代理1008使用与服务提供商代理1012相关联的证书
(或其他秘密数据)而签名的第二认证请求。经由重定向通信1112将第二认证请求提供给用
户代理器1002,重定向通信1112将用户代理器重定向到身份提供商1006。用户代理器1002
进而经由GET请求1114将第二认证请求(由身份提供商代理1008使用与服务提供商代理
1004相关联的证书而签名,以便显现成已由服务提供商代理1004签名)提供给身份提供商
1006。身份提供商1006接收和处理GET请求(1116)。
[0056] 现在参照图11B,在服务提供商发起的认证场景(诸如上面结合图11A描述)中,由身份提供商1006在1116处执行的处理可以包括:利用服务提供商代理签名发证书来验证第
二认证请求;以及得出针对用户代理器1002未找到现有的经认证的身份提供商会话的结
论。在一些实施例中,可以由身份提供商1006在1116处响应于身份提供商发起的认证请求
(例如,来自用户代理器1002)执行处理。
[0057] 进一步参照图11B,在服务提供商发起的认证(参见图11A)或身份提供商发起的认证的情况下,身份提供商1006发送针对凭证1118的挑战。用户可以在1120处录入凭证(例
如,用户名和密码),并经由用户登录响应1122将它们提交到身份提供商1006。身份提供商
在1124处(例如,使用企业Active Directory®(活动目录)或其他目录信息)来证实凭证,
并生成第一SAML(或其他)断言(如所示的“Assertion1”)和关联的身份提供商会话(例如,
针对身份提供商域设置小甜饼)。经由用户代理器1002经由HTTP POST通信将第一断言提供
给服务提供商代理1012(1126、1128)。在一些实施例中,可以通过有条件的访问规则(例如
由隧道插件)对通信1128进行门控。例如,在一些实施例中,如果设备处于依从态势/状态
中,则通信1128可以仅被张贴给服务提供商代理。服务提供商代理1012处理请求(1130),例
如通过消耗第一断言并生成由服务提供商代理1012代表身份提供商代理1008(即,使用身
份提供商代理1008的证书,以便显现成已由身份提供商代理1008发布和/或发送)而签名的
第二断言。经由POST通信1132将第二断言发送到用户代理器1002,从而导致经由POST通信
1134将第二断言呈现给服务提供商1004。服务提供商1004消耗第二断言(1136)并针对用户
代理器1002生成服务提供商会话(例如,针对服务提供商域设置小甜饼或其他令牌,诸如
OAuth),从而使用户代理器1002能够在服务访问会话1138期间访问服务或其他资源。
[0058] 在一些实施例中,可以在其中移动或其他设备可以处于EMM服务器或其他移动设备管理(MDM)实体的管理之下和/或其中可以管理(或不管理)所管理的设备上的所有app或
app子集的环境中使用所委托身份提供商架构和模型,诸如图10中所示的架构和模型。在一
些实施例中,可以使用MDM依从性或其他设备态势信息以阻拦或限制对由服务提供商提供
的服务的访问。
[0059] 在一些实施例中,可以在所管理的移动或其他设备与安全性代理服务器或其他服务器或者同这样的安全性代理服务器相关联的节点之间建立安全隧道,在该安全性代理服
务器或其他服务器上有身份提供商代理(诸如身份提供商代理1008)和服务提供商代理(诸
如服务提供商代理1012)中的一个或全部两个。如上所述,可以呈现证书或其他密码数据以
建立安全隧道。证书可以被映射到设备、用户、app等,且可以用于确定依从性/态势信息。在
各种实施例中,安全隧道可以用于控制对基于云的服务的访问,例如通过阻拦到身份提供
商代理和/或服务提供商代理的连接。
[0060] 在各种实施例中,有条件的访问规则可以由用户定义且由安全性代理服务器或相关节点实行,包括:在其中使用所委托身份提供商代理架构的系统中。可以基于情境信息来
应用有条件的访问规则,该情境信息例如是:设备和/或用户代理器(例如,进行请求的移动
app)是否处于管理之下;用户代理器软件的类型、提供商和版本(例如,浏览器、浏览器的类
型等);IP地址(例如,列入白名单的IP地址范围);是经由身份提供商还是经由服务提供商
来发起连接;操作系统和/或平台的类型;等等。
[0061] 在各种实施例中,本文公开的技术可以使得能够向基于云的服务提供安全访问。可以使用单点登录和设备安全性态势(和/或其他信息)以提供、管理和/或控制移动设备的
用户对基于云的服务的访问,而不暴露在移动设备上和/或在基于云的服务处存储或录入
的企业用户凭证,诸如用户名和密码。
[0062] 尽管已经出于清楚理解的目的稍为详细地描述了上述实施例,但本发明不限于所提供的细节。存在实现本发明的许多可替换方式。所公开的实施例是说明性的而不是限制
性的。