ams*_*ams 159 java security terminology spring-security
在安全框架的背景下,一些术语通常出现在主题,用户和主体上,但我无法找到明确的定义和它们之间的区别.
那么,这些术语究竟是什么意思,为什么需要这些主题和主体的区别呢?
T.R*_*Rob 248
这些是层次的,属,种和个体是等级的.
Subject/Object继承自语法中使用的相同术语.在一个句子中,主语是演员,而对象是作用的东西.从这个意义上来说,在计算机发明之前就一直存在使用.在安全上下文中,主题是可以发出请求的任何内容.如上所述,这不必限于IT安全性,因此是非常广泛的分类.有趣的是,主体意味着对象.没有对象,就没有主题.
校长是学科解决的问题.当您出示信用卡时,您就是主题,而帐号是本金.在其他情况下,您的用户ID或州颁发的身份证明是您的主要身份.但是校长可以与许多不是人的学科相关联.当应用程序发出对系统级函数的请求时,委托人可以是签名的可执行代码模块的签名者,但即使在这种情况下,驱动请求的用户仍然是主题.
用户比主题或主体更具体,因为它通常指的是交互式运算符.这就是我们拥有图形用户界面而不是图形主体界面的原因.用户是解析为委托人的主题实例.单个用户可以解析为任意数量的主体,但任何委托人都应该解析为单个用户(假设人们遵守不共享ID的要求).在上面的示例中,可执行代码模块的签名者绝对不是用户,但它是有效的主体.尝试加载模块的交互式操作员是用户.
正如评论中所指出的,即使权威人士也不同意这些条款.在准备此回复时,我搜索了NIST,SANS,IEEE,MITER和一些"准权威"来源,例如安全考试指南.我找到的没有一个至少是准权威的单一来源涵盖了所有三个术语,并且在使用方面都有很大差异.这是我对条款内容应该被使用,但是从实际情况来看,当你凝视着在半夜手动,定义往往是任何厂商或作家说,他们是.希望尽管这里的回复将提供足够的洞察力来浏览水域并使用这些术语解析任何安全文档.
Ara*_*ram 16
我认为术语取自JAAS.
当应用程序使用JAAS身份验证对用户(或其他实体(如服务))进行身份验证时,会创建一个Subject作为结果.主题的目的是表示经过身份验证的用户.Subject由一组Principal组成,其中每个Principal代表该用户的身份.例如,主题可以具有名称Principal("Susan Smith")和社会安全号码Principal("987-65-4321"),从而将该主题与其他主题区分开.
rah*_*han 11
Subject是请求服务的实体.它可以是用户或进程.可能这就是选择主题而不是用户的原因.
当主题尝试访问服务时,必须首先对主题进行身份验证.成功的身份验证以加载该主题的安全主体结束.例如,在基于角色的访问控制系统中,经过身份验证(登录)的用户通常会有两个主体 - userId和roleId.在这样的系统中,为角色和用户指定了特权(即谁可以访问什么).在授权期间(即检查是否应允许所请求的服务),安全系统将检查两个主体的可访问性.
因此,从授权的角度来看,委托人是允许或不允许访问的实际实体.Subject只是一个包含一些主体的用户/线程/进程.
Raf*_*ael 10
正如T.Rob所解释的,Subject是请求访问对象的任何实体.从那一点开始,我发现了对javax.security.auth.Subject代码的评论,我发现它非常有用且易于理解:
"主题可能具有多个身份.每个身份在主题中表示为主体.主体只是将名称绑定到主题.例如,恰好是一个人的主体,Alice,可能有两个主体:一个绑定"爱丽丝酒吧",她的驾驶执照上的名字,主题,另一个绑定,"999-99-9999",她的学生证上的号码,主题.两位校长都指同一主题,即使每个有一个不同的名字."
希望能帮助到你.
这是Oracle JAVA SE文档中以下说明的链接。
主题,主体,身份验证和凭据要授权对资源的访问,应用程序首先需要对请求源进行身份验证。JAAS框架定义了主题主题来表示请求的来源。主题可以是任何实体,例如个人或服务。主题由javax.security.auth.Subject类表示。
认证表示验证主体身份的过程,必须以安全的方式执行;否则,作恶者可能会冒充他人来访问系统。身份验证通常涉及对象展示某种形式的证据以证明其身份。这样的证据可能只是受试者可能会知道或拥有的信息(例如密码或指纹),也可能只是受试者可能产生的信息(例如使用私钥签名的数据)。
身份验证之后,将在主题中填充关联的身份或主体(类型为java.security.Principal)。一个主题可能有很多校长。例如,一个人可能有一个名字校长(“ John Doe”)和一个SSN校长(“ 123-45-6789”),这与其他主题有所区别。
除了关联的主体外,主题还可以拥有与安全性相关的属性,这些属性称为凭据。凭证可能包含用于对主体进行新服务身份验证的信息。此类凭据包括密码,Kerberos票证和公共密钥证书。凭证还可能包含使主体能够执行某些活动的数据。例如,加密密钥代表使主体能够签名或加密数据的凭据。公共和私有凭证类不是核心J2SE API的一部分。因此,任何类别都可以代表一个凭证。
归档时间: |
|
查看次数: |
43697 次 |
最近记录: |