用户系列之三:用户登录及访问资源的过程之访问令牌篇-阿里云开发者社区

开发者社区> 数据库> 正文

用户系列之三:用户登录及访问资源的过程之访问令牌篇

简介:
    各位都知道,工作组下本地用户登录需要到本地的SAM数据库中做身份验证,而域用户如果在域内的客户机上登录,需要到AD数据库中作身份验证。我在这里仅以域用户为例来说明用户的详细的登录过程。

    如果是你是域用户,在域内的客户机登录,必须选择登录到域,此时你的这台计算机会到DNS服务器上找到该域的DC是谁,由DC负责对用户的身份进行验证,如果验证通过,那么该用户就能正常登录。那么DC除了验证用户的是AD数据库中合法用户,到底还会做什么呢?

    其实,当用户在本地登录到域时,DC验证用户身份通过后,会替用户建立一个访问令牌(Access Token),其中包含着该用户的SID及用户所属所有组的SID(关于通用组的SID,需要联系GC,当然如果该域的域功能级别如果是win2000 mixed,就不检查通用组情况。此外不管用户是否加入过通用组,该DC都将联系GC来检查)。如果DC能成功联系上GC,该用户的访问令牌正常生成,用户也就能顺利登录成功,如果此时联系不上GC,那该用户也就拿不到访问令牌,当然也就无法登录到域,这就是为什么我们会在上篇
活动目录系列之五:单域环境的实现(多站点)下--优化 的原因。如下图所示:



    如果用户拿到访问令牌,登录成功,你要是访问某台本域内计算机的共享资源时,则必须出示访问令牌。从而来决定用户将拥有何种权限来访问。
    注意:因此当一个用户登录域后,你才将用户加入到某个组,因为用户的访问令牌中并不包含本组的SID,故有关本组的权限该用户也不会有。比如你创建共享并设置相应的该组的访问权限,其实该用户并不能访问,除非你让该用户重新登录再次生成访问令牌后方可。

    下面讨论一下跨域资源的访问:用户user1属于A域,登录成功后,要访问B域资源。
    用户user1登录A域成功,获得访问令牌,具备了访问该域资源的能力,但如果要访问B域资源,必须有B域的那台共享资源的计算机发送访问令牌。故该用户会依据信任路径,依次找到那台计算机所属域的GC,由那台GC发送给用户“服务票据”,用户拿着该票据,再到那台计算机上获得访问令牌。从而才能访问其共享资源。
    注意:这个过程,User1会通过逐级访问GC,才能找到那个域的。










本文转自 jary3000 51CTO博客,原文链接:http://blog.51cto.com/jary3000/122727,如需转载请自行联系原作者

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

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章