CN102812665B - 用于实现跨多个web服务的认证的可插入令牌提供商模型 - Google Patents

用于实现跨多个web服务的认证的可插入令牌提供商模型 Download PDF

Info

Publication number
CN102812665B
CN102812665B CN201180014279.3A CN201180014279A CN102812665B CN 102812665 B CN102812665 B CN 102812665B CN 201180014279 A CN201180014279 A CN 201180014279A CN 102812665 B CN102812665 B CN 102812665B
Authority
CN
China
Prior art keywords
web services
assembly
metadata
token
voucher
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201180014279.3A
Other languages
English (en)
Other versions
CN102812665A (zh
Inventor
R·纳拉亚南
梁睿
S·斯里尼瓦桑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102812665A publication Critical patent/CN102812665A/zh
Application granted granted Critical
Publication of CN102812665B publication Critical patent/CN102812665B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

提供了用于跨多个web服务的消息级认证的可插入令牌提供商模型。可以使客户机应用内的web服务和令牌提供商实现与操作商业逻辑以形成和理解web请求的实际组件分开。web服务组件可以请求执行web服务并提供web服务消息的正文,而公共框架维护包括与相应的令牌相关联的定义的web服务元数据。框架还可维护实际取得认证令牌并执行web请求的令牌提供商实现。

Description

用于实现跨多个web服务的认证的可插入令牌提供商模型
背景
随着客户机应用的复杂性的增长,与这样的应用进行交互的web服务的数目也增长了。许多web服务将经认证的会话用于服务器。标准的认证方法中的一些包括使用集成Windows认证(IWA)、具有相互传输层安全(MTLS)的基于客户机证书的认证以及各种形式的消息级认证。如今,web服务由于其可扩展性而越来越倾向于使用web服务安全(WSS)协议的消息级认证。WSS消息本身可承载从Kerberos权证中导出的认证令牌、X.509证书或XML令牌(例如,SAML令牌)。
各web服务实现可共享认证令牌提供商。然而,用于在消息级进行认证的令牌本身一般是不同的,因为web服务的目标名称(令牌是对照该目标名称来确认的)可能不同。此外,令牌提供商可以是基于标准的、使用库的专用实现或使用协议的专用实现。
因此,不存在可用于提供合并不同技术使得通信客户机可容易地用各种web服务来进行认证的能力的任何单个接口。此外,在可集成各种web技术并用这些技术来进行认证的可扩展框架内进行操作对于企业客户机(因为企业与基于云的服务集成了)而言是具有挑战性的。
概述
提供本概述以便以简化的形式介绍将在以下的具体实施方式中进一步描述的一些概念。本概述并不旨在专门标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
各实施例涉及用于跨多个web服务的消息级认证的可插入令牌提供商模型。可以使客户机应用内的web服务和令牌提供商实现与操作商业逻辑以形成和理解web请求的实际组件分开。Web服务组件可以请求执行web服务并提供web服务消息的正文,而公共框架可维护包括与相应的令牌相关联的定义的web服务元数据。该框架还可维护实际取得认证令牌并执行web请求令牌的令牌提供商实现。
通过阅读下面的详细描述并参考相关联的附图,这些及其他特点和优点将变得显而易见。可以理解,前述一般描述和以下的详细描述都是说明性的,并且不限制所要求保护的各方面。
附图简述
图1是示出示例统一通信系统的图示,其中可实现用于跨web服务的消息级认证的各实施例;
图2是示出可用于实现用于跨web服务的消息级认证的可插入模型的客户机应用和示例服务器内的各组件的概念图。
图3是示出根据各实施例的相关组件、接口和客户机应用内的交互的图示;
图4是可实现根据各实施例的系统的联网环境;
图5是可实现各实施例的示例计算操作环境的框图;以及
图6示出了根据各实施例的通过消息级认证来提供web服务的过程的逻辑流程图。
详细描述
如以上简单描述的,可以通过将客户机应用内的web服务和令牌提供商实现与操作商业逻辑以形成和理解web请求的实际组件分开来实现用于跨多个web服务的消息级认证的可插入令牌提供商模型。在以下详细描述中,参考了构成了详细描述的一部分并作为说明示出了各具体实施方式或示例的附图。可组合这些方面,可利用其他方面,并且可以做出结构上的改变而不背离本发明的精神或范围。因此,以下详细描述并不旨在限制,并且本发明的范围由所附权利要求及其等效方案来限定。
尽管在结合在个人计算机上的操作系统上运行的应用程序执行的程序模块的一般上下文中描述了各实施方式,但是本领域的技术人员会认识到各方面也可以结合其它程序模块实现。
一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域的技术人员可以明白,各实施例可以用其他计算机系统配置来实施,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、大型计算机以及类似计算设备。各实施例还能在任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实现。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。
各实施例可被实现为计算机实现的过程(方法)、计算系统、或者诸如计算机程序产品或计算机可读介质等制品。计算机程序产品可以是计算机系统可读并且编码包括用于使计算机或计算系统执行示例过程的指令的计算机程序的计算机存储介质。例如,计算机可读存储介质可经由易失性计算机存储器、非易失性存储器、硬盘驱动器、闪存驱动器、软盘或紧致盘和类似介质中的一个或多个来实现。
贯穿本说明书,术语“平台”可以是用于管理web服务和有关网络通信的软件和硬件组件的组合。平台的示例包括但不限于,在多个服务器上执行的托管服务、在单个服务器上执行的应用以及类似系统。术语“服务器”一般指通常在联网环境中执行一个或多个软件程序的计算设备。然而,服务器还可以被实现为在被视作网络上的服务器的一个或多个计算设备上执行的虚拟服务器(软件程序)。在下面将提供关于这些技术和示例操作的详细细节。
图1是示出一个示例统一通信系统的图示,其中可实现用于跨web服务的消息级认证的各实施例。统一通信系统是具有可提供给订阅者的各种各样的能力和服务(包括web服务)的现代通信系统的示例。统一通信系统是便于即时消息收发、在场、音频-视频会议、web会议和类似功能的实时通信系统。
在统一通信(“UC”)系统(诸如,图示100中示出的系统)中,用户可经由为该UC系统的客户机设备的各种终端设备(102、104)来进行通信。每一客户机设备都能够执行用于语音通信、视频通信、即时消息通信、应用共享、数据共享等的一个或多个通信应用。除了其高级功能以外,终端设备还可执行方便诸如参与社交网络、基于web的文档共享、搜索、以及类似服务等各种web服务的应用程序。此外,这些客户机设备还可通过外部连接(如通过PBX到公共交换电话网(“PSTN”))来方便传统电话呼叫和相似通信。客户机设备可包括任何类型的智能电话、蜂窝电话、执行通信应用程序的任何计算设备、智能汽车控制台以及具有附加功能的高级电话设备。
UC网络110可包括执行不同任务的多个服务器。例如,UC服务器114提供注册、在场以及路由功能。路由功能使该系统能够基于默认和/或用户设置的策略来将对一用户的呼叫路由到分配给该用户的客户端设备中的任一个。例如,如果用户不能通过常规电话被找到,则该呼叫可被转发到用户的蜂窝电话,并且如果没有接听则可以利用多个语音邮件选项。因为终端设备可以处理附加通信模式,所以UC服务器114可以通过接入服务器112提供对这些附加通信模式(例如即时消息收发、视频通信等)的访问。接入服务器112位于周边网络中并且以附加通信模式之一允许与其他用户通过UC网络110的连接。UC服务器114可包括执行上述功能的组合的服务器,或仅提供特定功能的专用服务器。例如,提供在场功能的家庭服务器、提供路由功能的路由服务器等。类似地,接入服务器112可提供多个功能,诸如防火墙保护和连接,或仅提供专用功能。
音频/视频(A/V)会议服务器118通过经由内部或外部网络促进音频和/或视频会议能力来提供这些能力。中介务器116作为去往和来自诸如PSTN或蜂窝网络等其他类型的网络的令牌和媒体的中介。中介服务器116还担当会话发起协议(SIP)用户代理。
在UC系统中,用户可以具有一个或多个身份,该身份不必限于电话号码。根据集成网络,该身份可以采取任何形式,如电话号码、会话发起协议(SIP)统一资源标识符(URI)、或任何其他标识符。尽管在UC系统中可以使用任何协议,但SIP是常用方法。
SIP是用于创建、修改和终止与一个或多个参与者的会话的应用层控制(令牌)协议。该协议还可用于创建包括因特网电话呼叫、多媒体分发和多媒体会议的双方、多方或多播会话。SIP被设计成与底层传输层无关。
SIP客户机可使用传输控制协议(“TCP”)来连接到SIP服务器和其他SIP端点。SIP主要用于建立和破坏语音或视频呼叫。然而,它可以在需要会话发起的任何应用中使用。这些应用包括事件订阅和通知、终端移动性等。语音和/或视频通信通常通过单独的会话协议(通常是实时协议(“RTP”))来完成。
UC系统可为社交联网、多模态企业通信、基于web的共享服务及类似环境提供平台。当订阅者参与这一环境时,他们可利用由一个或多个外部服务器(例如,122、124和126)或由在UC系统内部的服务器中的一个来管理的web服务。这些服务中的一些可要求基于凭证的认证。通过在每一客户机应用中实现的web服务组件可便于这些服务。在根据各实施例的系统中,可以将客户机应用中的web服务和令牌提供商实现与管理web服务的执行的web服务管理器组件分开。Web服务管理器组件可以是维护web服务元数据、令牌提供商实现、凭证管理器和用于执行web请求的相关接口的公共框架的一部分。以下讨论更详细的示例。
尽管图1中的示例系统已被描述为具有诸如中介服务器、A/V服务器和类似设备等特定组件,但各实施例不限于这些组件或系统配置并且能够用采用更少或更多组件的其他系统配置来实现。采用用于跨多个web服务的消息级认证的可插入模型的各系统的功能还可取决于组件能力和系统配置来不同地分布在各系统的各组件之间。此外,各实施例不限于统一通信系统。此处所讨论的方法可应用于使用此处所描述的原理的联网通信环境中的任何数据交换。
图2是示出可用于实现用于跨web服务的消息级认证的可插入模型的客户机应用和示例服务器内的各个组件的概念图。在根据各实施例的系统中,如图示200所示,用户228可通过其客户机230与各种web服务提供者交互。客户机230可指代执行一个或多个应用的计算设备、在一个或多个计算设备上执行的应用、或以分布式方式执行的且由用户228通过计算设备访问的服务。在典型的系统中,客户机230可与管理客户机的网络内的通信的一个或多个服务器(例如,服务器244)通信。可通过服务器244上可用的资源来提供web服务中的某一些。可通过在网络内部或外部的服务器246上可用的资源来提供其他web服务。
与客户机230进行交互的令牌发布者可以由模型中的令牌提供商组件234来表示。令牌提供商组件234可以用其统一资源标识符(URI)或名称来唯一地标识,通过这种方式这些令牌提供商组件234可由元数据模型组件240通过使用从web服务组件232处取得的web服务元数据或WSS策略信息来引用。
元数据模型组件240负责维护与web服务相关联的信息。可采用如WSDL元数据或WS-MEX等标准机制来取得元数据。一旦检索到了元数据,元数据组件240可维护元数据信息与提供该元数据的web服务的标识符(例如,统一资源定位符“URL”)间的映射。元数据模型组件240还可将元数据信息持久保存在文件中或类似的持久保存存储中,使得不会在每次应用启动时重复解析和检索循环。
根据各实施例来实现和/或消费web服务请求和响应的组件可能会忽略底层的令牌提供商和元数据框架。这些组件可简单地(例如,为web服务的简单对象访问协议“SOAP”正文)提供要作出的web服务调用的有效载荷。一旦作出了特定调用,web服务管理器组件238可提取该调用的基本标识符,并调用元数据模型组件240以请求web服务元数据。一旦检索到了元数据,web服务管理器组件238可循环通过元数据内的各可用绑定并基于所请求的操作和取决于凭证管理器组件236所提供的凭证的认证类型来选择一个合适的绑定。随后,可作出令牌提供商调用以取得该令牌,并且web服务管理器组件238可组合这些信息片段以构造实际的web服务请求(例如,SOAP请求)。
凭证管理器组件236可以用用户标识符来标识凭证服务(也称为“登录服务”)。由实现凭证服务的其他组件对凭证管理器组件236作出的调用可以在作出该调用的上下文中指定标识符。凭证管理器组件236可能够处理多种类型的凭证。可用于根据各实施例的系统的凭证的示例包括但不限于用户名/口令、证书、身份证号等。凭证管理器组件236可以向用户查询凭证或提供系统中的任何一个内置凭证。后者可包括用户当时登录操作系统时的凭证,该凭证可以通过系统调用来取得。如果要查询凭证,则可向用户界面提供显示提示的命令。该提示可以由用户通过使取消可操作来消除或通过提供凭证来应答。
一旦向凭证管理器组件236提供了凭证,则可将其保存在该组件的数据模型中以供将来使用。保存在模型中可能是易失性的,并且可在应用被关闭或另一用户登入该应用时被清除。可将凭证存储在非易失性存储器中的密码之后,并且使用操作系统调用来实现这个目的。对于凭证管理器组件236可用的每一个凭证,该组件可维护每一服务(如标识符所表示的)和该服务的成功记录间的成功记录映射的运行副本。成功记录可以处于以下三个状态中的一个:“未知”、“成功”或“失败”。“未知”状态可在特定凭证从未被凭证服务使用过时被设置。来自该服务的对凭证管理器的任何将来调用可给出这个凭证。处于“成功”状态的成功记录可记录服务对凭证的成功使用,且相同的成功记录可被服务使用直到报告了失败。针对成功服务的标识符的对凭证管理器组件236的进一步调用可返回“成功”凭证。“失败”状态可记录服务对凭证的登录失败。这样的凭证不可再次与服务一起使用,直到系统被复位。
此外,凭证管理器组件236可通过使用如注册表、文件和/或凭证管理器应用编程接口(API)之类的系统资源来跨各应用重启持久保存凭证信息。为了安全,可对凭证加密。web服务传输组件242可向通信接口提供其他应用/服务,诸如在服务器244上执行的那些应用/服务。
为了在客户机230的组件和外部资源间交换消息(调用),以上已提到了诸如SOAP和WSS等示例协议。SOAP(简单对象访问协议)是用于在计算机网络中交换各web服务实现中的结构信息的协议规范。该协议将可扩展标记语言(XML)用作其消息格式,并通常依赖于其他应用层协议,最值得注意的是用于消息协调和传输的远程过程调用(RPC)和HTTP。SOAP消息可包括三个部分:信封—定义消息中有什么以及如何处理它,头部—包含将由SOAP节点沿着消息路径来处理的应用相关消息,以及正文——包含预期用于消息的最终接收者的信息。
SOAP体系结构包括用于消息格式、消息交换模式、底层的传输协议绑定、消息处理模型和协议可扩展性的若干层规范。Web服务安全(WSS)是用于将安全机制应用于web服务的灵活且特征丰富的SOAP扩展。WSS描述了三个主要机制:如何对SOAP消息进行签名以确保安全性;如何加密SOAP消息以确保机密性;以及如何附加安全性令牌。该规范允许各种签名格式、加密算法、信任域和安全令牌模型(例如,X.509证书、Kerberos权证、用户ID/口令凭证、SAML断言以及自定义令牌)。
参考图3,提供了示出根据各实施例的相关组件、接口和客户机应用内的交互的图示300。如前所讨论的,与客户机进行交互的令牌发放者可以由客户机中的令牌提供商组件366、368和370来表示。可以由元数据模型组件364通过使用从web服务组件352、354、356和358取得的web服务元数据或WSS策略信息来引用令牌提供商组件366、368、370。如示图300所示,多个令牌提供商可以通过具有可专用于特定目的的通用实现来实现。在根据某些实施例的客户机应用中,令牌提供商组件366、668、370可展示GetToken()(获得令牌())接口(370、380和382),该接口—在提供有提供令牌的目标时—提供与该目标相对应的令牌。只要令牌是有效的就可以高速缓存这些令牌,并且当对令牌提供商的调用是在过期时间之后才被作出的时自动续订这些令牌。令牌提供商组件366、368、370可以通过调用元数据模型组件364的RegisterTokenProvider()(注册令牌提供商())接口376来向元数据模型组件364注册其自身。该注册可提供令牌发放者的名称(例如,唯一的名称)或URI。
元数据模型组件364可负责维护与web服务相关联的信息。可以将元数据信息解析成一系列绑定条目,并对这些条目进行维护。每一绑定条目可包括将对其作出web服务请求的实际终点URI、web服务的SOAP操作和动作信息、终点处支持的认证类型、对应于终点的安全策略信息和/或基于安全策略中的令牌发放者URI的令牌提供者。
当将作出GetToken()接口(378、380、382)调用时,可包括安全策略信息以支持令牌提供商组件可检索到的不同类型的令牌。例如,安全策略可具有可被令牌提供商组件用来实际构造对令牌发放者的RequestSecurityToken(请求安全令牌)调用的操作环境密钥。一旦检索到了元数据,元数据模型组件364还可将元数据信息持久保存在文件中或类似的持久保存存储中,使得不用每次启动应用时都重复解析和检索循环。
web服务管理器组件360可通过其ExecuteWebRequest()(执行Web请求())接口372来接收对特定web服务的调用,并提取该调用的基标识符。web服务管理器组件360可随后调用元数据模型组件364的GetMetadata()(获得元数据())接口374来请求web服务元数据。一旦检索到了元数据,web服务管理器组件360可循环通过元数据内的各可用绑定并基于所请求的操作和取决于凭证管理器组件236所提供的凭证的认证类型来选择一个合适的绑定。接着是用于取得相关令牌的令牌提供商调用,并且web服务管理器组件360可组合这些信息片段以构造实际的web服务请求。如果在元数据模型组件364处没有任何元数据可用于特定请求,则元数据模型组件364可以作出对相关web服务的下载调用。如前所述,web服务传输组件362提供客户机内的各组件以及其他计算设备上执行的其他应用/服务之间的接口服务。
已经用具体的服务器、客户机设备、软件模块和交互描述了图1、2和3的示例系统。各实施例不限于根据这些示例配置的系统。用于跨多个web服务的消息级认证的可插入令牌提供商模型可以在采用了更少或更多组件并执行其他任务的配置中实现。此外,已经结合描述以上实施例讨论了特定的协议、调用和接口。各实施例也不限于这些示例。可以使用此处描述的原理用类似的方式来实现其他协议、交换和接口。
图4是可实现各实施例的示例联网环境。提供用于跨多个web服务的认证的可插入令牌提供商模型的平台可以经由在一个或多个服务器414上执行的软件(诸如,主存的服务)来实现。该平台可以通过网络412来与诸如智能电话413、膝上型计算机412、或台式计算机411(“客户机设备”)等各个计算设备上的客户机应用进行通信。
如上所述,在客户机设备411-413中的任何一个上执行的客户机应用可包括分开的web服务、令牌提供商、web服务管理和凭证管理组件。这些组件可通过以上所解释的元数据模型来管理对web服务请求的认证。在这些服务器414中的一个或多个或单个服务器416上执行的通信服务或应用可以:通过客户机设备411-413来接收来自用户的请求、从数据存储419处直接检索相关数据或者通过数据块服务器418来检索相关数据、以及向用户提供所请求的web服务。
网络410可包括服务器、客户机、因特网服务供应商以及通信介质的任何拓扑结构。根据各实施例的系统可以具有静态或动态拓扑结构。网络410可包括诸如企业网络等安全网络、诸如无线开放网络等非安全网络、或因特网。网络410还通过诸如公共交换电话网络(PSTN)或蜂窝网络等其他网络来协调通信。此外,网络410可包括诸如蓝牙或类似网络等短程无线网络。网络410提供此处描述的节点之间的通信。作为示例而非限制,网络410可以包括例诸如声学、RF、红外线和其它无线介质等无线介质。
可以采用计算设备、应用、数据源和数据分发系统的许多其它配置来实现用于跨多个web服务的消息级认证的框架。此外,图4中所讨论的联网环境仅用于说明目的。各实施例不限于示例应用、模块、或过程。
图5及相关联讨论旨在提供对其中可实现各实施例的合适计算环境的简要概括描述。参考图5,示出了用于根据各实施例的应用的示例计算操作环境(诸如计算设备500)的框图。在基本配置中,计算设备500可以是执行根据各实施例的客户机应用的客户机设备,并包括至少一个处理单元502和系统存储器504。计算设备500还可包括协作执行程序的多个处理单元。取决于计算设备的确切配置和类型,系统存储器504可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等)或是两者的某种组合。系统存储器504通常包括适于控制平台操作的操作系统505,诸如来自华盛顿州雷德蒙市的微软公司的操作系统。系统存储器504还可以包括一个或多个软件应用,诸如程序模块506、通信应用522和组件524。
通信客户机应用522可以是方便计算设备500上的其他应用程序和/或模块和与所请求的web服务相关的服务器之间的通信的任何应用。组件524可包括如上所述的web服务组件、令牌提供商、web服务管理器、凭证管理器和元数据模型。Web服务请求可以通过消息级认证来执行,该消息级认证是通过各组件间的交互来完成的。通信客户机应用522可以是向客户机设备提供增强的通信服务的主存服务的单独应用或集成模块。该基本配置在图5中由虚线508内的那些组件示出。
计算设备500可以具有附加特征或功能。例如,计算设备500还可包括附加数据存储设备(可移动和/或不可移动),诸如,例如磁盘、光盘或磁带。在图5中通过可移动存储509和不可移动存储510示出这样的附加存储。计算机可读存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器504、可移动存储509和不可移动存储510都是计算机可读存储介质的示例。计算机可读存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带、磁盘存储或其它磁存储设备、或能用于存储所需信息且可以由计算设备500访问的任何其它介质。任何这样的计算机可读存储介质都可以是计算设备500的一部分。计算设备500也可具有输入设备512,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备和类似输入设备。还可以包括输出设备514,诸如显示器、扬声器、打印机和其它类型的输出设备。这些设备在本领域中公知且无需在此处详细讨论。
计算设备500还可包含通信连接516,该通信连接允许该设备诸如通过分布式计算环境中的有线或无线网络、卫星链接、蜂窝链接、短程网络和类似机制来与其他设备518进行通信。其他设备518可包括执行通信应用的计算机设备、其他web服务器和类似设备。一个或多个通信连接516是通信介质的一个示例。通信介质可在其中包括计算机可读指令、数据结构、程序模块或其它数据。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。
各示例实施例还包括各种方法。这些方法可以用任何数量的方式,包括本文中所描述的结构来实现。一种此类方式是通过本文中描述的类型的设备的机器操作。
另一可任选方式是结合一个或多个人类操作者执行该方法的各个操作中的某一些来执行该方法的一个或多个操作。这些人类操作者无需彼此同在一处,而是其每一个可以仅与执行程序的一部分的机器同在一处。
图6示出了根据各实施例的通过消息级认证来提供web服务的过程600的逻辑流程图。过程600可被实现为加入增强的通信系统的客户机应用的一部分。
过程600开始于操作610,其中在web服务管理器组件处从客户机应用内的web服务组件接收web服务请求。在操作620,web服务管理器组件可以定位与所请求的web服务相关联的元数据。如果在决策操作630处web服务管理器组件确定需要凭证,则处理移动到操作640,在操作640处从凭证管理器组件处检索凭证。否则,处理可跳至操作670,在操作670处在web服务管理器组件的管理下提供所请求的web服务。凭证管理器组件可能够通过将单个用户身份与多个web服务相关联或者将多个用户身份与单个web服务相关联来处理多种类型的凭证。
在凭证检索之后的操作650处,可请求来自令牌提供者组件的与检索到的凭证相关联的令牌。可配置地处理元数据,以取得基于每一服务的令牌。可存在每一web服务的令牌提供商组件(每一服务的令牌提供商),其中令牌提供商组件和web服务被静态绑定或动态绑定。接着是操作660,在操作660处web服务管理器组件基于接收到的令牌来监督对所请求的web服务的认证。如果认证成功,则可在操作670处提供所请求的web服务。
包括在过程700内的各操作是用于说明目的。用于跨多个web服务的消息级认证的可插入令牌提供商模型可以使用本文所述的各原理通过具有更少或附加步骤的相似过程并以不同的操作次序来实现。
以上说明书、示例和数据提供了对各实施例的组成的制造和使用的全面描述。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求和各实施方式的示例形式而公开的。

Claims (19)

1.一种至少部分地在计算设备中执行的用于通过可插入令牌提供商模型来实现跨多个web服务的消息级认证的方法,所述方法包括:
在客户机应用处接收来自本地web服务组件的web服务请求;
定位与所请求的web服务相关联的元数据,其中所述元数据包括与所请求的web服务的执行和认证相关联的信息;
如果一凭证与所请求的web服务相关联,则检索所述凭证;
基于所述凭证,从多个绑定条目中选择合适的绑定条目,所述多个绑定条目包括以下一组中的至少一个:将对其作出web服务请求的资源标识符、要被包括在web服务消息中的操作和动作信息、所述资源所支持的认证类型、对应于所述资源的安全策略信息、以及基于所述安全策略中的令牌发放者标识符的令牌提供商标识;
检索与所检索的凭证相关联的令牌;
基于所检索的令牌和所选择的绑定条目来认证所请求的web服务;以及
如果所述认证成功,则执行所请求的web服务。
2.如权利要求1所述的方法,其特征在于,使所述客户机应用内的web服务和令牌提供商组件与操作商业逻辑以形成和理解所请求的web服务的组件分开。
3.如权利要求2所述的方法,其特征在于,所述令牌提供商组件表示与所述客户机应用交互的令牌发放者并且是由统一资源标识符和名称中的一者来标识的。
4.如权利要求3所述的方法,其特征在于,维护元数据的元数据模型组件利用从所述web服务组件处检索到的web服务元数据和web服务安全策略信息中的一个来引用所述令牌提供商组件。
5.如权利要求4所述的方法,其特征在于,所述元数据模型组件还维护元数据信息与提供所述元数据的web服务的标识符间的映射。
6.如权利要求4所述的方法,其特征在于,所述元数据模型组件解析所述元数据并维护所述多个绑定条目。
7.如权利要求4所述的方法,其特征在于,web服务管理器组件被配置为:
从所述元数据模型组件中检索元数据,
循环通过所述多个绑定,
基于所请求的web服务及相关联的认证类型来选择所述绑定中的一个,以及
构造实际的web服务请求。
8.如权利要求7所述的方法,其特征在于,凭证管理器组件被配置为基于由所述web服务管理器组件提供的用户标识符来标识与所请求的web服务相关联的凭证服务。
9.如权利要求6所述的方法,其特征在于,所述元数据模型组件持久保存经解析的元数据,使得所述元数据被检索和解析一次。
10.一种通过可插入令牌提供商模型来跨多个web服务利用消息级认证的统一通信系统,所述系统包括:
服务器,所述服务器被配置为:
管理所述统一通信系统和多个客户机应用的内部和外部资源之间的通信;
执行客户机应用的客户机设备,所述客户机应用包括:
至少一个web服务组件;
至少一个令牌提供商组件,该组件表示与所述客户机应用交互的令牌发布者;
元数据模型组件,所述元数据模型组件用于从web服务检索元数据,其中所述元数据包括与所请求的web服务的执行和认证相关联的信息;以及
web服务管理器组件,该组件被配置成:
从所述元数据模型组件检索元数据,
循环通过由所述元数据模型组件从所述元数据中解析出的多个绑定条目,其中所述多个绑定条目包括以下一组中的至少一个:将对其作出web服务请求的资源标识符、要被包括在web服务消息中的操作和动作信息、所述资源所支持的认证类型、对应于所述资源的安全策略信息、以及基于所述安全策略中的令牌发放者标识符的令牌提供商标识,
基于所请求的web服务和相关联的认证类型来选择所述绑定条目之一,以及
构造实际的web服务请求。
11.如权利要求10所述的系统,其特征在于,所述客户机应用还包括凭证管理器组件,所述凭证管理器组件用于基于用户标识符来标识凭证服务,所述凭证管理器组件能够通过以下各项之一来处理多种类型的凭证:将单个用户身份与多个web服务相关联,以及将多个用户身份与单个web服务相关联。
12.如权利要求11所述的系统,其特征在于,所述多个web服务和所述单个web服务与以下各项之一相关联:所述统一通信系统内部的资源以及所述统一通信系统外部的资源。
13.如权利要求11所述的系统,其特征在于,所述凭证管理器组件被配置成将接收到的凭证保存在易失性存储器中,使得所保存的凭证响应于客户机应用关闭和另一用户登录之一而被清除。
14.如权利要求11所述的系统,其特征在于,所述凭证管理器还被配置成维护每一web服务的成功记录,所述成功记录包括以下各项之一:之前未被使用的凭证的“未知”状态、web服务对特定凭证的成功使用的“成功”状态、以及web服务对特定凭证的登录失败的“失败”状态。
15.如权利要求10所述的系统,其特征在于,所述客户机应用包括每一web服务的可插入令牌提供商组件,所述令牌提供商组件和web服务是以下各项之一:静态绑定和动态绑定。
16.一种用于通过可插入令牌提供商模型来跨多个web服务利用消息级认证的方法,所述方法包括:
从客户机应用的web服务组件接收作出web服务调用的有效载荷;
提取所述调用的基本标识符;
调用元数据模型组件以请求web服务元数据;
在检索到所述元数据后,循环通过所述元数据中的可用绑定,其中所述元数据中的所述可用绑定包括以下一组中的至少一个:将对其作出web服务请求的资源标识符、要被包括在web服务消息中的操作和动作信息、所述资源所支持的认证类型、对应于所述资源的安全策略信息、以及基于所述安全策略中的令牌发放者标识符的令牌提供商标识;
依赖于与所请求的web服务相关联的凭证基于所请求的操作和认证类型来选择合适的绑定;以及
提取与所述凭证相关联的令牌,使得实际的web服务请求被构造。
17.如权利要求16所述的方法,还包括:
处理所述元数据以便以每web服务为基础检索令牌;以及
解析所述元数据以生成包括以下一组中的至少一个的绑定:将对其作出web服务请求的资源标识符、要被包括在web服务消息中的操作和动作信息、所述资源所支持的认证类型、对应于所述资源的安全策略信息、以及基于所述安全策略中的令牌发放者标识符的令牌提供商标识。
18.如权利要求17所述的方法,其特征在于,所述元数据在元数据模型组件处被每资源标识符地处理,使得从与所请求的web服务相关联的安全策略信息中标识出相关联的令牌提供商。
19.如权利要求16所述的方法,其特征在于,在所述客户机应用的各组件之间的调用是利用简单对象访问协议作出的。
CN201180014279.3A 2010-03-18 2011-03-15 用于实现跨多个web服务的认证的可插入令牌提供商模型 Active CN102812665B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/726,779 2010-03-18
US12/726,779 US8572710B2 (en) 2010-03-18 2010-03-18 Pluggable token provider model to implement authentication across multiple web services
PCT/US2011/028509 WO2011115984A2 (en) 2010-03-18 2011-03-15 Pluggable token provider model to implement authentication across multiple web services

