拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 安全上下文基础:用户,主题和主体

安全上下文基础:用户,主题和主体

白鹭 - 2021-11-24 324 0 0

1.概述

安全性是任何Java应用程序的基本组成部分。此外,我们可以找到许多可以处理安全问题的安全框架。此外,在这些框架中,我们通常使用一些术语,例如主题,主体和用户。

在本教程中,我们将解释安全框架的这些基本概念。另外,我们将显示它们之间的关系和差异。

2.主题Subject

在安全上下文中,主题表示请求的来源。对象是获取有关资源的信息或修改资源的实体。此外,主题还可以是用户,程序,进程,文件,计算机,数据库等。

例如,一个人需要授权对资源和应用程序的访问以认证请求源。在这种情况下,这个人是一个主体。

让我们看一下基于JAAS框架实现的示例:

Subject subject = loginContext.getSubject();

 PrivilegedAction privilegedAction = new ResourceAction();

 Subject.doAsPrivileged(subject, privilegedAction, null);

3.Principal

成功通过身份验证后,我们将获得一个填充的主题,该主题具有许多关联的身份,例如角色,社会保险号(SSN)等。换句话说,这些标识符是principal,主题代表它们。

例如,一个人可能具有账号主体(“ 87654-3210”)和其他唯一标识符,从而将其与其他主体区分开。

让我们看看UserPrincipal并将其添加到Subject:

@Override

 public boolean commit() throws LoginException {

 if (!loginSucceeded) {

 return false;

 }

 userPrincipal = new UserPrincipal(username);

 subject.getPrincipals().add(userPrincipal);

 return true;

 }

4.用户

通常,用户代表访问资源以执行某些动作或完成工作任务的人。

同样,我们可以将用户用作委托人,另一方面,委托人是分配给用户的身份。 UserPrincipal是上一节中讨论JAAS框架中用户的一个很好的例子.

5.主题,Principal和用户之间的区别

如上节所述,我们可以使用委托人来表示同一用户身份的不同方面。它们是主题的子集,而用户是指的是最终用户或交互式运算符的主体的子集。

六,结论

在本教程中,我们讨论了主题,Principal和用户的定义,这些定义在大多数安全框架中都很常见。此外,我们展示了它们之间的区别。

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *