好的,不是针对5岁儿童,但请尽可能避免使用流行语和企业用语。
现在似乎很流行基于声明的身份验证,但我找不到一个简单易懂、平易近人的解释,说明它到底是什么,与我们现在使用的角色-based身份验证有何不同,使用它的好处是什么等等。
好的,不是针对5岁儿童,但请尽可能避免使用流行语和企业用语。
现在似乎很流行基于声明的身份验证,但我找不到一个简单易懂、平易近人的解释,说明它到底是什么,与我们现在使用的角色-based身份验证有何不同,使用它的好处是什么等等。
(这是我的个人看法,可能会有不同意见。请将其他观点发布为独立答案。)
基于声明的身份验证和授权是指通过将身份验证/授权变成一个单独的(网络)服务,将用户授权和用户登录维护工作从(网络)应用程序中分离出来。
例如,当我第一次浏览启用了声明的Web应用程序时,它会将我的浏览器重定向到一个可信任的“登录服务”上。我将对该服务进行身份验证(使用Windows身份验证、智能卡或其他方式),并作为响应,它将发送回一个“令牌”,该浏览器将其发送回Web应用程序。现在,Web应用程序检查令牌是否由其信任的登录服务数字签名,然后查看令牌中的“声明”。仅仅基于这些声明,应用程序就可以决定向用户提供哪些功能。
声明几乎总会包括用户的身份标识,通常还包括与授权相关的声明("此用户可以查看销售数据,但无法更新"),以及其他一些信息("鞋码=42")。
关键点是应用程序不知道也不关心用户是如何进行身份验证的,也不知道授权是如何进行管理的:它仅使用数字签名的令牌中的声明信息来确定用户是谁和/或用户可以看到或执行哪些操作以及/或有关用户的任何其他信息。
(是的,我在这里假设一个相当聪明和知情的5岁孩子。 :-))
如何创建登机牌;他们不关心你用的是哪个发行方,只要航空公司信任它。他们只关心它是一个真实的声明集合,给予您上飞机的权限。一个非常熟悉的类比是你每次参观机场时遵循的身份验证协议。你不能简单地走到门口出示你的护照或驾驶执照。相反,你必须首先在售票柜台登记。在这里,你提供任何有意义的凭据。如果你要出国,你出示你的护照。对于国内航班,你出示你的驾驶执照。在验证你的照片ID与你的面孔匹配后(身份验证),代理商查找你的航班并验证你已经支付了机票费用(授权)。假设一切都没问题,你将收到一个登机牌,带到登机口。
登机牌信息非常详尽。登机口工作人员知道你的姓名和常旅客号码(身份验证和个性化),你的航班号和座位优先级(授权)甚至可能更多。登机口工作人员拥有完成他们工作所需的一切。
登机牌上也有特殊信息。它被编码在条形码和/或背面的磁条中。这些信息(如登机序列号)证明了该登机牌是航空公司发放的,而不是伪造品。
实质上,一个登机牌是航空公司关于你的一组声明的签名。它声明你被允许在特定的时间乘坐特定的航班并坐在特定的座位上。当然,代理商不需要深入思考这个问题。他们只需验证你的登机牌,阅读上面的声明,然后让你登机。
还要注意的是,可能有多种方式获得作为你登机牌的已签名声明集合。你可以去机场的售票柜台,也可以使用航空公司的网站,在家里打印你的登机牌。登机航班的代理人不在乎你选择哪种方式。
在软件中,这个声明集合被称为安全令牌。每个安全令牌都由创建它的发行方签名。基于声明的应用程序将用户视为已通过身份验证,如果他们提供来自可信发行方的有效签名安全令牌。
对于一个5岁的男孩,让他假设通过父母签署申请表加入了一所新学校。在学校管理部门批准他的申请后,他获得了一张包含以下所有信息的通行证,我们可以称之为进入学校的声明(CLAIMS)。
第一天上学时,当他走进学校时,他刷了一下通行证,大门打开了,这意味着他已被认定为学校的成员之一。这样他就成为了进入学校的验证人(AUTHENTICATED PERSON)。
到达他的教室后,他使用通行证进入每个教室,但是只有8年级的教室门开了,因为他声称自己是从8年级来的。
在学校里,他仅被授权进入自己的班级,因为他现在正在学习8年级。如果他尝试进入6年级,学校老师将不会授权他进入。
claims : [
{"type": "name", "value": "Jon Snow"},
{"type": "home", "value": "Winterfell, The North, Westeros"},
{"type": "email", "value": "jon@nightswatch-veterans.org"},
{"type": "role", "value": "veteran;deserter;"},
{"type": "department", "value": "none"},
{"type": "allowEntry", "value": "true"},
{"type": "access", "value": "castleblack;eastwatch;"}
]
如果Jon登录并尝试访问上述资源,他将被拒绝,因为虽然他是他所说的人,并且他确实可以访问黑城堡,但他不再是统领,也没有明确进入统领之塔的权限,因此无法隐式地进入统领之塔。
更具体地说,“城堡黑色”可能是一个[更大]的范围,而每个区域都是一个特定的权限,但这是另一个讨论。
每个应用程序如何处理访问将有所不同,但它会使用声明来完成。