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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 在本文中,我们首先简单介绍文件系统的用户认证和访问权限控制的概念,然后介绍阿里云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协议文件系统。
目录
相关文章
|
3天前
|
传感器 数据采集 监控
基于阿里云MQTT服务,设计一个STM32的智能光伏控制系统
这篇文章详细介绍了利用STM32F103C8T6单片机实现光伏发电系统的关键技术。全文分为四章:第一章阐述了光伏发电的背景、意义及应用场景,强调其在绿色能源领域的重要性。第二章介绍了如何通过STM32F103C8T6及光敏电阻和伺服电机实现光线追踪系统,详细描述了硬件选择、连接及使用HAL库编写的单片机程序。第三章讲解了最大功率点追踪(MPPT)的原理,并展示了如何利用STM32F103C8T6和相关传感器、DC-DC转换器实现MPPT功能。第四章描述了如何通过STM32F103C8T6与SIM7600CE 4G模块连接到阿里云MQTT服务,实现设备状态数据的远程传输和控制。本文提供了全面的硬
33 2
|
28天前
|
弹性计算 运维 Java
最佳实践:阿里云倚天ECS在千寻位置时空智能服务的规模化应用
阿里云、平头哥及安谋科技联合举办的飞天技术沙龙探讨了倚天Arm架构在业务创新中的应用。活动中,千寻位置运维专家分享了将核心业务迁移到倚天处理器ECS实例的成功案例,强调了倚天处理器的高能效比和降本增效优势。迁移过程涉及操作系统、CICD系统和监控系统的适配,以及业务系统的性能测试。目前,千寻已迁移了上千台ECS实例到倚天处理器,实现了成本和效率的显著提升。未来计划继续扩展倚天处理器在核心业务和K8S中的应用。
|
1月前
|
域名解析 网络协议 安全
【域名解析DNS专栏】云服务中的DNS解析服务比较:阿里云、AWS、Azure大PK
【5月更文挑战第23天】此对比分析探讨了阿里云DNS、AWS Route 53和Azure DNS的服务特点。阿里云DNS以其智能解析和IPv6支持脱颖而出,适合中国地区用户;AWS Route 53凭借其强大的路由策略和与AWS生态的深度集成吸引高级用户;Azure DNS则以简洁管理和DNSSEC安全支持见长,与Azure平台集成良好。选择取决于具体需求,如功能、易用性、性能、安全性和成本。
【域名解析DNS专栏】云服务中的DNS解析服务比较:阿里云、AWS、Azure大PK
|
25天前
|
机器学习/深度学习 人工智能 测试技术
阿里云连续三年入围Gartner云AI开发者服务挑战者象限
Gartner正式发布了《云AI开发者服务魔力象限》报告(Magic Quadrant for Cloud AI Developer Services),阿里云成功入选,是唯一一家入围“挑战者”(Challengers)象限的中国厂商,并且保持连续三年入围。
|
27天前
|
存储 人工智能 运维
首批 I 阿里云通过算力服务成熟度增强级评估
近日,阿里云作为算力服务标准主要参编单位之一,参与了首批标准符合性验证,以阿里云飞天企业版为主要参评产品,完成了通用计算、智能计算和高性能计算三类计算服务能力的符合性评估。
|
28天前
|
弹性计算 Java 关系型数据库
最佳实践:阿里云倚天ECS在千寻位置时空智能服务的规模化应用
当前,千寻已有上千台倚天ECS实例在支撑线上核心业务。
|
28天前
|
Cloud Native 安全 Serverless
【阿里云云原生专栏】低代码开发在云原生平台的应用:阿里云低代码服务探索
【5月更文挑战第27天】在云原生时代,低代码开发凭借其图形化界面和预构建模块,简化了应用开发,提升了效率。阿里云积极探索低代码领域,推出函数计算FC和应用配置中心ACM等服务。FC让开发者无需关注基础设施,仅需少量代码即可实现应用部署,而ACM则提供动态配置管理,增强应用灵活性。阿里云的这些服务为企业数字化转型提供了高效、安全的解决方案,预示着低代码开发在云原生平台上的重要地位。
208 1
|
1月前
|
Cloud Native NoSQL 关系型数据库
动态精选|阿里云4月产品与服务更新盘点
动态精选|阿里云4月产品与服务更新盘点
77 1
|
1月前
|
存储 安全 大数据
蚂蚁数科MAPPIC密态计算云平台入驻阿里云计算巢,打造云上密态计算服务
蚂蚁数科MAPPIC密态计算云平台入驻阿里云计算巢,打造云上密态计算服务