开发者社区> EmeraldCity> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

阿里云SMB协议文件存储服务支持基于AD域的用户身份认证及权限访问控制介绍

简介: 在本文中,我们首先简单介绍文件系统的用户认证和访问权限控制的概念,然后介绍阿里云SMB协议文件存储服务支持基于AD域系统的用户身份认证及访问权限控制的设计实现。
+关注继续查看

在SMB协议文件系统服务中,用户身份的认证是由域控制器来提供的。用户可以在配置了域控制器的Windows或者Linux服务器上,以域身份连接并访问SMB文件系统,然后文件系统服务器得到用户的域身份,来达到目录和文件级别的访问权限控制。

目前的阿里云SMB协议文件存储服务不支持多用户的文件/目录级别的权限访问控制,只提供了一种支持云账号以及源地址IP为基础的文件系统级别的鉴权和访问控制。随着越来越多的企业客户的上云,也出现了更多的阿里云客户对我们提出了对不同的用户进行文件及目录级别的访问控制的要求。比如某医院,他们目前使用的是EMC Isilon存储,采用了Isilon自带的用户管理。他们希望在上云后,能够有和EMC Isilon类似的用户管理体验以及类似的对不同用户的文件目录访问权限控制。另外比如某渲染公司,他们目前的本地存储采用了微软AD域的用户认证,希望在上云后他们的文件存储能够和他们本地的AD域控制器打通,这样他们的用户不管从本地或者云上的VM都能进行同样的用户认证,而且云上的文件存储权限控制和线下一致。

今天,我们很高兴地宣布,阿里云SMB协议文件存储服务也可以支持基于AD域系统的用户身份认证及访问权限控制了,使线下传统的基于微软的Active Directory域的文件系统及应用可以无缝地迁移到阿里云上来,进一步降低SMB协议的文件系统使用和运维成本。阿里云SMB协议文件存储服务可以依赖用户部署在线下或者阿里云上的AD域控制器,通过Kerberos网络身份认证协议来进行AD域用户身份的认证,然后基于认证的域身份来进行目录和文件级别的访问权限控制。

如果要使用阿里云SMB协议文件存储服务的基于AD域系统的用户身份认证及访问权限控制功能,请在阿里云文件系统控制台打开配置该功能。具体请参考将阿里云SMB协议文件系统挂载点接入AD域

在本文中,我们首先简单介绍文件系统的用户认证和访问权限控制的概念,然后介绍阿里云SMB协议文件存储服务支持基于AD域系统的用户身份认证及访问权限控制的实现。

什么是文件系统的用户认证和访问权限控制

我们来简单介绍一下文件系统的用户认证和访问权限控制的概念。顾名思义,这里包含两个层次的概念。首先是用户认证,也就是身份识别,这是识别一个用户在一个系统中的身份及所在的组的过程。在网络文件系统的应用场景中,这是一个涉及到三方的过程。用户管理认证模块负责管理用户的信息,包括身份ID,所在的组等,并且提供身份认证服务。客户端拿着他所声称的身份去访问文件服务器,文件服务器必须能够以某种方式确认这个身份确实是用户管理认证模块认可的身份。在SMB文件访问协议中,支持的用户认证协议有Kerberos以及NTLM。《Kerberos网络身份认证协议介绍及SMB文件系统对其的支持》具体介绍了这Kerberos网络身份认证协议以及和文件服务器的交互过程。而用户认证模块,比较常用的有文件系统本地的用户管理认证,以及外部的AD域、LDAP域或者NIS域用户管理认证。

