1

xPages で作成された公開 Web サイトがあります。私のユーザーは Domino にログインしていません (つまり、匿名) が、Facebook や Twitter に既にログインしているユーザーの情報を、画像やユーザーの Twitter ストリームのように表示したいと考えています。彼らは fb/twitter を使用して私のサイトにログインできるので、次回の訪問のために彼らに関するデータを保存できます。

このために Domino ディレクトリにユーザーを作成するのではなく、必要なデータをアプリケーションのプロファイル/ドキュメントに保存します。このようにして、ドミノ ディレクトリに新しいフィールドを作成しなくても、ユーザーからのデータを保存できます。

さらに分かりやすくするために。ドミノ アプリケーションを使用して物を販売する製品サイトを構築したいとしましょう。ユーザーがサイトに入ると、アプリケーションに登録するか、facebook や twitter などを使用してログインするかを選択できます。何かを購入したり、コメントを投稿したりするときは、すでにログインしているため、ユーザー データを入力する必要はありません。ユーザーデータは、ソーシャルネットワークまたはアプリケーションにあるプロファイルドキュメントから取得されます.

さて、いくつかの質問に移りましょう...

  • これは、ドミノ アプリケーションを使用して簡単に実行できますか? それとも、別のプラットフォームを使用してこれを構築する方が速いですか?

  • twitter や facebook に接続するために oAuth 認証を行う必要があることは理解していますが、このデータをアプリケーション内のプロファイルに接続するにはどうすればよいですか?

  • ユーザーが twitter/fb にログインする代わりに自分のサイトに登録することを選択した場合、それらのユーザーを認証するにはどうすればよいでしょうか。また、ユーザーが Twitter を使用してログインするか、プロフィール ドキュメントを使用してログインするかによって、異なる認証を使用する必要があります。

  • Domino アプリケーションを oAuth で有効にできますか?

/トーマス

4

4 に答える 4

5

トーマス、

あなたは右のボタンを押しました:)

私はこれにたくさん取り組んできました。結果を共有できます...

まず、ソーシャル イネーブラーはこれを行うことができません。現在の OAuth 実装は、ユーザーが Domino ディレクトリ内に実際の ID を持っているという前提に基づいているためです (トークンストアはユーザー名で機能しているため)。ユーザーを Domino ディレクトリに入れたい場合は、Matt のソリューションが最適です。

ユーザー登録なしでTwitterログインできるように実装を開始しました。OpenNTF プロジェクトになります。しかし、それは遅くなります:(

あなたの質問には2つの異なることがあります。Social Enabler には、FB/Twitter ユーザー ID を Domino ユーザーにバインドできる OAuth クライアントがあります。あなたの質問に関しては、それは「ログイン」ではありません。

一方、外部アプリケーションから Domino リソースを利用するには、Domino サーバー内に OAuth プロバイダーが必要です。Phil は LS12 でそれについての情報を提供しました。彼らはプロバイダーを実装し、まもなく OpenNTF に組み込む予定です。そうしないと、埋め込まれたアクティビティを効果的に使用できないためです。そのため、未定義の将来にこれが製品の一部になることを期待するかもしれません. しかし、これは「FBによるログイン」アーキテクチャとは何の関係もありません。これは、XPages アプリケーションと対話する Facebook アプリケーションを実装するために使用できます。

Login with FB のアーキテクチャはそのようなものです。アプリと Facebook の間に OAuth ダンスを提供し、ユーザーの FB ID を収集して「プロファイル」ストア内に保存します。そのストアは、ユーザー固有の情報を記録するためにも使用できます。この時点で、次の 3 つの方向があります。

  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 サービスに簡単にアクセスする XPages アプリを作成できます。

于 2012-02-03T06:35:49.020 に答える
1

トーマス、

少し遊んでみましたので専門家ではありませんが、github の Java Library "Scribe" があなたのやりたいことを手助けしてくれるかもしれません。

于 2012-02-03T14:41:23.227 に答える
0

トーマス、

LtpaToken の作成は比較的簡単な方法です。LotusScript から呼び出すことができる Java ライブラリ (または LotusScript への移植) と、Domino サーバー上のいくつかの構成が必要であることがわかっている場合。これにより、SSO 認証中に Domino が自動的に行っていることを正確にシミュレートできます。

ただし、Serdar がライセンスについて言及したことを思い出してください。認証されたユーザーは、適切なライセンスの下にある必要があります。

于 2012-02-03T18:36:18.900 に答える