Publications (2)

Publication Number Publication Date
CN102812665A CN102812665A (zh) 2012-12-05
CN102812665B true CN102812665B (zh) 2015-07-08

Family

ID=44648292

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180014279.3A Active CN102812665B (zh) 2010-03-18 2011-03-15 用于实现跨多个web服务的认证的可插入令牌提供商模型

Country Status (5)

Country Link
US (1) US8572710B2 (zh)
EP (1) EP2548333A4 (zh)
JP (1) JP5714690B2 (zh)
CN (1) CN102812665B (zh)
WO (1) WO2011115984A2 (zh)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8973108B1 (en) * 2011-05-31 2015-03-03 Amazon Technologies, Inc. Use of metadata for computing resource access
US8719919B2 (en) 2011-07-12 2014-05-06 Bank Of America Corporation Service mediation framework
US9015320B2 (en) 2011-07-12 2015-04-21 Bank Of America Corporation Dynamic provisioning of service requests
US9369307B2 (en) 2011-07-12 2016-06-14 Bank Of America Corporation Optimized service integration
US9635028B2 (en) * 2011-08-31 2017-04-25 Facebook, Inc. Proxy authentication
US9965614B2 (en) * 2011-09-29 2018-05-08 Oracle International Corporation Mobile application, resource management advice
JP6066586B2 (ja) * 2012-05-22 2017-01-25 キヤノン株式会社 情報処理システム、その制御方法、およびそのプログラム。
WO2014011376A1 (en) * 2012-07-12 2014-01-16 Bank Of America Corporation Optimized service integration
US9838375B2 (en) * 2013-02-28 2017-12-05 Microsoft Technology Licensing, Llc RESTlike API that supports a resilient and scalable distributed application
US20140280494A1 (en) * 2013-03-14 2014-09-18 Microsoft Corporation Relay Service for Different Web Service Architectures
US9158932B2 (en) 2013-05-08 2015-10-13 Sap Se Modeled authorization check implemented with UI framework
US9112851B2 (en) 2013-06-18 2015-08-18 Sap Se Integrating web protocols with applications and services
US9253212B2 (en) * 2013-09-24 2016-02-02 Microsoft Technology Licensing, Llc Automated production of certification controls by translating framework controls
US9313208B1 (en) * 2014-03-19 2016-04-12 Amazon Technologies, Inc. Managing restricted access resources
CN103905201B (zh) * 2014-03-28 2017-02-15 北界无限(北京)软件有限公司 主应用与多个从属应用的交互方法及装置
EP3149889B1 (en) * 2014-06-02 2021-03-31 Datex Inc. Tokenizing network appliance and method
CN104601328A (zh) * 2014-12-18 2015-05-06 中电科华云信息技术有限公司 组件安全调用系统及调用方法
US9888034B2 (en) 2014-12-24 2018-02-06 Oracle International Corporation Pluggable API firewall filter
CN105847220A (zh) * 2015-01-14 2016-08-10 北京神州泰岳软件股份有限公司 一种认证方法、系统和服务平台
WO2016202375A1 (en) * 2015-06-17 2016-12-22 Telefonaktiebolaget Lm Ericsson (Publ) Method for enabling a secure provisioning of a credential, and related wireless devices and servers
CN105791259B (zh) * 2015-10-26 2018-11-16 北京中金国盛认证有限公司 一种个人信息保护的方法
CN106570399B (zh) * 2016-09-30 2019-07-12 西北大学 一种跨App组件间隐私泄露的检测方法
CN107370668B (zh) * 2017-08-25 2020-04-28 北京百度网讯科技有限公司 智能设备远程控制的方法、装置和系统
US11063762B1 (en) * 2018-02-22 2021-07-13 Allscripts Software, Llc Computing system for inter-application communication
US11568039B2 (en) * 2018-06-03 2023-01-31 Apple Inc. Credential manager integration
CN109117609B (zh) * 2018-08-31 2021-01-29 中国农业银行股份有限公司 一种请求拦截方法及装置
US11240030B2 (en) * 2018-12-27 2022-02-01 Paypal, Inc. Token management layer for automating authentication during communication channel interactions
US20210158938A1 (en) * 2019-11-27 2021-05-27 GE Precision Healthcare, LLC Enhanced Enterprise Image Reading with Search and Direct Streaming
US11647052B2 (en) 2021-04-22 2023-05-09 Netskope, Inc. Synthetic request injection to retrieve expired metadata for cloud policy enforcement
US11190550B1 (en) 2021-04-22 2021-11-30 Netskope, Inc. Synthetic request injection to improve object security posture for cloud security enforcement
US11184403B1 (en) 2021-04-23 2021-11-23 Netskope, Inc. Synthetic request injection to generate metadata at points of presence for cloud security enforcement
US11336698B1 (en) * 2021-04-22 2022-05-17 Netskope, Inc. Synthetic request injection for cloud policy enforcement
US11178188B1 (en) 2021-04-22 2021-11-16 Netskope, Inc. Synthetic request injection to generate metadata for cloud policy enforcement
US11271973B1 (en) 2021-04-23 2022-03-08 Netskope, Inc. Synthetic request injection to retrieve object metadata for cloud policy enforcement
US11271972B1 (en) 2021-04-23 2022-03-08 Netskope, Inc. Data flow logic for synthetic request injection for cloud security enforcement
US11943260B2 (en) 2022-02-02 2024-03-26 Netskope, Inc. Synthetic request injection to retrieve metadata for cloud policy enforcement

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006264A (en) * 1997-08-01 1999-12-21 Arrowpoint Communications, Inc. Method and system for directing a flow between a client and a server
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7987501B2 (en) * 2001-12-04 2011-07-26 Jpmorgan Chase Bank, N.A. System and method for single session sign-on
US7222148B2 (en) * 2002-05-02 2007-05-22 Bea Systems, Inc. System and method for providing highly available processing of asynchronous service requests
US20040059590A1 (en) * 2002-09-13 2004-03-25 Dwayne Mercredi Credential promotion
US8346929B1 (en) * 2003-08-18 2013-01-01 Oracle America, Inc. System and method for generating secure Web service architectures using a Web Services security assessment methodology
US8112103B2 (en) * 2004-01-16 2012-02-07 Kuang-Chao Eric Yeh Methods and systems for mobile device messaging
US20050268326A1 (en) * 2004-05-04 2005-12-01 Microsoft Corporation Checking the security of web services configurations
US7788716B2 (en) 2004-05-21 2010-08-31 Bea Systems, Inc. Token handler API
US20060005234A1 (en) * 2004-06-30 2006-01-05 International Business Machines Corporation Method and apparatus for handling custom token propagation without Java serialization
US7603555B2 (en) 2004-12-07 2009-10-13 Microsoft Corporation Providing tokens to access extranet resources
US7562382B2 (en) 2004-12-16 2009-07-14 International Business Machines Corporation Specializing support for a federation relationship
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
EP1895440A1 (en) 2006-09-01 2008-03-05 Nokia Siemens Networks Gmbh & Co. Kg Token-based service access
US20080086766A1 (en) * 2006-10-06 2008-04-10 Microsoft Corporation Client-based pseudonyms
US8347403B2 (en) 2006-12-19 2013-01-01 Canon Kabushiki Kaisha Single point authentication for web service policy definition
US8280978B2 (en) * 2006-12-29 2012-10-02 Prodea Systems, Inc. Demarcation between service provider and user in multi-services gateway device at user premises
US8656472B2 (en) * 2007-04-20 2014-02-18 Microsoft Corporation Request-specific authentication for accessing web service resources
US20080263644A1 (en) * 2007-04-23 2008-10-23 Doron Grinstein Federated authorization for distributed computing
US8528058B2 (en) * 2007-05-31 2013-09-03 Microsoft Corporation Native use of web service protocols and claims in server authentication
US20090057396A1 (en) 2007-08-27 2009-03-05 Eric Barbour Method and system for multiple account, token-based single transactions
US20090099860A1 (en) * 2007-10-15 2009-04-16 Sap Ag Composite Application Using Security Annotations
JP5018536B2 (ja) * 2008-02-15 2012-09-05 日本電気株式会社 情報サービス検索システム、巡回収集方法、及び情報サービス巡回収集プログラム
US8296828B2 (en) * 2008-12-16 2012-10-23 Microsoft Corporation Transforming claim based identities to credential based identities