文件访问权限控制, 包括文件的访问权限授权和访问权限控制两个方面。在文件系统中,目录和文件的属主能够对系统中的用户进行读、写、修改等访问的授权。当一个用户访问目录和文件时,文件系统会根据认证后的用户身份,对比系统中之前设置的授权信息进行比对,来决定这个访问是否被允许。在兼容POSIX的文件系统语义中(如Linux),这个是通过大家熟悉的mode来进行文件访问控制。具体来说,每个文件或目录的拥有者(owner)是由uid和gid描述的,基本的访问控制mode也即经典的rwxrwxrwx控制串。其中前三位是表示owner uid对应的用户拥有的权限读、写和执行权限,中间三位和最后三位分别是是owner gid对应的组以及所有其他用户(others)所拥有的读、写和执行权限。而在Windows的文件系统中,访问控制是通过ACL(Access Control List)来描述和控制。ACL即权限控制表,用于描述一个对象(文件或目录)上的一系列存取权限。ACL中的每条权限控制项(Access Control Entry, ACE)通常由一个可以验证身份的Security Principal(如用户、用户组,服务账号等)和该Security Principal在这个对象上拥有的一系列权限组成。常见的权限可能包括读、写、执行、删除、审计等。稍具体的请参考《阿里云SMB协议文件系统ACL权限控制使用指南》中相关的介绍。

目前阿里云SMB协议文件存储服务的访问权限控制

目前的阿里云SMB协议文件存储服务不支持多用户的文件/目录级别的权限访问控制,但是提供了一种支持云账号以及源地址IP为基础的文件系统级别的鉴权和访问控制。在这种文件系统级别的访问控制中,首先云账号可以通过设置访问权限组,设置一个文件系统可以被访问的源IP地址列表以及相应的读写权限。然后,在用户建立TCP连接请求时,从TCP连接中提取对应的VPC以及源IP地址信息,通过查找匹配权限组来设置该链接的读写权限。如下图所示:
1538366493379_78ddbe09_8d72_4477_b575_096ae70ee9f4

在这种通过权限组进行文件系统级别的权限控制下,用户只要能登录授权的机器,就能以权限组配置的权限访问相应的文件系统。不同的用户登录机器后,不再进行用户认证,有着相同的权限(匿名用户访问)。另外,由于权限控制基于文件系统级别,不能细粒度地在文件和目录级别做访问权限控制。

阿里云SMB协议文件存储服务基于AD域系统的用户身份认证及访问控制

经过对客户需求以及友商产品类似功能的分析,我们也设计了支持客户VPC或者客户IDC内的AD域控制器的用户管理和文件系统访问权限控制,这样可以打通混合云客户的云上和云下用户认证以及文件系统权限控制。

在我们的实现中,采用的Kerberos用户认证协议,主要考虑是在NTLM协议的实现中,需要从文件服务向AD发起认证请求,而AD在用户的VPC网络中或者在线下IDC内。在阿里云中,这样从云服务向用户VPC或者IDC资源发起的请求需要开通反向网络访问并且需要客户的授权,这样其复杂性要大大增加。而Kerberos的认证协议不需要文件服务和客户AD的直接交流,也就避免了反向网络打通的复杂性。

基于AD域系统的用户认证及访问控制的流程大概如下图所示:
1575181124718_b73e2ddc_a639_4e41_92dd_57fba5e94b88

  1. 用户的账号信息管理在客户AD上进行。客户在AD系统上创建并管理用户,并创建阿里云文件系统的服务账号,注册NAS文件系统挂载点域名,并为NAS文件系统挂载点服务生成Keytab密钥表文件。然后下载阿里云文件系统服务账号的keytab。具体步骤请参考《将阿里云SMB协议文件系统挂载点接入AD域
  2. 客户通过阿里云控制台管理文件系统,配置文件系统的用户认证和访问控制,并上传阿里云文件系统服务账号的keytab。
  3. Keytab信息保存到阿里云文件系统。
  4. 用户访问及权限控制。用户通过IDC内的应用资源或者VPC内的VM访问文件系统建立连接的时候,首先通过目前已经实现的文件系统权限组进行权限验证,根据配置的权限组信息控制客户端的连接及访问,然后根据下面的逻辑进行用户认证和访问控制:
    a.用户访问文件系统建立连接后,通过 SMB协议协商用户认证协议
    b.文件服务器通过查找用户文件系统的配置,查询是否配置了Kerberos认证支持
    c.如果用户文件系统配置了Kerberos认证,向客户端返回支持Kerberos认证协议
    d.客户端向AD(用户VPC内或者用户IDC内的AD服务器)发出访问阿里云文件系统服务的请求,AD域控制器认证用户后用阿里云文件系统服务账号的密钥加密用户信息,返回给用户客户端
    e.用户客户端将加密的用户信息通过SMB Session Setup传给SMB文件服务器
    f.文件服务器通过用户提供的文件系统keytab解密用户信息,然后其后在该session的所有访问都用该用户做为授权对象。
    g.通过认证后,文件系统返回用户客户端认证通过。否则拒绝session setup请求
    h.应用向文件系统发出文件系统访问,读写及其他请求。
    i.文件访问控制由文件系统服务器执行。文件服务器根据Session的用户信息和文件系统的目录/文件的访问权限配置,允许或者拒绝用户访问。
    j.文件服务器向用户系统返回文件访问结果。

    在这个实现中,文件及目录的访问授权可以通过Windows提供的文件浏览器进行。

