用于访问资源的方法、计算机可读介质以及移动设备与流程

文档序号:21405683发布日期:2020-07-07 14:39阅读:287来源:国知局
用于访问资源的方法、计算机可读介质以及移动设备与流程

本公开总体上涉及用于本机移动应用发起的openid连接(oidc)和安全断言标记语言(securityassertionmarkuplanguage,saml)流的无缝单点登录(singlesign-on,sso)的计算机联网系统及方法。



背景技术:

openid连接(oidc)1.0是oauth2.0协议之上的简单身份层。openid连接允许客户端基于由授权服务器执行的认证来验证终端用户的身份,并且以可互操作且类似于rest的方式(类似于表述性状态转移(representationalstatetransfer)的方式)获得关于终端用户的基本配置文件信息。

安全断言标记语言(saml)是用于在断言用户身份的saml联合身份提供者(identityprovider,idp)与消费用户身份信息的saml联合服务提供者(serviceprovider,sp)之间交换单点登录信息的xml标准。

虽然这两种技术都被用作单点登录(sso)解决方案,但oidc和saml完全交托认证提供者来确定如何认证用户的过程。支持这些针对sso的开放标准(openstandard)的若干认证提供者具有它们自己的“认证用户”的方法或过程,其输出/结果是所有oidc和saml流中的一个重要步骤,因为在oidc流的这一阶段,认证代码(“authcode”)由认证提供者产生并被提供给oidc依赖方,在saml流的情况下,saml断言被构造并被发送到saml依赖方(relyingparty,sp)。

单点登录(sso)是允许用户通过一组登录凭据访问多个应用的认证过程。例如,单点登录是企业中的常见手续,其中客户端访问连接到局域网(lan)的多个资源。



技术实现要素:

考虑到以上问题,期望具有启用oidc和saml流的方法,该oidc和saml流作为来自移动设备上的移动应用(例如本机应用)的登录动作的结果而经由单点登录(sso)发起,并且其中由于用户已经被认证,因此用户不受系统的认证的干扰。

公开了一种用于从移动设备访问托管在依赖方服务器上的资源的方法,该方法包括:在移动设备上托管本机应用,本机移动设备具有用于被预认证的用户的用户代理;响应于对托管在依赖方服务器上的资源的请求,从认证服务器接收对针对被预认证的用户的认证令牌的重定向请求;响应于来自认证服务器的重定向请求,将来自移动设备的用户代理的针对被预认证的用户的认证令牌发送到认证服务器;在认证服务器上认证来自用户代理的认证令牌并生成针对被认证的用户的认证cookie以访问依赖方服务器上的资源;向移动设备发送认证cookie;以及当依赖方服务器接收到认证cookie时,向被预认证的用户授权对托管在依赖方服务器上的资源的访问。

一种非暂时性计算机可读介质,存储由处理器执行的计算机可读程序代码,用于从移动设备访问托管在依赖方服务器上的资源,过程包括:在移动设备上托管本机应用,本机移动设备具有用于被预认证的用户的用户代理;响应于对托管在依赖方服务器上的资源的请求,从认证服务器接收对针对被预认证的用户的认证令牌的重定向请求;响应于来自认证服务器的重定向请求,将来自移动设备的用户代理的针对被预认证的用户的认证令牌发送到认证服务器;在认证服务器上认证来自用户代理的认证令牌并生成针对被认证的用户的认证cookie以访问依赖方服务器上的资源;向移动设备发送认证cookie;以及当依赖方服务器接收到认证cookie时,向被预认证的用户授权对托管在依赖方服务器上的资源的访问。

一种移动设备,具有本机应用,用于从该移动设备访问托管在依赖方服务器上的资源,移动设备包括:处理器;用户界面;以及具有操作系统的存储器和具有针对被预认证的用户的认证令牌的用户代理,操作系统和用户代理被配置为:响应于对托管在依赖方服务器上的资源的请求,从认证服务器接收对针对被预认证的用户的认证令牌的重定向请求;响应于来自认证服务器的重定向请求,将来自移动设备的用户代理的针对被预认证的用户的认证令牌发送到认证服务器;接收根据来自用户代理的认证令牌的认证在认证服务器上生成的认证cookie,所述认证cookie被配置为向被认证的用户授权对依赖方服务器上的资源的访问;以及通过认证cookie访问托管在依赖方服务器上的资源。

应当理解,前面的总体描述和下面的详细描述这二者都是示例性和解释性的,并且旨在提供对所要求保护的本发明的进一步解释。

附图说明

包括附图以提供对本发明的进一步理解,并且附图被并入本说明书中并构成本说明书的一部分。附图例示说明本发明的实施例,并且与描述一起用于解释本发明的原理。

图1是具有用于本机移动应用触发的openid连接(oidc)和安全断言标记语言(saml)流的无缝单点登录(sso)的系统的例示说明。

图2是根据示例性实施例的计算机或服务器的例示说明。

图3a是根据示例性实施例的移动设备的例示说明。

图3b是根据示例性实施例的移动设备的显示单元或用户界面的例示说明。

图4a是如图3b所示的移动设备的显示单元或用户界面的例示说明。

图4b是如图3b所示的移动设备的显示单元或用户界面的例示说明。

图5a和5b是例示说明支持通过oidc进行sso登录的本机移动应用的流程的流程图。

图6a和6b是例示说明支持通过saml进行sso登录的本机移动应用的流程的流程图。

具体实施方式

现在将详细参考本发明的当前优选实施例,其示例在附图中例示说明。在附图和说明书中尽可能使用相同的附图标记指代相同或相似的部分。

图1是具有用于本机移动应用触发的openid连接(oidc)和安全断言标记语言(saml)流的无缝单点登录(sso)的系统100的例示说明。如图1所示,系统100可以包括计算机或客户端设备110、至少一个移动计算机112、一个或多个saml-sp依赖服务器(saml-spa,saml-spb,saml-spc)120、一个或多个oidc依赖方服务器(oidc依赖方a,oidc依赖方b)121、一个或多个saml-idp服务器130、以及一个或多个oidc提供者服务器131。根据示例性实施例,计算机或客户端设备110、至少一个移动计算机112、一个或多个saml-sp依赖服务器120、一个或多个oidc依赖方服务器121、一个或多个saml-idp服务器130、以及一个或多个oidc提供者服务器131可以经由通信网络150连接。根据示例性实施例,通信网络或网络150可以是公共电信线路和/或网络(例如lan或wan)。通信网络150的示例可以包括与本公开的实施例一致的任何电信线路和/或网络,包括但不限于电信或电话线、因特网、内联网、所示出的局域网(lan)、广域网(wan)和/或使用射频(rf)和/或红外(ir)传输的无线连接。

另外,例如,接入点140可以与通信网络150通信,以提供移动计算机(例如智能电话)112和通信网络150之间的无线或蜂窝数据通信。根据示例性实施例,接入点140可以是允许wi-fi设备连接到有线网络的任何联网硬件设备,或者可以允许蜂窝设备(例如移动计算机(或智能电话)112)连接到有线网络150的硬件设备。

openid连接(oidc)是oauth2.0协议之上的身份层,允许计算客户端基于由授权服务器执行的认证来验证终端用户的身份,并且以可互操作且类似于rest的方式获得关于终端用户的基本配置文件信息。用技术术语来说,openid连接使用json(javascriptobjectionnotation,javascript对象简谱)作为数据格式来指定restful(representationalstatetransfer,表述性状态转移)、http(hypertexttransferprotocol,超文本传输协议)和api(applicationprograminterface,应用程序接口)。例如,openid连接允许一些客户端(包括基于web的客户端、移动客户端和javascript客户端)请求并接收关于认证的会话和终端用户的信息。规范套件还可以支持可选特征,诸如身份数据的加密、openid提供者的发现以及会话管理。

如图1所示,例如,可以由一个或多个oidc提供者131(例如认证提供者)产生认证代码,然后该认证代码被提供给一个或多个oidc依赖方服务器121。根据示例性实施例,一个或多个oidc依赖方服务器121可以是被配置为例如提供对如本文所公开的一个或多个安全软件应用的客户端访问的服务器。

安全断言标记语言(saml)是用于在断言用户身份的saml联合身份提供者(saml-idp)与消费用户身份信息的saml联合服务提供者(saml-sp)之间交换单点登录(sso)信息的xml标准。samlv2.0(安全断言标记语言版本2)支持idp发起的流和sp发起的流。在idp发起的samlsso流中,saml-idp为用户身份创建saml单点登录断言,并且以未经请求的方式将saml单点登录断言发送到sp(serviceprovider,服务提供者)120。在sp发起的samlsso流中,sp生成saml2.0authnrequest(例如认证请求),作为联合过程中的第一步将其发送到saml-idp130,然后saml-idp通过saml响应进行响应,这两个交互都是彼此异步的。

