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

简介:
    各位都知道,工作组下本地用户登录需要到本地的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,如需转载请自行联系原作者
目录
相关文章
|
10月前
|
数据安全/隐私保护
fastadmin是如何设置没有权限的用户不能访问某些页面的?
fastadmin是如何设置没有权限的用户不能访问某些页面的?
259 0
|
4月前
|
监控 JavaScript 应用服务中间件
匿名用户访问的接口或者无登录态场景下接口防刷的解决方案
匿名用户访问的接口或者无登录态场景下接口防刷的解决方案
45 0
|
10月前
|
API PHP
企业微信授权登录服务端API实战开发(2):php程序开发获取访问用户身份
企业微信授权登录服务端API实战开发(2):php程序开发获取访问用户身份
109 0
|
12月前
|
安全 数据安全/隐私保护 物联网
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(1)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(1)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(1)
|
12月前
|
存储 安全 物联网
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(2)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(2)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(2)
|
存储 缓存 数据安全/隐私保护
Jasny SSO是如何处理用户会话的?底层原理是什么?
Jasny SSO是如何处理用户会话的?底层原理是什么?
|
JSON 安全 前端开发
如何认证当前的操作用户?
如何认证当前的操作用户?
|
缓存 NoSQL Java
用户和角色的缓存|学习笔记
快速学习用户和角色的缓存
109 0
用户和角色的缓存|学习笔记
|
缓存 网络协议 JavaScript