1

我有一个用 xPages 创建的公共网站,我的用户没有登录到 Domino(即匿名),但我仍然想为已经登录到 facebook 或 twitter 的用户显示信息,比如图像或用户的 twitter 流,也许让他们可以使用 fb/twitter 登录我的网站,这样我就可以存储一些关于他们的数据以供下次访问。

我不想为此在任何 domino 目录中创建用户,而是将我需要的数据存储在应用程序的配置文件/文档中。通过这种方式,我可以存储来自我的用户的数据,而无需在 domino 目录中创建新字段。

使其更易于理解。假设我想建立一个使用多米诺骨牌应用程序销售东西的产品网站。当用户进入网站时,他们可以选择使用我的应用程序注册或使用例如 facebook 或 twitter 登录。当他们购买东西或发表评论时,他们已经登录并且不需要输入用户数据。用户数据来自社交网络或我的应用程序中的个人资料文件。

现在问一个问题...

  • 这可以使用多米诺骨牌应用程序轻松完成吗?还是使用另一个平台构建它更快?

  • 我确实知道我需要进行一些 oAuth 身份验证才能连接 twitter 和 facebook,但是如何将此数据连接到我的应用程序中的配置文件?

  • 如果用户选择在我的网站上注册而不是登录到 twitter/fb,我将如何对这些用户进行身份验证,我是否使用不同的身份验证取决于他们是使用 Twitter 登录还是使用我的个人资料文件登录。

  • 我可以 oAuth 启用我的 Domino 应用程序吗?

/托马斯

4

4 回答 4

5

托马斯,

你按下了右键:)

我在这方面做了很多工作。我可以分享我的结果...

首先,Social enabler 无法做到这一点。因为当前的 OAuth 实现是基于用户在 Domino 目录中具有真实身份的假设(因为 tokenstore 是按用户名工作的)。如果您想将用户放入 Domino 目录,Matt 的解决方案非常棒。

我已经开始在没有注册用户的情况下实现 Twitter 登录。这将是一个 OpenNTF 项目。但是速度很慢:(

你的问题有两个不同的地方。Social Enabler 有一个 OAuth 客户端,允许将 FB/Twitter 用户标识绑定到 Domino 用户。就您的问题而言,这不是“登录”。

另一方面,要利用来自外部应用程序的 Domino 资源,我们需要在 Domino 服务器内部提供 OAuth 提供程序。Phil 在 LS12 上提供了有关它的信息。他们将实现一个提供程序并很快将其放入 OpenNTF。他们必须在未来这样做,否则他们无法有效地使用嵌入式活动。因此,您可能期望这将在未定义的未来成为产品的一部分。但这与“FB 登录”架构无关。这可用于实现与 XPages 应用程序交互的 Facebook 应用程序。

Login with FB 的架构就是这样。您将在您的应用程序和 Facebook 之间提供 OAuth 舞蹈,收集用户的 FB 身份并将其存储在“个人资料”商店中。该存储也可用于记录用户特定信息。此时,您有三个方向:

  1. 将用户导入到 Domino 目录(通过目录帮助信任该目录)并实施身份验证技巧(查看 Matt 的解决方案)。
  2. 用户可以保持匿名,但您可以扩展用户 bean 对象以通过此 bean 与他/她进行交互。
  3. 创建一个 LtpaToken 来验证用户。我找到了如何做到这一点。应该谨慎实施,实际上用户不需要在受信任的目录中注册。但存在安全隐患,需谨慎处理。

还有一件事!考虑许可也很重要!您需要为此使用适当的许可模型(例如 XWork)。您使用哪种方法并不重要。由于您正在识别用户,因此它被视为经过身份验证的用户。

希望这有助于为您的项目创建草案方向。

于 2012-02-03T07:52:58.757 回答
4

Thomas,在 Lotusphere 2012 上讨论了未来 Domino 版本中的 Domino OAuth 提供程序。

Matt White 为 Facebook 编写了一些 SSO 代码,但这会在 Domino 目录中的封面用户帐户下生成:http: //mattwhite.me/blog/2010/10/20/how-to-get-sso-for-facebook-working -with-xpages.html

XPages Social Enabler 是另一个方向。它允许编写可轻松访问其他 OAuth 服务的 XPage 应用程序。

于 2012-02-03T06:35:49.020 回答
1

托马斯,

我玩了一点,所以我不是专家,但我认为 github 上的 Java 库“Scribe”可能会帮助你做你想做的事。

于 2012-02-03T14:41:23.227 回答
0

托马斯,

创建 LtpaToken 是相对简单的方法。如果我知道它需要一个可以从 LotusScript 调用的 Java 库(或将其移植到 LotusScript)以及 Domino 服务器上的一些配置。然后,您可以准确模拟 Domino 在 SSO 身份验证期间自动执行的操作。

但请记住 Serdar 提到的关于许可的内容。经过身份验证的用户应仍处于适当的许可证下。

于 2012-02-03T18:36:18.900 回答