ASP.NET Core 中的声明和基于策略的授权

已完成

在上一单元中,你添加了 QR 码功能来启用多重身份验证。 在本单元中,你将了解基于声明和策略的授权。

授权与身份验证

到目前为止,你对标识的了解都与身份验证有关。 身份验证过程验证用户是否是其声明的身份。

以登录窗体为例。 在窗体中输入用户名时,你就是在声明自己的身份。 窗体通过验证你的密码来验证你声明的身份是否属实。

授权指的是判断已通过身份验证的用户可执行的操作的过程。 例如,管理屏幕可能仅限声明为 IsAdmin=True 的用户访问。 由于声明与标识相关联,因此不经过身份验证就无法授权。

声明和基于策略的授权

声明是名称/值对,描述主体的身份,而非主体可执行的操作! 声明由受信任的机构分配,用于强制实施授权策略。

以政府颁发的身份证为例。 身份证显示你的各种属性。 这些就是声明。 相关方可以查看你的身份证、验证其来源和真实性,并根据这些属性做出决策。 决策强制实施策略。

举一个更具体的例子,例如酒吧和酒馆。 Alice 想购买一杯未成年人禁饮的饮料。 调酒师检查 Alice 的证件,并查看她出生日期的声明。 然后,他们根据她的出生日期强制执行一项策略,Alice 有权购买这款饮料。

摘要

在本单元中,你了解了身份验证和授权之间的区别。 你还了解了策略如何使用声明进行授权。 在下一单元中,你可以使用标识来存储声明并应用策略进行条件访问。

知识检测

1.

以下哪种说法是正确的?