(12)发明专利申请
(10)申请公布号 CN 112134707 A(43)申请公布日 2020.12.25
(21)申请号 202010924070.1(22)申请日 2020.09.04
(71)申请人 苏州浪潮智能科技有限公司
地址 215100 江苏省苏州市吴中区吴中经
济开发区郭巷街道官浦路1号9幢(72)发明人 孙俊逸
(74)专利代理机构 北京连和连知识产权代理有
限公司 11278
代理人 张涛 杨帆(51)Int.Cl.
H04L 9/32(2006.01)H04L 29/06(2006.01)
权利要求书2页 说明书7页 附图1页
CN 112134707 A()发明名称
一种针对多个KERBEROS集群的并发访问方法和装置(57)摘要
本发明公开了一种针对多个KERBEROS集群的并发访问方法和装置,方法包括:创建新进程,并基于新进程而从读写需求中解析出作为请求对象的目标集群和作为请求内容的数据请求指令;基于确定的目标集群从票据管理库提取预先存储的相对应的用户安全认证信息和服务端程序配置;基于用户安全认证信息和服务端程序配置执行针对目标集群的安全认证;响应于安全认证成功而基于数据请求指令在目标集群中执行数据读写操作以满足读写需求。本发明能够并发地认证和访问多个KERBEROS集群,在保证数据安全性的同时提升集群访问的灵活性。
CN 112134707 A
权 利 要 求 书
1/2页
1.一种针对多个KERBEROS集群的并发访问方法,其特征在于,包括响应于接收到跨集群的流式传输需求,而将所述流式传输需求分解为对单个集群的多个并行的读写需求,并分别针对每个所述读写需求依次执行以下步骤:
创建新进程,并基于所述新进程而从所述读写需求中解析出作为请求对象的目标集群和作为请求内容的数据请求指令;
基于确定的所述目标集群从票据管理库提取预先存储的相对应的用户安全认证信息和服务端程序配置;
基于所述用户安全认证信息和所述服务端程序配置执行针对所述目标集群的安全认证;
响应于安全认证成功而基于所述数据请求指令在所述目标集群中执行数据读写操作以满足所述读写需求。
2.根据权利要求1所述的方法,其特征在于,所述数据请求指令包括:旨在读取数据的消费请求指令、或旨在写入数据的生产者请求指令;在所述目标集群中执行数据读写操作包括:在所述目标集群中执行消费请求指令以读取数据、或执行生产者请求指令以写入数据。
3.根据权利要求1所述的方法,其特征在于,创建新进程包括:针对不同的所述读写需求分别创建彼此的所述新进程。
4.根据权利要求1所述的方法,其特征在于,还包括响应于接收到票据管理信息而依次执行以下步骤:
从所述票据管理信息中解析出对象集群、所述对象集群的用户安全认证信息、所述对象集群的服务端程序配置、和票据管理指令;
响应于所述票据管理指令为删除,而在所述票据管理库中删除与所述票据管理信息中相同的所述对象集群、所述用户安全认证信息和所述服务端程序配置;
响应于所述票据管理指令为导入或更新,而在所述票据管理库中暂存所述票据管理信息中的所述对象集群、所述用户安全认证信息和所述服务端程序配置,并基于所述用户安全认证信息和所述服务端程序配置执行针对所述对象集群的第二安全认证;
响应于所述第二安全认证通过而在所述票据管理库中正式存储所述对象集群、所述用户安全认证信息、和所述服务端程序配置。
5.根据权利要求4所述的方法,其特征在于,还包括:响应于所述第二安全认证未通过而反馈所述对象集群的安全认证失败信息。
6.根据权利要求1所述的方法,其特征在于,还包括:响应于所述安全认证不成功而反馈所述目标集群的安全认证失败信息。
7.根据权利要求1所述的方法,其特征在于,所述目标集群配置为基于所述读写需求而提供消息订阅服务。
8.一种针对多个KERBEROS集群的并发访问装置,其特征在于,包括KERBEROS客户端,所述客户端配置为响应于接收到跨集群的流式传输需求,而将所述流式传输需求分解为对单个集群的多个并行的读写需求,并且所述客户端进一步包括:
配置解析端,配置为用于针对每个所述读写需求创建新进程,并基于所述新进程而从所述读写需求中解析出作为请求对象的目标集群和作为请求内容的数据请求指令;
2
CN 112134707 A
权 利 要 求 书
2/2页
票据管理端,配置为用于针对每个所述读写需求基于确定的所述目标集群从票据管理库提取预先存储的相对应的用户安全认证信息和服务端程序配置;
安全认证端,配置为用于针对每个所述读写需求基于所述用户安全认证信息和所述服务端程序配置执行针对所述目标集群的安全认证;
数据处理端,配置为用于针对每个所述读写需求响应于安全认证成功而基于所述数据请求指令在所述目标集群中执行数据读写操作以满足所述读写需求。
9.根据权利要求8所述的装置,其特征在于,所述客户端还配置为接收票据管理信息以管理所述票据管理库,并且还进一步包括:
票据信息解析模块,配置为用于从所述票据管理信息中解析出对象集群、所述对象集群的用户安全认证信息、所述对象集群的服务端程序配置、和票据管理指令;
票据信息保存模块,配置为用于响应于所述票据管理指令为删除,而在所述票据管理库中删除与所述票据管理信息中相同的所述对象集群、所述用户安全认证信息和所述服务端程序配置;
票据信息认证模块,配置为用于响应于所述票据管理指令为导入或更新,而在所述票据管理库中暂存所述票据管理信息中的所述对象集群、所述用户安全认证信息和所述服务端程序配置,并基于所述用户安全认证信息和所述服务端程序配置执行针对所述对象集群的第二安全认证;
响应于所述第二安全认证通过而在所述票据管理库中正式存储所述对象集群、所述用户安全认证信息、和所述服务端程序配置。
10.根据权利要求8所述的装置,其特征在于,所述数据请求指令包括:旨在读取数据的消费请求指令、或旨在写入数据的生产者请求指令;在所述目标集群中执行数据读写操作包括:在所述目标集群中执行消费请求指令以读取数据、或执行生产者请求指令以写入数据。
3
CN 112134707 A
说 明 书
一种针对多个KERBEROS集群的并发访问方法和装置
1/7页
技术领域
[0001]本发明涉及量子计算领域,更具体地,特别是指一种针对多个KERBEROS集群的并发访问方法和装置。
背景技术
[0002]在实际的业务或生产环境中,为了保障数据安全,kafka集群(一种高吞吐量的分布式发布订阅消息系统)往往通过kerberos(用来在非安全网络中对个人通信以安全的手段进行身份认证的计算机网络授权协议)来保证敏感数据不会泄露,kerberos也支持通过principle(用户安全认证信息)的认证方式来授权外部应用在许可范围内访问集群内部数据。但是在复杂的生产环境中,往往需要同时访问多个开启了kerberos的集群,由于kerberos的认证机制,不支持外部应用同时持有多个principle来进行安全认证,从而导致了此类业务无法正常运转。
[0003]针对现有技术中无法同时通过认证以访问多个KERBEROS集群的问题,目前尚无有效的解决方案。
发明内容
[0004]有鉴于此,本发明实施例的目的在于提出一种针对多个KERBEROS集群的并发访问方法和装置,能够并发地认证和访问多个KERBEROS集群,在保证数据安全性的同时提升集群访问的灵活性。
[0005]基于上述目的,本发明实施例的第一方面提供了一种针对多个KERBEROS集群的并发访问方法,包括响应于接收到跨集群的流式传输需求,而将流式传输需求分解为对单个集群的多个并行的读写需求,并分别针对每个读写需求依次执行以下步骤:[0006]创建新进程,并基于新进程而从读写需求中解析出作为请求对象的目标集群和作为请求内容的数据请求指令;
[0007]基于确定的目标集群从票据管理库提取预先存储的相对应的用户安全认证信息和服务端程序配置;
[0008]基于用户安全认证信息和服务端程序配置执行针对目标集群的安全认证;
[0009]响应于安全认证成功而基于数据请求指令在目标集群中执行数据读写操作以满足读写需求。
[0010]在一些实施方式中,数据请求指令包括:旨在读取数据的消费请求指令、或旨在写入数据的生产者请求指令;在目标集群中执行数据读写操作包括:在目标集群中执行消费请求指令以读取数据、或执行生产者请求指令以写入数据。[0011]在一些实施方式中,创建新进程包括:针对不同的读写需求分别创建彼此的新进程。
[0012]在一些实施方式中,方法还包括响应于接收到票据管理信息而依次执行以下步骤:
4
CN 112134707 A[0013]
说 明 书
2/7页
从票据管理信息中解析出对象集群、对象集群的用户安全认证信息、对象集群的
服务端程序配置、和票据管理指令;[0014]响应于票据管理指令为删除,而在票据管理库中删除与票据管理信息中相同的对象集群、用户安全认证信息和服务端程序配置;[0015]响应于票据管理指令为导入或更新,而在票据管理库中暂存票据管理信息中的对象集群、用户安全认证信息和服务端程序配置,并基于用户安全认证信息和服务端程序配置执行针对对象集群的第二安全认证;
[0016]响应于第二安全认证通过而在票据管理库中正式存储对象集群、用户安全认证信息、和服务端程序配置。
[0017]在一些实施方式中,方法还包括:响应于第二安全认证未通过而反馈对象集群的安全认证失败信息。
[0018]在一些实施方式中,方法还包括:响应于安全认证不成功而反馈目标集群的安全认证失败信息。
[0019]在一些实施方式中,目标集群配置为基于读写需求而提供消息订阅服务。[0020]基于上述目的,本发明实施例的第二方面提供了一种针对多个KERBEROS集群的并发访问装置,包括KERBEROS客户端,客户端配置为响应于接收到跨集群的流式传输需求,而将流式传输需求分解为对单个集群的多个并行的读写需求,并且客户端进一步包括:[0021]配置解析端,配置为用于针对每个读写需求创建新进程,并基于新进程而从读写需求中解析出作为请求对象的目标集群和作为请求内容的数据请求指令;[0022]票据管理端,配置为用于针对每个读写需求基于确定的目标集群从票据管理库提取预先存储的相对应的用户安全认证信息和服务端程序配置;[0023]安全认证端,配置为用于针对每个读写需求基于用户安全认证信息和服务端程序配置执行针对目标集群的安全认证;[0024]数据处理端,配置为用于针对每个读写需求响应于安全认证成功而基于数据请求指令在目标集群中执行数据读写操作以满足读写需求。[0025]在一些实施方式中,客户端还配置为接收票据管理信息以管理票据管理库,并且还进一步包括:
[0026]票据信息解析模块,配置为用于从票据管理信息中解析出对象集群、对象集群的用户安全认证信息、对象集群的服务端程序配置、和票据管理指令;[0027]票据信息保存模块,配置为用于响应于票据管理指令为删除,而在票据管理库中删除与票据管理信息中相同的对象集群、用户安全认证信息和服务端程序配置;[0028]票据信息认证模块,配置为用于响应于票据管理指令为导入或更新,而在票据管理库中暂存票据管理信息中的对象集群、用户安全认证信息和服务端程序配置,并基于用户安全认证信息和服务端程序配置执行针对对象集群的第二安全认证;[0029]响应于第二安全认证通过而在票据管理库中正式存储对象集群、用户安全认证信息、和服务端程序配置。
[0030]在一些实施方式中,数据请求指令包括:旨在读取数据的消费请求指令、或旨在写入数据的生产者请求指令;在目标集群中执行数据读写操作包括:在目标集群中执行消费请求指令以读取数据、或执行生产者请求指令以写入数据。
5
CN 112134707 A[0031]
说 明 书
3/7页
本发明具有以下有益技术效果:本发明实施例提供的针对多个KERBEROS集群的并
发访问方法和装置,通过创建新进程,并基于新进程而从读写需求中解析出作为请求对象的目标集群和作为请求内容的数据请求指令;基于确定的目标集群从票据管理库提取预先存储的相对应的用户安全认证信息和服务端程序配置;基于用户安全认证信息和服务端程序配置执行针对目标集群的安全认证;响应于安全认证成功而基于数据请求指令在目标集群中执行数据读写操作以满足读写需求的技术方案,能够并发地认证和访问多个KERBEROS集群,在保证数据安全性的同时提升集群访问的灵活性。附图说明
[0032]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0033]图1为本发明提供的针对多个KERBEROS集群的并发访问方法的流程示意图;
[0034]图2为本发明提供的针对多个KERBEROS集群的并发访问方法的一个实施例的具体流程图。
具体实施方式
[0035]为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。[0036]需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。[0037]基于上述目的,本发明实施例的第一个方面,提出了一种能够在保证数据安全性的同时提升集群访问的灵活性的针对多个KERBEROS集群的并发访问方法的一个实施例。图1示出的是本发明提供的针对多个KERBEROS集群的并发访问方法的流程示意图。[0038]所述的针对多个KERBEROS集群的并发访问方法,如图1所示,包括响应于接收到跨集群的流式传输需求,而将流式传输需求分解为对单个集群的多个并行的读写需求,并分别针对每个读写需求依次执行以下步骤:[0039]步骤S101:创建新进程,并基于新进程而从读写需求中解析出作为请求对象的目标集群和作为请求内容的数据请求指令;[0040]步骤S103:基于确定的目标集群从票据管理库提取预先存储的相对应的用户安全认证信息和服务端程序配置;[0041]步骤S105:基于用户安全认证信息和服务端程序配置执行针对目标集群的安全认证;
[0042]步骤S107:响应于安全认证成功而基于数据请求指令在目标集群中执行数据读写操作以满足读写需求。
[0043]本发明实施例通过灵活配置KDC(KERBEROS的服务端)及principle(用户安全认证信息),满足同时访问多个安全kafka集群的要求,同时允许用户在客户端管理principle等
6
CN 112134707 A
说 明 书
4/7页
信息,解决由于kerberos的认证机制,不支持外部应用同时持有多个principle进行安全认证的问题,满足相关业务需求,提升集群访问的灵活性,同时保证其数据本身的安全性。[0044]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。[0045]在一些实施方式中,数据请求指令包括:旨在读取数据的消费请求指令、或旨在写入数据的生产者请求指令;在目标集群中执行数据读写操作包括:在目标集群中执行消费请求指令以读取数据、或执行生产者请求指令以写入数据。[0046]在一些实施方式中,创建新进程包括:针对不同的读写需求分别创建彼此的新进程。
[0047]在一些实施方式中,方法还包括响应于接收到票据管理信息而依次执行以下步骤:
[0048]从票据管理信息中解析出对象集群、对象集群的用户安全认证信息、对象集群的服务端程序配置、和票据管理指令;[0049]响应于票据管理指令为删除,而在票据管理库中删除与票据管理信息中相同的对象集群、用户安全认证信息和服务端程序配置;[0050]响应于票据管理指令为导入或更新,而在票据管理库中暂存票据管理信息中的对象集群、用户安全认证信息和服务端程序配置,并基于用户安全认证信息和服务端程序配置执行针对对象集群的第二安全认证;
[0051]响应于第二安全认证通过而在票据管理库中正式存储对象集群、用户安全认证信息、和服务端程序配置。
[0052]在一些实施方式中,方法还包括:响应于第二安全认证未通过而反馈对象集群的安全认证失败信息。
[0053]在一些实施方式中,方法还包括:响应于安全认证不成功而反馈目标集群的安全认证失败信息。
[00]在一些实施方式中,目标集群配置为基于读写需求而提供消息订阅服务。[0055]为更清晰的说明本发明的具体实施过程,下面根据如图2所示的、以访问两个安全kafka集群为例的具体实施例来进一步阐述本发明的具体实施方式。[0056]作为消息订阅服务,kafka常被用在多个大数据集群中进行流式数据的传输,以A、B集群为例,在A、B集群皆开启kerberos认证后,通常情况下无法同时进行数据的读取与写入,本发明提出一种访问多安全kafka集群的方法,使得此类业务能更加灵活、便捷的运行,假设集群外的kafka客户端以A集群的数据作为源端进行消费,在数据处理完成后作为B集群的生产者将数据写入。其步骤如下:
[0057]a)在外部kafka客户端发起消费请求后,相关消费请求信息及需访问的A集群信息将被配置解析端获取并解析为实际数据请求及A集群信息;[0058]b)在票据管理端获取A集群中kafka的principle及对应KDC,并发送至安全认证端;
7
CN 112134707 A[0059]
说 明 书
5/7页
c)在安全认证端进行实际对应的A集群安全认证,在认证成功后才可继续进行下
一步实际的数据操作,否则将返回认证失败及对应的错误信息;
[0060]d)数据处理端在成功认证后调用消费者进行数据消费请求的实际操作,处理完成后转换为kafka可写入的数据格式,并发起生产者消息请求,向B集群进行生产者数据写入,其中包含B集群相关信息;
[0061]e)Kafka向B集群发起的数据写入请求重新被配置解析端获取,由于Kerbero认证的特殊性,需新建进程进行处理相关生产请求信息及需访问的B集群信息将被配置解析端解析为实际数据请求及B集群信息;
[0062]f)在票据管理端获取对应B集群中kafka相关的principle及对应KDC,并发送至安全认证端;
[0063]g)在安全认证端进行实际对应的B集群Kerberos安全认证,在认证成功后才可继续进行下一步实际的数据操作,否则将返回认证失败及对应的错误信息;
[00]h)数据处理端在成功认证后调用producer进行数据写入请求的实际操作,将该消息写入B集群,至此完成一个周期的数据操作。[0065]额外地还应注意,还存在对票据管理库的相应管理流程如下:[0066]a)在初次使用时需导入A、B两个kafka集群相关principle及对应KDC信息,通过配置解析端导入princle及KDC配置信息,指令包括对principle及对应KDC信息的导入、更新、删除[0067]b)解析为票据管理导入、更新处理命令后,principle及对应KDC信息将在票据管理端暂存,并进入下一步;若为删除处理指令,则删除指定的安全配置信息
[0068]c)安全认证端将以上述得到principle及对应KDC信息执行安全认证测试,在成功认证后将保存该信息,否则将返回KDC认证失败及相关错误信息[0069]从上述实施例可以看出,本发明实施例提供的针对多个KERBEROS集群的并发访问方法,通过创建新进程,并基于新进程而从读写需求中解析出作为请求对象的目标集群和作为请求内容的数据请求指令;基于确定的目标集群从票据管理库提取预先存储的相对应的用户安全认证信息和服务端程序配置;基于用户安全认证信息和服务端程序配置执行针对目标集群的安全认证;响应于安全认证成功而基于数据请求指令在目标集群中执行数据读写操作以满足读写需求的技术方案,能够并发地认证和访问多个KERBEROS集群,在保证数据安全性的同时提升集群访问的灵活性。[0070]需要特别指出的是,上述针对多个KERBEROS集群的并发访问方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于针对多个KERBEROS集群的并发访问方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。[0071]基于上述目的,本发明实施例的第二个方面,提出了一种能够在保证数据安全性的同时提升集群访问的灵活性的针对多个KERBEROS集群的并发访问装置的一个实施例。所述的针对多个KERBEROS集群的并发访问装置包括KERBEROS客户端,客户端配置为响应于接收到跨集群的流式传输需求,而将流式传输需求分解为对单个集群的多个并行的读写需求,并且客户端进一步包括:[0072]配置解析端,配置为用于针对每个读写需求创建新进程,并基于新进程而从读写
8
CN 112134707 A
说 明 书
6/7页
需求中解析出作为请求对象的目标集群和作为请求内容的数据请求指令;[0073]票据管理端,配置为用于针对每个读写需求基于确定的目标集群从票据管理库提取预先存储的相对应的用户安全认证信息和服务端程序配置;[0074]安全认证端,配置为用于针对每个读写需求基于用户安全认证信息和服务端程序配置执行针对目标集群的安全认证;[0075]数据处理端,配置为用于针对每个读写需求响应于安全认证成功而基于数据请求指令在目标集群中执行数据读写操作以满足读写需求。[0076]在一些实施方式中,客户端还配置为接收票据管理信息以管理票据管理库,并且还进一步包括:
[0077]票据信息解析模块,配置为用于从票据管理信息中解析出对象集群、对象集群的用户安全认证信息、对象集群的服务端程序配置、和票据管理指令;[0078]票据信息保存模块,配置为用于响应于票据管理指令为删除,而在票据管理库中删除与票据管理信息中相同的对象集群、用户安全认证信息和服务端程序配置;[0079]票据信息认证模块,配置为用于响应于票据管理指令为导入或更新,而在票据管理库中暂存票据管理信息中的对象集群、用户安全认证信息和服务端程序配置,并基于用户安全认证信息和服务端程序配置执行针对对象集群的第二安全认证;[0080]响应于第二安全认证通过而在票据管理库中正式存储对象集群、用户安全认证信息、和服务端程序配置。
[0081]在一些实施方式中,数据请求指令包括:旨在读取数据的消费请求指令、或旨在写入数据的生产者请求指令;在目标集群中执行数据读写操作包括:在目标集群中执行消费请求指令以读取数据、或执行生产者请求指令以写入数据。[0082]从上述实施例可以看出,本发明实施例提供的针对多个KERBEROS集群的并发访问装置,通过创建新进程,并基于新进程而从读写需求中解析出作为请求对象的目标集群和作为请求内容的数据请求指令;基于确定的目标集群从票据管理库提取预先存储的相对应的用户安全认证信息和服务端程序配置;基于用户安全认证信息和服务端程序配置执行针对目标集群的安全认证;响应于安全认证成功而基于数据请求指令在目标集群中执行数据读写操作以满足读写需求的技术方案,能够并发地认证和访问多个KERBEROS集群,在保证数据安全性的同时提升集群访问的灵活性。[0083]需要特别指出的是,上述针对多个KERBEROS集群的并发访问装置的实施例采用了所述针对多个KERBEROS集群的并发访问方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述针对多个KERBEROS集群的并发访问方法的其他实施例中。当然,由于所述针对多个KERBEROS集群的并发访问方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述针对多个KERBEROS集群的并发访问装置也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
[0084]以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确为单数,也可以理解为多个。
9
CN 112134707 A[0085]
说 明 书
7/7页
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非
旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
10
CN 112134707 A
说 明 书 附 图
1/1页
图1
图2
11
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- haog.cn 版权所有 赣ICP备2024042798号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务