Day03 - 【入门篇】浅谈身份验证与授权(1)

本系列文之後也会置於个人网站


在「快速开始」的单元中,实际上已经完成了所有身份识别、身份验证、授权和一些存取控制的流程。

在今天,将会来说说,这些看是相同,却又有一些不同的名词。

名词认识

那麽首先,就先来认识各个名词的英文吧!

名词 英文 简短说明
身份识别 Identification 让系统知道你是谁
身份验证 Authentication 让系统相信你是谁
授权 Authorization 允许他人存取某项资源
存取控制 Access Control 检验是否有资格存取某项资源

而我认爲软件开发上,最重要的是 存取控制 。这直接关系到系统上的资源,但却无法只存在存取控制,势必需要身份验证与授权的配合。这也是爲什麽我们很难将这些分开来看。

已「快速开始」爲例

现在,让我们把视线重新放回刚弄好的「快速开始」。在这个范例中,已经多少碰触到了每一块的概念。首先是身份识别:

身份识别(Identification)

要让系统知道你是谁,就必须告诉他。在我们一开使「输入帐号」的时候,其实就是在做这件事情。

身份验证

然後,你得证明说,你是你声称的那个人。这个部分也就是主要确定「你」是谁的活动。爲了达成这个目的,需要知道除了系统外,只有你才知道的资讯(或只有你才拥有的)。
最常见的辨识方式就是「密码」,此外,近来的生物识别,包含指纹辨识、Face Id、虹膜辨识等,都是在验证身份。

授权控制

授权控制,英文Authorization,和身份验证的英文很像。

指的是将某个权限(permission)授予给某人(或某只程序)的活动。
特别注意的是,授予对象不只限於「自然人」,还包含机器人或应用程序。是我认为最容易搞混的部份。

是的,我们当时要授权的对象,是我们所建立的Client,也就是刚开发完的那个极爲简单的Web App。还记得你同意过他存取ProfileEmail等资讯吗?

存取控制

最後,虽然我们并不是做控制的部分,但我们所开发的Web App确实在做存取资源的部分。这也是在最後的画面,我们可以看到是谁登入的原因:


简单来说,这整个过程:
在决定了 某人(谁) 对於 某项资源 是否有 某种操做的权限。这大概也是这个系列会探讨最多的部分。


<<:  DAY7: Node 的事件循环 (Event loop)

>>:  不做功课,爱听明牌,给你买到又如何?

Day29 -- Video Speed Controller

目标 今天要来做的是播放速度控制器,可以透过游标移动控制播放速度 Step1 const speed...

如何共用行事历?

公司使用Office365商业基本版 没有自建邮件服务器,是使用中华电信的hibox挂在Outloo...

Day 02 「住手!你想搞死 QA 吗?」 单元测试是测试还是功能?

今天在聊测试之前,我们要先聊 Scrum 与敏捷开发。为什麽?等会你就知道了。 烽火下的 Scrum...

Day 17: swiftUI与Coroutine强强联手,迸出新滋味.

Keyword: swiftUI,Coroutine Scope 改写ObservableObjec...

Powershell 入门之逻辑判断(下)

今天我们来看一下 powershell 中的另一种逻辑判断 switch. switch 语法: s...