身份验证和授权基本信息

身份验证和授权在大多数应用程序套件中发挥着重要作用。 本页总体概述了概念与术语。 如果您没有接触过此主题或者想要回顾一下相关内容,本部分将有一定助益。 如果您对自己的整体理解能力有信心,可以继续学习 CXone 中身份验证和授权的工作原理

当用户登录到任何应用程序套件(包括 CXone)时,这两个步骤通常按如下顺序进行:

  • 身份验证 — 用户是否为他们声称的那个人?
  • 授权 — 经过身份验证的用户是否应拥有他们请求的访问权限?

所有用户必须通过身份验证和授权才能访问 CXone

用户可以是人,也可以是应用程序。 例如,聊天机器人和虚拟助手通常由用户帐户运行。 大多数应用程序套件对真人和虚拟用户使用相同的流程。 在这些关于身份验证和授权的在线帮助页面中,我们将术语用户同时应用于真人和应用程序。 如果存在差异,我们会给出清晰的解释。

对于用户而言,他们只需要登录即可。身份验证和授权在幕后进行,以确保登录成功。 登录开始时,用户身份尚未经验证。 这意味着系统并不知道他们的身份。 登录结束时,他们即通过了身份验证和授权。 这意味着系统知道了他们的身份以及他们应有的访问权限。

系统会按照以下方式验证用户身份并对其授权:

  1. 如果支持多种身份验证流程,决定要采用的流程。 许多系统支持多种方式。 例如,很多系统可借助用户名和密码,通过单点登录或者采用多因素身份验证 (MFA) 的方式识别用户。 一般情况下,用户会从登录页面的身份验证选项列表中进行选择,但必要时系统可要求进行特定流程。

  2. 收集身份验证凭据(例如,可要求用户提供用户名和密码)。

  3. 使用身份提供程序验证凭据。 身份提供程序是一个独立的系统,用于维护用户及其身份(包括其凭据)的信息。

  4. 授权经过身份验证的个人或程序。 用户通过身份验证后,系统将使用授权服务器向用户授予访问权限。 系统会根据用户的角色和权限授予用户访问权限。 系统只授予用户访问他们有权查看或使用的功能。

与身份验证相关的术语

身份提供程序

身份提供程序 (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 用于对响应进行签名