本地身份验证、注册和其他设置

重要提示

我们建议您在 Power Pages 站点上使用 Azure AD B2C 标识提供者进行身份验证,弃用本地标识提供者

Power Pages 提供基于 ASP.NET 身份 API 构建的身份验证功能。 ASP.NET 身份反之基于 OWIN 框架构建,此框架是身份验证系统的重要组件。 Power Pages 提供下列服务:

  • 本地(用户名/密码)身份验证
  • 通过第三方标识提供者的外部(社交提供者)身份验证
  • 使用电子邮件的双因素身份验证
  • 电子邮件地址确认
  • 密码恢复
  • 注册预填充的联系人记录的邀请代码注册

备注

不会使用联系人记录中的 Mobile Phone Confirmed 列,从 Adxstudio Portals 升级时除外。

要求

Power Pages 需要:

  • 门户基础
  • Microsoft 标识
  • Microsoft 标识工作流解决方案包

身份验证和注册

返回站点访问者可以使用本地用户凭据或外部身份提供程序帐户进行身份验证。 新访问者可以通过提供用户名和密码或通过外部提供者登录来注册用户帐户。 从站点管理员处收到邀请代码的访问者可以在注册新用户帐户时兑换代码。

相关站点设置:

  • Authentication/Registration/Enabled
  • Authentication/Registration/LocalLoginEnabled
  • Authentication/Registration/ExternalLoginEnabled
  • Authentication/Registration/OpenRegistrationEnabled
  • Authentication/Registration/InvitationEnabled
  • Authentication/Registration/RememberMeEnabled
  • Authentication/Registration/ResetPasswordEnabled

重置密码

注册时提供电子邮件地址的返回访问者可以请求将密码重置令牌发送到他们的电子邮件帐户。 重置令牌允许其所有者选择新密码。 也可以弃用令牌,并且不更改用户的原始密码。

相关站点设置:

  • Authentication/Registration/ResetPasswordEnabled
  • Authentication/Registration/ResetPasswordRequiresConfirmedEmail

相关流程:将密码重置发送到联系人

  1. 访问者提供电子邮件地址。
  2. 提交电子邮件地址以启动流程。
  3. 提示访问者检查电子邮件。
  4. 访问者收到包含说明的密码重置电子邮件。
  5. 访问者返回到重置窗体,选择一个新密码。
  6. 密码重置完成。

兑换邀请

清除邀请代码允许注册访问者与专门为该访问者提前准备的现有联系人记录关联。 通常,邀请代码通过电子邮件发送。 您可以使用常规代码提交窗体通过其他渠道发送代码。 在访问者提交有效的邀请代码后,常规用户注册流程将设置新的用户帐户。

相关站点设置:Authentication/Registration/InvitationEnabled

相关流程:发送邀请

自定义邀请电子邮件,包含在站点上兑换邀请页面的 URL。

  1. 创建针对新联系人的邀请。
  2. 自定义并保存邀请。
  3. 自定义邀请电子邮件。
  4. 处理发送邀请工作流。
  5. 邀请电子邮件打开兑换页面。
  6. 用户提交邀请码进行注册。

已禁用注册

如果在用户兑现邀请后对用户禁用注册,使用以下内容片段显示消息:Account/Register/RegistrationDisabledMessage

通过配置文件页管理用户帐户

通过身份验证的用户通过配置文件页的安全选项管理其用户帐户。 用户不限于在注册时选择的单个本地帐户或单个外部帐户。 具有外部帐户的用户可以选择通过提供用户名和密码创建本地帐户。 从本地帐户开始的用户可以选择将多个外部标识与该帐户关联。 配置文件页也是提示用户请求确认其电子邮件地址的位置,方法是通过请求将确认电子邮件发送到其电子邮件帐户。

相关站点设置:

  • Authentication/Registration/LocalLoginEnabled
  • Authentication/Registration/ExternalLoginEnabled
  • Authentication/Registration/TwoFactorEnabled

