2012-02-02 78 views
1

我有用xPages创建的公共网站,我的用户没有登录到Domino(即匿名),但我仍然想要显示已经是用户的信息登录Facebook或Twitter等图像或用户Twitter的流,也许让他们能够登录到我的网站使用fb/Twitter,所以我可以存储一些关于他们的数据下次访问。如何使用社交网络登录到公共Lotus Domino Web应用程序

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

使其更容易理解。比方说,我想建立一个产品网站,使用多米诺骨牌应用程序销售东西。当用户进入该网站时,他们可以选择向我的应用程序注册或使用例如Facebook或Twitter进行登录。当他们买东西或发表评论时,他们已经登录并且不需要输入用户数据。用户数据来自社交网络或我的应用程序中的配置文件。

现在关闭的一些问题...

  • 可以这样使用Domino应用程序很容易做到?或者更快到 使用另一个平台来构建它?

  • 我也明白,我需要做一些OAuth认证来 与Twitter和Facebook连接,但我怎么这个数据我有轮廓在我的应用程序连接到 ?

  • 如果用户选择在我的网站上注册而不是登录到twitter/fb,我将如何去认证这些用户,并根据他们是否使用Twitter登录或使用我的个人档案文档来使用不同的身份验证。

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

/托马斯

+0

我想你在这里问的问题太多了。 – 2012-02-03 03:06:44

回答

4

托马斯,还有在2012 Lotusphere大会关于未来的Domino版本在Domino的OAuth提供者的谈话。

哑光白写了一些SSO代码为Facebook,但这生成Domino目录中覆盖的用户帐户下:http://mattwhite.me/blog/2010/10/20/how-to-get-sso-for-facebook-working-with-xpages.html

的XPages中社会启动的是另一个方向。它允许编写轻松访问其他OAuth服务的XPages应用程序。

+0

谢谢尼克拉斯,看起来像我可以使用的东西 – 2012-02-03 14:54:17

5

托马斯,

您按下右侧的按钮:)

我已经在这个有很多的工作。我可以分享我的结果...

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

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

在你的问题中有两个不同的东西:Social Enabler有一个OAuth客户端,它允许将一个FB用户标识绑定到一个Domino用户,它不是'登录'您的问题

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

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

  1. 将用户导入Domino目录(通过目录服务进行信任)并实现验证技巧(请参阅Matt的解决方案)。
  2. 用户可以保持匿名状态,但是您可以扩展用户bean对象以通过此bean与他/她进行交互。
  3. 创建一个LtpaToken来认证用户。我发现如何做到这一点。应该仔细实施,实际上用户不需要在受信任的目录中注册。但存在安全风险,应慎重处理。

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

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

+0

谢谢塞尔达尔的意见,非常有价值。 – 2012-02-03 14:52:09

1

托马斯,

我用它玩一点点,所以我不是专家,但我认为Java库“抄写员”在github上可以帮助你做你想做的。

+0

其实我早就看过抄写员,但遇到了一些问题,现在还不确定它是什么。也许这只是我无法理解所有这些开源的东西,而这些东西似乎没有以通用的方式记录下来:-) – 2012-02-03 14:56:51

0

Thomas,

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

但请记住Serdar提到的有关授权的问题。经过认证的用户应仍处于适当的许可下。