0

ClientSiteA.com, ClientSiteB.com, ....

(我们不知道客户域)

OurServer.com(包含所有用户凭据)

我们需要用户能够在任何客户端站点上登录 OurServer.com(使用 JavaScript)。登录表单必须驻留在客户端站点上。因此,我设想向 OurServer.com 发送一个包含用户名(来自任何客户端站点)的 ajax 调用。如果用户名已登录,则让他们做一些事情,如果不向他们显示登录表单。此登录表单会将他们的用户名/密码发送到服务器并登录。

这可能吗?我一直在阅读有关 SAML 的信息,但我发现在客户端站点上拥有登录表单可能是个问题。我也一直在阅读有关 oAuth 的信息。我很迷茫。谁能给我一些指导。

4

1 回答 1

2

我认为在多个站点上重复相同的 UI 并不容易,这使得维护变得更加困难。

另一方面,如果有一个明确的链接供用户登录,或者他们在访问受限站点时被自动重定向,那么就不需要这个尴尬的要求。尴尬 - 因为它使使用现有的 sso 协议变得很棘手。

回答您的问题 - OAuth2 允许您交换用户名/密码以获取访问令牌。它称为资源所有者密码凭证流。

试图说服您这不是一个好主意 - 并非所有 OAuth2 提供商都支持此流程,据我记得 Google 不支持。相反,他们支持将客户端重定向到他们的登录页面的流程,在那里他们可以执行您的客户端应用程序不知道的任何事情,例如:

  • 多因素身份验证
  • 用于明确资源访问批准的附加确认页面

这些额外的身份验证步骤在简单的用户名/密码流程中是不可能的。

于 2013-10-06T20:32:12.043 回答