根据示例性实施例,saml-idp是结合安全断言标记语言(saml)的单点登录(sso)配置文件发出认证断言的系统实体。在saml域模型中,saml机构是发出saml断言的任何系统实体。saml机构的两个重要示例是认证机构和属性机构。

根据示例性实施例,多个saml-sp服务器120被配置为结合安全断言标记语言的单点登录(sso)配置文件来接收并接受认证断言。在saml域模型中,saml-sp服务器120(例如saml依赖方)是从另一系统实体接收并接受信息的任何系统实体。特别感兴趣的是接收并接受由saml机构发出的saml断言的saml依赖方。saml机构的一个重要类型是saml身份提供者,它是结合saml的sso配置文件发出认证断言的系统实体。消费这样的断言的依赖方被称为saml服务提供者(如果理解域,则简称为服务提供者)。因此,saml服务提供者(saml-sp)是接收并接受由saml身份提供者(saml-idp)发出的认证断言的系统实体。

根据示例性实施例,一个或多个saml-sp依赖服务器120和/或一个或多个oidc依赖方服务器121可以是向组织提供企业服务器的任何实体,例如咨询、法律、房地产、通信、存储、处理。例如,一个或多个saml-sp依赖服务器120和/或一个或多个oidc依赖方服务器121可以是第三方或者外包供应商,例如电信服务提供者(telecommunicationserviceprovider,tsp)、应用服务提供者(applicationserviceprovider,asp)、存储服务提供者(storagesserviceprovider,ssp)和因特网服务提供者(internetserviceprovider,isp)。

例如,tsp是具有传统地提供的电话和类似服务的一种通信服务提供者,可以包括现任本地交换运营商、竞争性本地交换运营商以及移动无线通信公司。asp是通过网络为客户提供基于计算机的服务的业务。例如,asp可以使用标准协议(例如诸如http)提供对特定的软件应用(诸如客户关系管理)的访问。ssp是提供计算机存储空间和相关管理服务、定期备份和归档的任何公司。

图2是计算设备200的例示说明,计算设备可以是计算机110、移动计算机112、saml-sp服务器(或saml-sp依赖服务器)120、odic依赖方服务器121、saml-idp服务器130、或者oidc提供者服务器131。如图2所示,示例性计算设备200可以包括处理器或中央处理单元(cpu)202以及用于存储软件程序和数据的一个或多个存储器204。处理器或cpu202执行计算机程序的指令,该计算机程序操作和/或控制计算设备200的功能的至少一部分。计算设备200还可以包括输入单元206、显示单元或图形用户界面(gui)208、以及连接到通信网络(或网络)150的网络接口(i/f)210。总线212能够连接计算设备200中的各种组件202、204、206、208、210。

根据示例性实施例,计算设备200可以包括能够访问例如计算设备200的存储器204中的web浏览器(未示出)的显示单元或图形用户界面(gui)208。计算设备200还包括管理计算机硬件并提供用于有效执行各种软件程序的通用服务的操作系统(os)。根据示例性实施例,cpu202的os是基于linux或的操作系统。软件程序可以包括例如应用软件和打印机驱动软件。例如,打印机驱动软件控制例如经由通信网络150与安装有打印机驱动软件的计算设备200连接的多功能打印机或打印机(未示出)。在某些实施例中,打印机驱动软件能够基于图像和/或文档数据产生打印作业和/或文档。

图3a是根据示例性实施例的移动设备300的例示说明。如图3a所示,示例性移动设备300可以包括处理器或中央处理单元(cpu)302、和用于存储软件程序和数据的一个或多个存储器304、操作系统320以及sps-sso代理322。根据示例性实施例,存储器304包括sps-sso代理322,其中sps-ssi代理332被配置为执行用于经由单点登录(sso)协议在移动设备300上的移动应用上启用oidc和saml流的一个或多个过程。处理器或cpu302执行计算机程序的指令,该计算机程序操作和/或控制移动设备300的功能的至少一部分。移动设备300还可以包括输入单元306、显示单元或图形用户界面(gui)308、以及连接到通信网络(或网络)150的网络接口(i/f)310。总线312能够连接移动设备300中的各种组件302、304、306、308、310。

