身份验证和授权基本信息
身份验证和授权在大多数应用程序套件中发挥着重要作用。本页总体概述了概念与术语。如果您没有接触过此主题或者想要回顾一下相关内容,本部分将有一定助益。如果您对自己的整体理解能力有信心,可以继续学习 CXone 中身份验证和授权的工作原理。
当用户登录到任何应用程序套件(包括 CXone)时,这两个步骤通常按如下顺序进行:
- 身份验证 — 用户是否为他们声称的那个人?
- 授权 — 经过身份验证的用户是否应拥有他们请求的访问权限?
所有用户必须通过身份验证和授权才能访问 CXone。
用户可以是人,也可以是应用程序。例如,聊天机器人和虚拟助手通常由用户帐户运行。大多数应用程序套件对真人和虚拟用户使用相同的流程。在这些关于身份验证和授权的在线帮助页面中,我们将术语用户同时应用于真人和应用程序。如果存在差异,我们会给出清晰的解释。
对于用户而言,他们只需要登录即可。身份验证和授权在幕后进行,以确保登录成功。登录开始时,用户身份尚未经验证。这意味着系统并不知道他们的身份。登录结束时,他们即通过了身份验证和授权。这意味着系统知道了他们的身份以及他们应有的访问权限。
系统会按照以下方式验证用户身份并对其授权:
-
如果支持多种身份验证流程,决定要采用的流程。许多系统支持多种方式。例如,很多系统可借助用户名和密码,通过单点登录或者采用多因素身份验证 (MFA) 的方式识别用户。一般情况下,用户会从登录页面的身份验证选项列表中进行选择,但必要时系统可要求进行特定流程。
-
收集身份验证凭据(例如,可要求用户提供用户名和密码)。
-
使用身份提供程序验证凭据。身份提供程序是一个独立的系统,用于维护用户及其身份(包括其凭据)的信息。
-
授权经过身份验证的个人或程序。用户通过身份验证后,系统将使用授权服务器向用户授予访问权限。系统会根据用户的角色和权限授予用户访问权限。系统只授予用户访问他们有权查看或使用的功能。
与身份验证相关的术语
身份提供程序
身份提供程序 (IdP) 指建立用户身份的系统。它们可以是:
- 内部 — 用户登录的系统的一部分。例如,登录 Facebook 的用户使用 Facebook IdP 进行身份验证,以进入 Facebook 应用程序。
- 外部 — 独立于用户登录的系统。例如,登录智能手机应用程序的用户使用 Facebook IdP 进行身份验证。
IdP 可以托管,也可以基于云。Microsoft ADFS 和 Shibboleth 是常见的托管 IdP。Microsoft Azure AD、Okta 和 Ping 是众多云 IdP 中的一种。
身份验证协议
身份验证协议用于在应用程序和 IdP 之间或不同 IdP 之间建立通信。身份验证协议的示例有 OpenID 连接 和 SAML 2.0。有些身份验证协议提供额外的功能(例如加密),但应用程序可能使用或不使用这些功能。当系统使用内置 IdP 时,不考虑身份验证协议。
身份验证流程
大部分外部 IdP 支持以下两种身份验证流程或其中一种:
- SP 发起:身份验证由服务提供商或应用程序发起。用户输入凭证,然后应用程序联系外部 IdP 进行身份验证。这是最常见的流程。
- IdP 发起:用户先登录到 IdP,然后 IdP 在验证用户后启动应用程序。
联合身份管理
联合身份管理有时称为 FIM 或联合。它是使用单个外部 IdP 为一个或多个应用程序提供身份验证的过程的总称。联合在某种程度上通常是有时间限制的。例如,用户可以在开始工作时登录一次。此身份验证可让他们访问每天使用的所有应用程序。但是,即使前一天没有注销,他们也必须在第二天再次登录时重新进行身份验证。
单点登录
单点登录 (SSO) 可用于通过一次登录访问多个应用程序或系统。例如,用户登录 Microsoft 365 并获得对公司授权给他们的所有 Microsoft 应用程序的访问权。人们有时使用术语 SSO 表示联合,尽管这两个概念并不完全相同。
多因素身份验证
多因素身份验证 (MFA) 为基本的用户名/密码身份验证增加了另一个安全级别。MFA 要求用户输入一个代码,回答一个问题,或使用一个令牌,然后 IdP 才会认为他们的身份已经过验证。
信任
在身份验证中,信任是指应用程序或系统与外部 IdP 共享的信息或知识。信任会在两者之间建立一种关系,让双方都知道可以依赖对方准确而真实的通信。如何建立信任取决于身份验证协议。以下示例基于 OpenID 连接 和 SAML 2.0。
OpenID 连接
OpenID 连接 中的信任取决于签发方。签发方是一个看起来像 URL 的值。它可建立身份提供程序。例如,Google 支持 OpenID 连接,签发方是 https://accounts.google.com。
根据签发方的不同,还有几个额外的配置项。例如,OpenID 连接 中通过公共/私有证书签名来建立信任。它使用一种名为 JWKS 的行业标准。因此,部分配置决定了获得这些公共证书的方式。
大多数身份提供程序通过将 /.well-known/openid-configuration 附加至签发方来支持发现此信息。Google 发现文档位于 https://accounts.google.com/.well-known/openid-configuration 上。
SAML 2.0
在 SAML 2.0 中,信任取决于实体标识符。不同于 OpenID 连接,实体标识符和其他配置值之间没有紧密的关系。以下几个配置参数可用于建立与 SAML 2.0 之间的信任:
-
实体标识符 — 应用程序或系统为验证其身份而建立的值
-
端点 URL — 外部 IdP 确定的值,其在此点接收身份验证请求
-
断言 URL — 由外部 IdP 向其发送身份验证响应的应用程序或系统确定的值
-
证书 — 外部 IdP 用于对响应进行签名