Also Published As

Publication number Publication date
EP2548333A4 (en) 2017-04-19
WO2011115984A3 (en) 2011-12-15
JP5714690B2 (ja) 2015-05-07
WO2011115984A2 (en) 2011-09-22
US20110231921A1 (en) 2011-09-22
US8572710B2 (en) 2013-10-29
CN102812665A (zh) 2012-12-05
JP2013522773A (ja) 2013-06-13
EP2548333A2 (en) 2013-01-23

Similar Documents

Publication Publication Date Title
CN102812665B (zh) 用于实现跨多个web服务的认证的可插入令牌提供商模型
US11399044B2 (en) System and method for connecting a communication to a client
CN102196035B (zh) 用于提供统一web服务发现的方法和系统
US8578465B2 (en) Token-based control of permitted sub-sessions for online collaborative computing sessions
JP6417472B2 (ja) 共通エンドポイントにアクセスするために異なるディレクトリに記憶される認証情報を使用すること
CN102904733B (zh) 分布式、可缩放、可插入的会议体系结构
US8646049B2 (en) Systems and methods for secure management of presence information for communication services
EP3228069B1 (en) Stack fusion architecture including distributed software clusters to enable software communication services
JP6138791B2 (ja) ステートレスアプリケーション通知
US10148522B2 (en) Extension of authorization framework
US9648006B2 (en) System and method for communicating with a client application
US9832252B2 (en) Systems, methods, and computer program products for third party authentication in communication services
US10057307B2 (en) Distributed programmable connection method to establish peer-to-peer multimedia interactions
KR20220045962A (ko) 개인 오버레이 피어 투 피어 네트워크를 사용하여 통신하기 위한 인사말 프로토콜 시스템 및 방법
KR20110119649A (ko) 대화 권한 관리
CN104753872A (zh) 认证方法、认证平台、业务平台、网元及系统
JP6215508B1 (ja) セキュアなメディアベース会議におけるコンプライアンス監視のための方法およびシステム
CN105376727A (zh) 数据卡处理方法及装置
US20210328980A1 (en) Securing identity token forwarding
Koehle ABC for Privacy
Vardjan et al. An infrastructure for community signatures and micro-agreements

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150729

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150729

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.