根据示例性实施例,移动设备300可以包括能够访问例如移动设备300的存储器304中的web浏览器(未示出)的显示单元或图形用户界面(gui)308。移动设备300还包括管理计算机硬件并提供用于有效执行各种软件程序的通用服务的操作系统(os)320。根据示例性实施例,移动设备300的os320是基于linux或的操作系统。软件程序可以包括例如应用软件和打印机驱动软件。例如,打印机驱动软件控制例如经由通信网络150与安装有打印机驱动软件的移动设备300连接的多功能打印机或打印机(未示出)。在某些实施例中,打印机驱动软件能够基于图像和/或文档数据产生打印作业和/或文档。

根据示例性实施例,移动设备300还可以优选地包括例如通过指纹识别或认证或者移动设备上当前实施或将要实施的其他认证协议来认证用户的认证模块。例如,使用诸如用户名和密码的凭据的密码认证协议可以被使用。根据示例性实施例,认证模块可以用于访问移动设备300和/或结合如本文所公开的单点登录(sso)过程使用。

图3b是根据示例性实施例的移动设备300的显示单元或用户界面(也被已知为图形用户界面(gui))306的例示说明。如图3b所示,显示单元或用户界面306可以是触摸屏(或触摸板)307,具有用于频繁使用的应用(例如电话模块、电子邮件客户端模块、浏览器模块、视频和音乐播放器模块、消息模块、日历、相机模块、地图、天气、以及提供对移动设备300和各种应用的设置的访问的应用或模块)的多个图标330。根据示例性实施例,显示单元或用户界面306还包括例如用于通过oidc进行sso登录的应用的图标332(“appa”),以及用于通过saml进行sso登录的应用的图标334(“appb”)。

图4a是如图3b所示的移动设备300的显示单元或用户界面400的例示说明。如图4a所示,当在移动设备300的用户界面400上通过触摸或其他已知方法选择图标332(“appa”)时,用户界面400向用户显示例如对“用户名或电子邮件”410和“密码”412的请求。另外,显示单元或用户界面400向用户呈现提供“登录”420的图标,或者替代地向用户呈现“使用sso”430的图标,这将向用户提示如图4b所示的用户界面450。

图4b是用于sso登录的如图3b所示的移动设备300的显示单元或用户界面450的例示说明。如图4b所示,sso页面请求例如“电子邮件或域”460,并且包括“登录”图标470。