设置或更改密码

具有本地帐户的用户可以通过提供原始密码选择新密码。 没有本地帐户的用户可以选择用户名和密码来设置新本地帐户。 用户名设置之后无法更改。

相关站点设置:Authentication/Registration/LocalLoginEnabled

相关流程:

  • 创建用户名和密码
  • 更改密码

这些任务流仅在使用门户管理应用调用时有效。 它们不受任务流即将弃用的影响。

确认电子邮件地址

更改电子邮件地址或首次设置电子邮件地址会将其标记为未确认。 用户可以请求将确认电子邮件发送到他们的新电子邮件地址。 电子邮件中会包括完成电子邮件确认过程的说明。

相关流程:将电子邮件确认发送给联系人

  1. 用户提交新的未确认的电子邮件地址。
  2. 用户检查电子邮件,获取确认消息。
  3. 处理将电子邮件确认发送给联系人工作流。
  4. 用户选择确认链接完成确认流程。

确保为联系人指定了主要电子邮件地址。 确认电子邮件只会发送到联系人记录的主要电子邮件地址 (emailaddress1),而不会发送到次要 (emailaddress2) 或备用 (emailaddress3) 地址。

启用双因素身份验证

双重身份验证可以提高用户帐户的安全性,方法是除标准本地或外部帐户身份验证之外,还需要证明确认的电子邮件地址的所有权。 当用户尝试登录启用了双重身份验证的帐户时,安全代码会发送到与该帐户关联的已确认电子邮件地址。 用户必须输入安全代码才能完成登录过程。 用户可以选择让站点记住成功通过验证的浏览器,以便用户下次使用相同浏览器登录时不需要提供安全代码。 每个用户帐户单独启用此功能,还需要确认的电子邮件地址。

警告

如果您创建并启用 Authentication/Registration/MobilePhoneEnabled 站点设置来启用旧功能,将出现错误。 此站点设置不是现成提供的,并且不受 Power Pages 支持。

相关站点设置:

  • Authentication/Registration/TwoFactorEnabled
  • Authentication/Registration/RememberBrowserEnabled

相关流程:将电子邮件双因素代码发送给联系人

  1. 访问者选择通过电子邮件接收安全代码。
  2. 访问者等待包含安全代码的电子邮件。
  3. 访问者输入安全代码。
  4. 处理将电子邮件双重代码发送给联系人工作流。
  5. 访问者可以禁用双重身份验证。

管理外部帐户

通过身份验证的用户可以将多个外部标识连接或注册到其用户帐户,每个配置的标识提供者一个。 连接标识后,用户可以选择使用任何一个登录。 只要一个本地标识或外部标识保留,标识也可以断开连接。

相关站点设置:Authentication/Registration/ExternalLoginEnabled

相关流程:连接标识

  1. 访问者选择要连接到用户帐户的提供者。
  2. 访问者使用连接的提供者登录。

也可以断开提供程序。

启用 ASP.NET 身份验证

下表介绍了启用和禁用各种身份验证功能和行为的设置。

