我在用户身份验证方面遇到了糟糕的表现,并希望得到尝试改进它的建议。
我正在使用集成到在 Salesforce.com (SFDC) 平台上运行的第三方系统的 Drupal。Okta 正在为这些进行 SSO。AD 是 IDP,包含安全组以将用户权限分配给 SFDC(AD 中的所有用户都可以访问 Drupal)。
这是身份验证流程:
当用户开始登录过程时,用户名(电子邮件)和密码被发送到 Drupal 进行验证。
登录(用户名/密码)→ [Drupal UI – 浏览器] → 登录用户 → [Drupal 后端]
Drupal 后端调用 Okta API 并验证 Okta 中的凭据。
验证用户凭据 → [Okta – 身份验证 API]
如果使用 Okta 的验证通过,则创建重定向和会话令牌;因为我们使用 JavaScript 来执行重定向,所以这被发送到 UI。调用重定向时,会在用户浏览器中生成会话 cookie。
[Drupal UI - 浏览器] ← [Drupal - 后端] ← 使用会话令牌成功验证 ← [Okta - 身份验证 API] [Drupal UI - 浏览器] → 使用会话 Cookie 将用户重定向到 SFDC 端点 → [Okta - 会话 API]
然后我们需要开始对 Salesforce 进行验证,因为我们可以提供对 Salesforce 的访问的唯一方法是通过 Okta。然后需要对 Salesforce 进行最后一次重定向,并且由于 cookie 已在上一步中生成,因此它允许用户访问 Salesforce。
[Drupal UI – 浏览器] → 运行 SFDC oAuth 流程以获取 API 访问令牌 → SFDC