根据示例性实施例,公开用户的移动设备112上的用于本机移动应用发起的openid连接(oidc)和安全断言标记语言(saml)流的单点登录(sso)的方法和系统,如本文所公开的方法和系统在用户(例如客户端设备或移动设备112)和认证提供者(例如saml-idp服务器130或者oidc提供者服务器131)之间引入充当用于预认证目的的代理/代表(agent/proxy)的应用(例如移动应用(或软件组件)。根据示例性实施例,移动应用(或软件组件)是移动设备112上的接口332、334,其中在用户可以从例如本地软件(onpremisessoftware)(例如onpremiseslegacy(本地遗留))和/或非本地软件(offpremisessoftware)(例如云服务)利用(或访问)任何服务之前对用户进行认证。根据示例性实施例,可以例如经由生物测定(诸如指纹、面部辨识或面部识别、虹膜检测)和/或用户名和pin(个人识别号码)来完成经由单点登录(sso)方法(或协议)对用户进行的认证。如本文所公开的移动应用可以在成功的认证结束时包含例如代表用户的jsonweb令牌(jsonwebtoken,jwt)。

根据示例性实施例,移动设备112可以包括例如代理代码软件组件形式的应用,该应用持续地等待来自认证提供者(例如oidc提供者(或oidc-op)131或者saml-idp服务器130)的重定向请求,并且经由对被处理的重定向请求的响应提交与被预认证的用户对应的当前活动的jsonweb令牌(jwt)(即,唯一地辨识用户)。

根据示例性实施例,从oidc-op131或saml-idp130到运行在对应的认证解决方案移动应用322上的代理的重定向可以添加到常规的oidc/saml流。根据示例性实施例,例如,对被指配并被登记的移动应用的附加重定向访问可以窃取原始流(例如由本机移动应用开始的流),从而不丢失上下文。根据示例性实施例,流的目标可以是避免提示用户对提交任何认证细节的查询,因为该流从没有任何关于被预认证的用户的上下文的移动应用开始。

根据示例性实施例,仅当认证提供者(saml-idp130或oidc-op131)检测到流起源的用户代理(useragent,ua)时,认证提供者(saml-idp130或oidc-op131)才窃取流以查询移动应用副本(counterpart)上的代理。例如,被支持的移动用户代理可以包括webkit、移动safari以及537.36(khtml,例如gecko)chrome。此外,根据浏览器的版本、设备型号、操作系统(os)和其他因素,利用移动浏览器的用户代理可能不同。

根据示例性实施例,在认证提供者(saml-idp130或oidc提供者131)上,随着流进行以上公开的修改并且发生附加的重定向,命中“auth”端点的oidc“auth”流或saml的“authenticationrequest(认证请求)”流可以进行暂时挂起状态以检索认证提供者之前为用户生成的jwt令牌。

在认证提供者经由对认证提供者的查询重定向的响应来接收jwt令牌后,认证提供者使令牌有效并生成域cookie,恢复停止的oidc或saml流,并且当认证响应被发回时设置生成的cookie(即设置的cookiehttp响应头)。根据示例性实施例,进一步的通信将使用在本机移动应用(原始oidc流和saml流起源于此)用户代理上设置的域cookie。

根据示例性实施例,用于移动设备的各种本机应用关于哪些ui渲染技术用于应用登录流而存在。例如,一些应用启动外部浏览器,一些应用使用诸如webview的应用内浏览器,其他应用使用诸如sfsafariviewcontroller和chrometab的最新趋势。根据示例性实施例,公开三个示例以传达:本公开中再提供的代理代码是用户代理不可知的(即与许多类型的平台或操作系统兼容),基于代理的行为以实现为用于本机移动应用(例如googledrive和box,支持代理上的基于单点登录(sso)的登录流以及相应的重定向行为)中的oidc和saml的sso流提供无缝性的最终目标。

根据示例性实施例,例如,应用使用诸如safari或者chrome的系统浏览器,系统浏览器充当具有其自己的用户代理的不同应用。根据示例性实施例,代理接收重定向请求,解密被加密的uri参数以验证被加密的uri来自真实的认证提供者。该验证是为了避免恶意应用,并且服务器尝试查询代理以得到用户的jwt(即令牌)。如果成功,则服务器重定向用户代理以命中认证服务器,并且提供jwt。如果不成功,则丢弃请求,将消息记入日志,并且可以使用alert消息(例如弹出窗口)来警告应用用户通过管理员报告问题。

根据示例性实施例,例如,应用使用诸如wkwebview的webview组件,每个webview是沙盒的(sandboxed),并且浏览器出现在应用内容内(用户从不离开应用)。根据示例性实施例,代理接收重定向请求,解密被加密的uri参数以验证其真的来自真实的认证提供者。该验证是为了避免恶意应用,并且服务器尝试查询代理以得到用户的jwt(即令牌)。如果成功,则重定向用户代理以命中认证服务器,并且提供jwt。如果不成功,则丢弃请求,将消息记入日志,并且可以使用alert消息(例如弹出窗口)来警告应用用户通过管理员报告问题。

根据示例性实施例,例如,对于使用sfsafariviewcontroller(ios)或chrometab的应用,浏览器出现在应用内容内(即用户从不离开应用)。根据示例性实施例,代理接收重定向请求,解密被加密的uri参数以验证被加密的uri来自真实的认证提供者。该验证是为了避免恶意应用,并且服务器尝试查询代理以得到用户的jwt(即令牌)。如果成功,则服务器重定向用户代理以命中认证服务器,并且提供jwt。如果不成功,则丢弃请求,将消息记入日志,并且可以使用alert消息(例如弹出窗口)来警告应用用户通过管理员报告问题。

图5a和5b是例示说明支持通过oidc进行sso登录的本机移动应用的流程的流程图500。如图5a和5b所示,在步骤501中,带有移动设备(例如智能电话)112的用户点击用户界面(或图形用户界面(gui))上的移动应用图标“appa”332。一旦图标“appa”332被打开,用户则选择如图4b所示的图形用户界面上的“使用sso”图标。如图4b所示,用户随后输入电子邮件或域并且通过“通过sps登录”来登录。在步骤502中,sps-移动sso代理(运行在sps客户端上)通过移动设备112的操作系统(os)登记要被调用的意向(例如handler:spsmobilessoauthagent;/call_back)。

在步骤503中,移动应用向服务提供者web服务器(oidc-rp)121发送登录请求(例如“get:login”)。在步骤504中,服务提供者web服务器(oidc-rp)121向移动应用332发送url重定向响应(例如302redirect(例如url重定向))。在步骤505中,移动应用332向身份提供者(例如sps-auth服务(oidc-op)131)发送认证请求(例如“get:oauth2authendpoint,flow:authcodeflow,resp_type=code”)。根据示例性实施例,在步骤505中,认证请求不包括关于登录的用户的任何细节(例如用户名/域名)。在步骤506中,oidc-op检查步骤505中的来自移动应用的认证请求,以判定是否存在cookie认证(例如cookie认证是否有效)。如果cookie认证有效(即存在认证cookie),则过程继续至步骤515。然而,如果在步骤506中cookie认证无效(即不存在认证cookie),则过程继续至步骤507,其中oidc-op131寻找用户代理,在目标移动设备上的sps客户端上得到被映射的“registeredmobilessoauthintenthandler(登记的移动sso认证意向处理程序)”回调。

在步骤508中,oidc-op131构造将用户代理重定向以访问“registeredmobilessoauthintenthandler”的url重定向请求(例如http302)。在步骤509中,oidc-op131向移动应用332发送url重定向响应(例如302:spscustommobileapplicationredirection,redirectionscheme:“spsmobilessoauthagent”,insteadofaregular“https”)。在步骤510中,url重定向响应(例如http302requesttriggersspsmobilessoauthagent:/call_back)被发送到sps-sso代理(例如(运行在sps客户端内的)sps-移动sso代理)322。在步骤511中,sps-sso代理向移动应用332发送当前活动的jwt(即令牌)(例如302:/mobileid/v1/jwt/(jwtvalue))。在步骤512中,从sps-sso代理接收的当前活动的jwt与请求(例如get:/mobiledi/v1/jwt/(jwtvalue))一起发送到oidc-op131。

在步骤513中,oidc-op131例如使jwt(即令牌)有效以排除伪装成sps代理的“流氓移动app/代理”。在步骤514中,如果oidc-op131使jwt(即令牌)有效,则生成cookie。在步骤515中,oidc-op131将响应(例如带有所生成的带有“oidcregisteredcallbackplease”的会话cookie的302redirect)与被生成的cookie一起发送,该cookie指示认证代码(例如cookie)在url查询串中可用。移动应用332接收认证码,并且在步骤516中向oidc-rp121发送对服务的请求(例如,get:odicregisteredcallback,code=xxxxx)。在步骤517中,oidc-rp从移动应用332接收请求并且向oidc-op131发送请求以认证用户(例如post:idtokenrequest(exchange),authenticationcode=xxxxx)。在步骤518中,oidc-op131接收请求并(经由jwt(令牌)和对应的cookie)验证用户被认证,并且向oidc-rp121发送ok成功状态响应(例如http200ok:idtoken---->jwtwhichbase-64encodedidtoken,signedbysps)。在步骤519中,oidc-rp121向移动应用发送指示jwt(即令牌)被验证并且请求已成功(例如200ok:idtokenasjwt)的响应。在步骤520中,移动应用接收成功响应并且向oidc-rp121发送对应用或服务的请求,例如“get:eitherhomepageoranypagereferringtoconfigured‘starturl’param”。在步骤521中,oidc-rp确认id令牌,并且如果id令牌有效,则认为用户被认证并且创建会话标识符(id)。在步骤522中,成功响应(例如200ok响应)被发送到移动应用332。

图6a和6b是例示说明支持通过saml进行sso登录的本机移动应用的流程的流程图600。如图6a和6b所示,在步骤601中,带有移动设备(例如智能电话)112的用户点击用户界面(或图形用户界面(gui))上的移动应用图标“appb”334。一旦图标“appb”334被打开,用户则在如图4b所示的图形用户界面上输入电子邮件id和/或域名。在步骤602中,sps-移动sso代理(运行在sps客户端上)320在移动设备112的ios或android(os)上登记“http://localhoste/sps-sso-redirect/”(即列入白名单)。

在步骤603中,移动应用程序334向服务提供者web服务器(saml-sp)120发送请求(例如“get:login”)。在步骤604中,响应于来自移动应用334的请求,服务提供者web服务器(saml-sp)120向sps认证服务(saml-idp)130发送认证请求,例如sp发起的saml2认证请求。到sps认证服务(saml-idp)130的认证请求(例如sp发起的saml2认证请求)不包括关于登录的用户的任何细节(例如用户名/域名)。在步骤605中,sps认证服务(saml-idp)130接收认证请求(例如sp发起的saml2认证请求),并判定cookie认证是否有效。如果cookie认证有效,则过程继续至步骤615。然而,如果cookie认证无效,则过程继续至步骤606,其中saml-idp130定位(或寻找)用户代理,并且将“registeredmobilessoauthenticationintenthandler(登记的移动sso认证意向处理程序)”回调映射到目标移动设备上的sps客户端上。在步骤607中,saml-idp130构造url重定向请求(例如构造http302,将用户代理重定向以访问“registeredmobilessoauthintenthandler(登记的移动sso认证意向处理程序)”)。在步骤608中,saml-idp130向移动应用334发送url重定向请求(例如“302:spscustommobileappredirection,redirectionscheme:http://localhost/sps-sso-redirect/challenge=8971982jhjhsbjhs”),该url重定向请求包括如在步骤609中生成的被加密的消息。如图6a所示,在步骤609中,saml-idp130对预共享的秘密(仅被该服务器和代理已知)进行加密,并且发送响应以重定向移动设备112上的代理。

在步骤610中,移动应用334将请求(例如“triggershttp://localhost/sps-sso-redirect/challenge=897198jhjhsbjhs”)发送到sps-sso代理322,以在步骤611中使由saml-idp130提供的私钥有效(例如,通过认证服务器公钥使被加密的挑战有效,如果成功(挑战由仅服务器才会具有的服务器的私钥加密),则通过提供jwt继续进行。否则丢弃请求(例如无响应),结束sso流挂起,直到用户处的http超时为止)。

在步骤612中,sps-sso代理322将url重定向响应与jwt(令牌)(例如“302/mobileid/v1/jwt(jwtvalue)/”)一起发送到移动应用334。在步骤613中,移动应用334将请求使jwt(令牌)有效的请求发送到saml-idp130(例如,“get:/mobileid/v1/jwt/(jwtvalue)/”)。在步骤614中,saml-idp130从移动应用接收请求,并且使jwt(令牌)有效(例如“使jwt有效以排除例如伪装成sps代理的流氓移动app/代理)”。在步骤615中,如果jwt(令牌)有效,则saml-idp130构造saml断言和saml响应。在步骤616中,saml-idp130向移动应用334发送url重定向响应(例如“302redirect,带有saml响应和所生成的会话cookie”)。在步骤617中,移动应用接收saml响应,并且针对登录的用户将saml响应发送到服务提供者(saml-sp)120。在步骤618中,saml-sp120向移动应用334发送指示登录的用户已被认证的成功响应(例如“200ok:saml响应被验证,用户被认证,本机移动应用可以对用户使用的sp的oauth2访问令牌”)。在步骤619中,将移动应用(即箱体本机应用)的用户视为被“箱体认证”的用户,并且对saml-sp120上的服务的所有访问都携带oauth2访问令牌。

根据示例性实施例,可以在非暂时性计算机可读介质上实现所公开的方法和过程。非暂时性计算机可读介质可以是磁记录介质、磁光记录介质、或者将来将要开发的任何其他记录介质,所有这些都可以被认为以相同的方式适用于本发明。毫无疑问,认为包括一级和二级复制产品和其他的这样的介质的复制品均等同于上述介质。此外,即使本发明的实施例是软件和硬件的组合,它也完全不脱离本发明的概念。本公开可以被实现为使得其软件部分已被预先写到记录介质上并且将在操作中根据需要被读取。

如本文所使用的,以单数形式记载并且前面有词语“一”或“一个”的元素或步骤应被理解为不排除多个元素或步骤,除非明确地记载了这样的排除。此外,对本公开的“示例实施例”或“一个实施例”的参考并非意图被解释为排除也包含所记载的特征的附加示例的存在。

本文档末尾的专利权利要求书并非意图根据35u.s.c.§112(f)进行解释,除非明确地记载了传统的装置加功能的语言,诸如在权利要求中明确地记载的“装置”或“步骤”语言。

对本领域技术人员而言显而易见的是,可以不脱离本发明的范围或精神而对本发明的结构进行各种修改和变形。鉴于前述内容,意图使本发明涵盖本发明的修改和变型,只要它们落入所附权利要求书及其等同物的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1