阿里云SMB协议文件存储服务基于AD域系统的用户身份认证及访问控制的相关文章

下面是使用基于AD域系统的用户身份认证及访问权限控制可能需要的相关知识点:

  1. 阿里云SMB协议文件存储服务支持基于AD域的用户身份认证及权限访问控制介绍,总体介绍阿里云SMB协议文件存储服务支持基于AD域的用户身份认证及权限访问控制的设计实现。
  2. Kerberos网络身份认证协议介绍及SMB文件系统对其的支持,介绍Kerberos网络身份认证协议以及与SMB协议问系统的交互。
  3. 安装并启用Active Directory域服务与DNS服务,介绍如何在VPC中安装并启用AD域服务和DNS服务。
  4. 将Windows系统机器加入AD域,介绍如何将windows机器加入AD域。
  5. 将阿里云SMB协议文件系统挂载点接入AD域,介绍如何在AD域服务器以及阿里云SMB协议文件系统中进行必要的配置来支持基于AD域的用户身份认证及权限访问控制。
  6. 从Windows以AD域用户身份挂载使用阿里云SMB协议文件系统,介绍如何从windows客户端以域用户身份挂载使用阿里云SMB协议文件系统。
  7. Linux客户端以AD域用户身份挂载使用阿里云SMB协议文件系统,介绍如何从Linux客户端以域用户身份挂载使用阿里云SMB协议文件系统。
  8. 阿里云SMB协议文件系统ACL权限控制使用指南,介绍如何正确地配置阿里云SMB协议文件系统的ACL以及相应的规则描述。
  9. 阿里云SMB协议文件系统AD身份认证和ACL权限控制使用场景 - Home Directory / User Profile,介绍使用权限控制的域用户Home Directory以及User Profile两个场景下的相关配置及实现。
  10. MacOS客户端连接阿里云NAS SMB文件系统,介绍如何从MacOS客户端挂载使用阿里云SMB协议文件系统。
  11. Linux客户端以AD域用户身份挂载使用阿里云SMB协议文件系统,介绍如何把Linux客户端加入AD域,如何挂载以及自动挂载阿里云SMB协议文件系统。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