站点设置名称 说明
Authentication/Registration/LocalLoginEnabled 基于用户名或电子邮件地址和密码启用或禁用本地帐户登录。 默认值:True
Authentication/Registration/LocalLoginByEmail 使用电子邮件地址而不是用户名启用或禁用本地帐户登录。 默认值:False
Authentication/Registration/ExternalLoginEnabled 启用或禁用外部帐户登录和注册。 默认值:True
Authentication/Registration/RememberMeEnabled 本地登录时选中或清除记住我?复选框,以便即使 Web 浏览器关闭时也允许通过身份验证的会话仍可以继续。 默认值:True
Authentication/Registration/TwoFactorEnabled 启用或禁用双重身份验证。 具有确认的电子邮件地址的用户可以选择实现双因素身份验证的增加的安全性。 默认值:False
Authentication/Registration/RememberBrowserEnabled 执行双因素验证(电子邮件代码)时选中或清除记住浏览器?复选框,以便保持当前浏览器的双因素验证。 用户无需通过双重验证即可使用同一浏览器进行后续登录。 默认值:True
Authentication/Registration/ResetPasswordEnabled 启用或禁用密码重置功能。 默认值:True
Authentication/Registration/ResetPasswordRequiresConfirmedEmail 仅为确认的电子邮件地址启用或禁用密码重置。 如果启用,未确认的电子邮件地址不能用于发送密码重置指令。 默认值:False
Authentication/Registration/TriggerLockoutOnFailedPassword 启用或禁用失败的密码尝试记录。 如果禁用,用户帐户不会锁定。默认值:True
Authentication/Registration/IsDemoMode 启用或禁用只在开发或演示环境中使用的演示模式标志。 不要在生产环境中启用此设置。 演示模式还需要 Web 浏览器本地运行到 Web 应用程序服务器。 当演示模式启用时,密码重置代码和双因素代码显示给快速访问的用户。 默认值:False
Authentication/Registration/LoginButtonAuthenticationType 如果站点需要一个外部标识提供者来处理所有身份验证,此设置允许登录按钮直接链接到提供者的登录页面,而不是中间的本地登录窗体和标识提供者选择页面。 只可以为此操作选择一个标识提供者。 指定提供者的 AuthenticationType
- 对于使用 OpenID Connect(例如 Azure AD B2C)的单一登录配置,用户需要提供权限。
- 对于基于 OAuth 2.0 的提供者,可接受的值为 FacebookGoogleYahooMicrosoftLinkedInTwitter
- 对于基于 WS 联合身份验证的提供者,使用为 Authentication/WsFederation/ADFS/AuthenticationTypeAuthentication/WsFederation/Azure/\<provider\>/AuthenticationType 网站设置指定的值。

启用或禁用用户注册

下表介绍了启用和禁用用户注册选项的设置。

站点设置名称 描述
Authentication/Registration/Enabled 启用或禁用用户注册的所有窗体。 必须为此节中的其他设置启用注册才能生效。 默认值:True
Authentication/Registration/OpenRegistrationEnabled 启用或禁用注册窗体。 注册窗体允许所有匿名访问者创建用户帐户。 默认值:True
Authentication/Registration/InvitationEnabled 启用或禁用拥有邀请代码的注册用户的邀请代码清除窗体。 默认值:True
Authentication/Registration/CaptchaEnabled 启用或禁用用户注册页的 captcha。 默认值:False
此设置默认情况下可能不可用。 若要启用 captcha,您必须同时创建站点设置并将其值设置为 true。

确保为用户指定了主要电子邮件地址。 用户只能使用联系人记录的主要电子邮件地址 (emailaddress1) 注册,而不能使用次要 (emailaddress2) 或备用 (emailaddress3) 地址。

用户凭据验证

下表介绍了调整用户名和密码验证参数的设置: 在用户注册新的本地帐户或更改密码时进行验证。

站点设置名称 描述
Authentication/UserManager/PasswordValidator/EnforcePasswordPolicy 确定密码是否必须包含以下三种类别的字符:
  • 欧洲语言大写字母(A-Z,使用变音符号,希腊文和西里尔文字字符)
  • 欧洲语言小写字母(a-z,使用变音符号,ß,希腊文和西里尔文字字符)
  • 10 位基本数字 (0-9)
  • 非字母数字字符或特殊字符
