如何使用社交网络登录公共Lotus Domino Web应用程序

时间:2012-02-02 21:23:01

标签: facebook oauth lotus-domino xpages

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

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

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

现在有些问题......

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

  • 我明白我需要进行一些oAuth身份验证 与twitter和facebook连接,但如何将此数据连接到 我在申请表中的个人资料?

  • 如果用户选择注册我的网站而不是登录到twitter / fb,我将如何对这些用户进行身份验证,并根据他们是使用Twitter登录还是使用我的个人资料文档来使用不同的身份验证

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

/托马斯

4 个答案:

答案 0 :(得分:5)

托马斯,

你按下了右键:)

我已经做了很多工作。我可以分享我的结果......

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

我已经开始实施Twitter登录而无需注册用户。这将是一个OpenNTF项目。但它进展缓慢:(

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

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

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

  1. 将用户导入Domino目录(通过目录服务受信任)并实施身份验证技巧(请参阅Matt的解决方案)。
  2. 用户可以保持匿名,但您可以扩展用户bean对象以通过此bean与他/她进行交互。
  3. 创建LtpaToken以验证用户身份。我发现了怎么做。它应该仔细实现,实际上用户不需要在受信任的目录中注册。但是存在安全风险,应该小心处理。
  4. 还有一件事!考虑许可也很重要!您需要为此使用适当的许可模型(如XWork)。使用哪种方法并不重要。由于您正在识别用户,因此它将被视为经过身份验证的用户。

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

答案 1 :(得分:4)

托马斯,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服务的XPages应用程序。

答案 2 :(得分:1)

托马斯,

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

答案 3 :(得分:0)

托马斯,

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

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