IIS应用使用虚拟目录功能,将数据目录存放到阿里云SMB文件系统上实现弹性存储
阿里云SMB文件系统具有超大容量以及弹性扩展的能力,但是兼容性和性能相比虚拟机系统盘有差距。针对这个特性,可以将IIS应用的数据部分存放在云上文件系统中,应用核心还是在系统盘上运行,通过IIS虚拟目录功能将IIS应用与阿里云SMB文件系统的目录相连。 本文详述了如何配置IIS虚拟目录到阿里云SMB文件系统,实现存储海量扩展。
0 0
阿里云文件系统NAS SMB如何修改根目录权限
阿里云文件系统服务SMB文件系统(NAS SMB)在没有打开SMB ACL功能时,只支持只读操作,无法修改根目录权限。 在参考《将阿里云SMB协议文件系统挂载点接入AD域》https://help.aliyun.com/document_detail/154930.html,打开SMB ACL功能之后,用户即可修改根目录权限。
0 0
阿里云文件系统SMB ACL超级用户功能使用指南
阿里云文件系统对于SMB文件系统提供了SMB ACL超级用户功能,可以方便客户在无需改变目录权限的情况下查看和修改任何目录或者任何文件。方便文件系统的管理员进行管理。 以下介绍两个适用SMB ACL超级用户功能的案例,方便用户模仿使用。
0 0
企业级客户使用阿里云文件存储NAS SMB配置Home Directory服务指南
阿里云文件存储服务提供SMB/NFS/CIFS等多种文件存储协议,单文件系统可以存储海量数据,方便企业级客户在多个用户之间进行文件共享和协同合作。其中SMB协议是微软生态默认的文件共享协议,经过几十年的长期积累,具备广大的用户群,能够支持Windows、MacOS、Linux等多种客户端。阿里云NAS SMB文件存储通过支持AD域服务,可以对一个企业不同部门的不同员工创建不同的用户身份,结合ACL权限控制功能,达到企业有序可控地共享整个文件系统。
0 0
加入AD域的Linux客户端以AD域身份自动挂载阿里云SMB协议文件系统
本文介绍了如何在加入AD域的Linux客户端以AD域用户身份挂载使用阿里云SMB协议文件系统,并如何配置使AD域用户登陆Linux客户端以后自动挂载。如果需要在windows以AD域用户身份挂载使用阿里云SMB协议文件系统,请参考《从Windows以AD域用户身份挂载使用阿里云SMB协议文件系统》。如果需要从一个未加入AD域的Linux客户端以AD域用户身份挂载使用阿里云SMB协议文件系统,请参考《Linux客户端以AD域用户身份挂载使用阿里云SMB协议文件系统》。
0 0
阿里云ACK服务使用Windows容器挂载NAS SMB最佳实践
前一篇容器文章《Windows容器使用阿里云NAS SMB文件系统做持久化存储目录》介绍了在Windows Docker容器中如何连接阿里云NAS SMB文件卷。本文则着重介绍如何使用K8S配置让阿里云ACK服务的Windows容器使用NAS SMB卷。 我们使用IIS应用作为演示应用,让IIS搭建的网站能够显示出NAS SMB卷的test目录下存储的index.html的内容。 用户可以举一反三,将自己的应用搭建在阿里云ACK上并使用NAS SMB卷。
0 0
Windows容器使用阿里云NAS SMB文件系统做持久化存储目录
随着Windows容器逐渐普及和发展,Windows容器持久化存储以及容器间共享的需求越来越高涨。 本文介绍如何让Windows主机正确配置NAS SMB文件系统,支持Windows容器让Docker镜像使用挂载NAS SMB文件系统的子目录作为持久化存储目录。
0 0
MacOS客户端通过阿里云VPN连接阿里云NAS SMB文件系统
SMB远程文件传输协议在远程文件系统领域具有相当的统治地位。主流客户端厂家,包括微软、苹果以及Linux生态圈都支持SMB协议,并且苹果的MacOS已经将SMB作为其默认的远程文件协议。作为国内云厂商的龙头企业,阿里云NAS SMB文件系统也可以支持MacOS客户端。
1344 0
从Windows以AD域用户身份挂载使用阿里云SMB协议文件系统
在完成AD域接入之后,用户即可开始以AD域用户身份挂载使用阿里云SMB协议文件系统了。本文介绍了几种SMB文件系统的挂在方式以及简单的ACL特性使用方法的演示。
4353 0
将阿里云SMB协议文件系统挂载点接入AD域
在使用特定AD域中的用户身份来挂载SMB协议的阿里云文件存储NAS文件系统之前,需要先在AD域内为相应的NAS文件系统的注册服务并生成Keytab密钥表文件。
1658 0
+关注
文章
问答
来源圈子
更多
阿里云存储基于飞天盘古2.0分布式存储系统,产品包括对象存储OSS、块存储Block Storage、共享文件存储NAS、表格存储、日志存储与分析、归档存储及混合云存储等,充分满足用户数据存储和迁移上云需求,连续三年跻身全球云存储魔力象限四强。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
阿里云存储产品手册
立即下载
阿里云AI产品必知必会系列电子书
立即下载
阿里云云原生 Serverless 案例集
立即下载