默认值:True。 了解有关密码策略的详细信息
Authentication/UserManager/UserValidator/AllowOnlyAlphanumericUserNames 确定是否允许用户名仅使用字母数字字符。 默认值:False
Authentication/UserManager/UserValidator/RequireUniqueEmail 确定验证用户是否需要唯一电子邮件地址。 默认值:True
Authentication/UserManager/PasswordValidator/RequiredLength 设置所需密码的最小长度。 默认值:8
Authentication/UserManager/PasswordValidator/RequireNonLetterOrDigit 确定密码是否需要特殊字符。 默认值:False
Authentication/UserManager/PasswordValidator/RequireDigit 确定密码是否需要数字。 默认值:False
Authentication/UserManager/PasswordValidator/RequireLowercase 确定密码是否需要小写字母。 默认值:False
Authentication/UserManager/PasswordValidator/RequireUppercase 确定密码是否需要大写字母。 默认值:False

用户帐户锁定设置

下表介绍了定义帐户如何以及何时通过身份验证锁定的设置: 当在短暂的时间范围内检测到一定数量的失败密码尝试时,用户帐户将锁定一段时间。 用户可以在锁定期间结束后重试。

站点设置名称 描述
Authentication/UserManager/UserLockoutEnabledByDefault 指定当用户创建时是否启用用户锁定。 默认值:True
Authentication/UserManager/DefaultAccountLockoutTimeSpan 设置用户在达到最大失败尝试次数后被锁定的默认时长。 默认值:24:00:00`(1 天)
Authentication/UserManager/MaxFailedAccessAttemptsBeforeLockout 锁定用户前允许的最大失败登录尝试次数(如果锁定已启用)。 默认值:5

下表介绍了用于修改由 CookieAuthenticationOptions 类定义的默认身份验证 Cookie 行为的设置。

站点设置名称 描述
Authentication/ApplicationCookie/AuthenticationType 设置应用程序身份验证 Cookie 的类型。 默认值:ApplicationCookie
Authentication/ApplicationCookie/CookieName 确定用于保留标识的 Cookie 名称。 默认值:.AspNet.Cookies
Authentication/ApplicationCookie/CookieDomain 确定用于创建 Cookie 的域。
Authentication/ApplicationCookie/CookiePath 确定用于创建 Cookie 的路径。 默认值:/
Authentication/ApplicationCookie/CookieHttpOnly 确定浏览器是否应该允许 Cookie 由客户端 Javascript 访问。 默认值:True
Authentication/ApplicationCookie/CookieSecure 确定 Cookie 是否仅应该在 HTTPS 请求上传输。 默认值:SameAsRequest
Authentication/ApplicationCookie/ExpireTimeSpan 控制应用程序 Cookie 从创建开始持续有效的时间。 默认值:24:00:00(1 天)
Authentication/ApplicationCookie/SlidingExpiration 指示中间件无论何时处理过期时间过去一半的请求时重新发放具有新过期时间的 Cookie。 默认值:True
Authentication/ApplicationCookie/LoginPath 通知中间件应将传出 401 未经授权状态代码更改为 302 重定向到指定登录路径。 默认值:/signin
Authentication/ApplicationCookie/LogoutPath 如果中间件提供了注销路径,该路径的请求将基于 ReturnUrlParameter 重定向。
Authentication/ApplicationCookie/ReturnUrlParameter 确定查询字符串参数的名称,中间件将在 401 未经授权状态代码更改为 302 重定向到登录路径时追加它。
Authentication/ApplicationCookie/SecurityStampValidator/ValidateInterval 设置两次安全戳验证之间的时间段。 默认值:30 分钟
Authentication/TwoFactorCookie/AuthenticationType 设置双重身份验证 Cookie 的类型。 默认值:TwoFactorCookie
Authentication/TwoFactorCookie/ExpireTimeSpan 控制双重 Cookie 从创建开始持续有效的时间。 值不应超过六分钟。 默认值:5 分钟

后续步骤

将身份提供程序迁移到 Azure AD B2C

另请参见

Power Pages 中的身份验证概述
设置 OAuth 2.0 提供者
设置 OpenID Connect 提供者
设置 SAML 2.0 提供者
设置 WS 联合身份验证提供者