ソーシャルログインは、サイト訪問者にFacebookまたはTwitterアカウントでログインするオプションを提示する機能です。 したがって、許可されたFacebookまたはTwitterのデータがAEMメンバープロファイルに含まれます。
ソーシャルログイン機能を含めるには、カスタムの Facebook アプリケーションや Twitter アプリケーションを作成する必要があります。**
we-retail のサンプルは、FacebookおよびTwitterのサンプルアプリとクラウドサービスを提供していますが、 実稼働用 web サイト.
必要な手順は以下のとおりです。
すべての AEM パブリッシュインスタンスで OAuth 認証を有効にします。
OAuth を有効にしない場合、はログインに失敗します。
作成 ソーシャルアプリとクラウドサービス。
facebookでのログインをサポートするには:
twitterでのログインをサポートするには:
コミュニティサイトに対してソーシャルログインを有効にします。
以下に示す 2 つの基本的な概念があります。
範囲 (権限)は、アプリがリクエストできるデータを指定します。
フィールド (params) は、URL パラメーターを使用してリクエストされた実際のデータを指定します。
ソーシャルログインと we-retail の Facebook アプリのサンプルは、Facebook Graph API 1.0 バージョンで開発されたものです。
AEM 6.4 GA およびAEM 6.3 SP1 のソーシャルログインが更新され、新しいFacebook Graph API 2.5 バージョンと連携するようになりました。
古いAEMバージョンの場合、ログで例外が発生する場合 ここからトークンを抽出できません、をそのAEMリリースの最新 CFP にアップグレードします。
facebook Graph API のバージョン情報については、 Facebook API 変更ログ.
facebookソーシャルログインを有効にするには、適切に設定されたFacebookアプリケーションが必要です。
facebookアプリケーションを作成するには、Facebookの手順 ( https://developers.facebook.com/apps/. 手順の変更は、次の情報には反映されません。
一般的な手順(Facebook API v2.7 の時点):
https://<server>:<port>.
https://<server>:<port>.
開発の場合、http://localhost:4503が機能します。
アプリケーションが作成されたら、 アプリ ID および App Secret 設定。 この情報は、 Facebook cloud service.
クラウドサービス設定を作成することで、Adobe Granite OAuth Application and Provider インスタンスが作成されます。このインスタンスが、Facebook アプリケーションと新しいユーザーの追加先のメンバーグループを識別します。
AEM オーサーインスタンスで、管理者権限でサインインします。
グローバルナビゲーションから、 ツール > Cloud Services > Facebook Social ログイン設定.
コンテキストパス設定を選択します。
コンテキストパス は、コミュニティサイトの作成/編集時に選択したクラウド設定パスと同じである必要があります。
コンテキストパスの下にクラウドサービスを作成できる設定になっているかを確認します。
に移動します。 ツール > 一般 > 設定ブラウザー. コンテキストを選択し、プロパティを編集します。 まだ有効になっていなければ、クラウド設定を有効にします。
Facebook クラウドサービス設定を作成または編集します。
グループはいつでも追加または削除できます。しかし、既存ユーザーのメンバーシップに影響はありません。自動メンバーシップは、このフィールド更新後に作成された新規ユーザーにのみ適用されます。匿名ユーザーが無効になっているサイトの場合は、そのクローズドコミュニティサイト専用の対応するコミュニティメンバーグループにユーザーを追加します。
結果は AdobeGranite OAuth Application and Provider 追加の範囲(権限)を追加しない限り、追加の変更を必要としないインスタンス。 デフォルトの範囲は、Facebookログインの標準の権限です。 追加のスコープが必要な場合は、OSGi 設定を直接編集する必要があります。 システムまたはコンソールから直接変更がおこなわれている場合は、上書きしないよう、タッチ UI からクラウドサービス設定を編集しないでください。
AEM Communitiesプロバイダーは、 AdobeGranite OAuth Application and Provider インスタンス。
以下をおこなうには、このプロバイダーを編集する必要があります。
ユーザーの更新を許可
フィールドを追加 範囲内
編集が必要な場合は、それぞれの AEM パブリッシュインスタンスで次の設定をします。
管理者権限でサインインします。
次に移動: Web コンソール. 例:http://localhost:4503/system/console/configMgr
AEM Communities Facebook OAuth Provider を見つけます。
鉛筆アイコンを選択して編集用に開きます。
OAuth Provider ID
(必須) デフォルト値は soco -facebook. 編集しないでください。
Cloud Service設定
デフォルト値は /etc/ cloudservices / facebookconnect
です。編集しないでください。
OAuth Provider Service Config
デフォルト値は /apps/social/facebookprovider/config/
です。編集しないでください。
タグを有効にする
編集しないでください。
ユーザーパス
リポジトリ内のユーザーデータが格納される場所。 コミュニティサイトでは、メンバーがお互いのプロファイルを閲覧できる権限を確保するために、パスをデフォルトの /home/users/community にする必要があります。
フィールドを有効にする
オンにすると、その下にリストされているフィールドが、ユーザー認証およびユーザー情報を求める Facebook へのリクエストに指定されます。デフォルト値はオフです。
フィールド
「Enable fields」をオンにした場合は、Facebook Graph API の呼び出し時に以下のフィールドが含まれます。これらのフィールドは、クラウドサービス設定で定義された範囲内で許可されている必要があります。追加のフィールドを使用するには、Facebook の承認が必要な場合があります。Facebook ドキュメントの Facebook ログイン権限の節を参照してください。パラメーターとして追加されるデフォルトのフィールドは次のとおりです。
いずれかのフィールドを追加または変更した場合は、対応する Default Sync ハンドラー設定を更新してマッピングを修正してください。
ユーザーを更新
オンにすると、ログインするたびにリポジトリ内のユーザーデータが更新され、プロファイルの変更やリクエストされた追加データが反映されます。デフォルト値はオフです。
続いて以下の手順をおこないますが、この手順は Facebook でも Twitter でも共通です。
Twitter ソーシャルログインを有効にするには、設定された Twitter アプリが必要です。
最新の手順に従って、で新しいTwitterアプリケーションを作成します。 https://apps.twitter.com.
一般的な手順は次のとおりです。
を入力します。 名前 これにより、web サイトのユーザーに対するTwitterアプリケーションが識別されます。
「説明」を入力します。
の場合 web サイト — 入力 https://<server>
.
の場合 コールバック URL — 入力 https://server
.
ポートを指定する必要はありません。
開発の場合、https://127.0.0.1/が機能します。
アプリケーションが作成されたら、 消費者 (API) キー および 消費者 (API) 秘密鍵. この情報は、 Twitter cloud service.
Twitter アプリケーション管理の権限のセクションで、次の設定をします。
アクセス:選択 Read only
.
追加の権限:オプションで選択 Request email addresses from users
.
ソーシャルログインに対しておこなわれる唯一の REST リクエストは、次のとおりです。 GETアカウント/認証情報の確認.
クラウドサービス設定を作成することで、Adobe Granite OAuth Application and Provider インスタンスが作成されます。このインスタンスが、Twitter アプリケーションと新しいユーザーの追加先のメンバーグループを識別します。
オーサーインスタンスで、管理者権限でサインインします。
グローバルナビゲーションから、 ツール > Cloud Services > Twitter Social ログイン設定.
を選択します。 コンテキストパス 設定。
コンテキストパスは、コミュニティサイトの作成または編集時に選択したクラウド設定パスと同じでなければなりません。
コンテキストパスの下にクラウドサービスを作成できる設定になっているかを確認します。
に移動します。 ツール > 一般 > 設定ブラウザー. コンテキストを選択し、プロパティを編集します。 まだ有効になっていなければ、クラウド設定を有効にします。
Twitter クラウドサービス設定を作成または編集します。
タイトル
(必須) Twitter App を識別する表示タイトルを入力します。 同じ名前を 表示名 twitterアプリ用。
消費者キー
(必須) 消費者 (API) キー twitterアプリ用。 これは、 AdobeGranite OAuth Application and Provider ダイアログから作成されたインスタンス。
消費者の秘密鍵
(必須) 消費者 (API) シークレット (Twitter App 用 )
ユーザーを作成
オンにすると、TwitterアカウントでログインしたときにAEMユーザーエントリが作成され、選択したユーザーグループにメンバーとして追加されます。 デフォルトはオンです(強く推奨)。
ユーザー ID をマスク
選択を解除したままにします。
ユーザーグループに追加
「ユーザーグループを追加」を選択して、1 つ以上の メンバーグループ ユーザーを追加するコミュニティサイト用に作成されます。
グループはいつでも追加または削除できます。ただし、既存のユーザーのメンバーシップは影響を受けません。 自動メンバーシップは、このフィールド更新後に作成された新規ユーザーにのみ適用されます。匿名ユーザーが無効になっているサイトの場合は、その非公開のコミュニティサイト向けの対応する community-members グループにユーザーを追加します。
選択 保存 および 公開.
結果は AdobeGranite OAuth Application and Provider これ以上変更する必要のないインスタンス。 デフォルトの範囲には、Twitter にログインするための標準的な権限が含まれています。
AEM Communities設定は、 AdobeGranite OAuth Application and Provider インスタンス。 ユーザー更新を許可するには、このプロバイダーを編集する必要があります。
編集が必要な場合は、それぞれの AEM パブリッシュインスタンスで次の設定をします。
管理者権限でサインインします。
次に移動: Web コンソール.
例:http://localhost:4503/system/console/configMgr
AEM Communities Twitter OAuth Provider を見つけます。
鉛筆アイコンを選択して編集用に開きます。
(必須) デフォルト値は soco -twitter. 編集しないでください。
Cloud Service設定
デフォルト値は conf.編集しないでください。
OAuth Provider Service Config
デフォルト値は /apps/social/twitterprovider/config/
です。編集しないでください。
ユーザーパス
リポジトリ内のユーザーデータが格納される場所。 コミュニティサイトでは、メンバーが互いのプロファイルを表示する権限を確保するために、パスをデフォルトにする必要があります /home/users/community
.
Enable Params 編集しない
URL パラメーター 編集しない
ユーザーを更新
オンにすると、ログインするたびにリポジトリ内のユーザーデータが更新され、プロファイルの変更やリクエストされた追加データが反映されます。デフォルト値はオフです。
続いて以下の手順をおこないますが、この手順は Facebook でも Twitter でも共通です。
クラウドサービスを設定すると、 ユーザー管理 コミュニティサイト中のサブパネルの設定 作成 または 管理.
ソーシャルログイン設定を保存したサイト設定コンテキストを選択します。
「一般」タブで、クラウド設定をおこないます。
「設定」タブで、「ソーシャルログイン」を有効にして「保存」を選択します。
この Adobe Granite OAuth Authentication Handler
はデフォルトでは有効ではなく、 すべてのAEMパブリッシュインスタンスで有効にする必要があります。
パブリッシュインスタンスで認証ハンドラーを有効にするには、以下のように OSGi 設定を開いて保存するだけです。
Adobe Granite OAuth Authentication Handler
.認証ハンドラーをのFacebookまたはTwitterインスタンスと混同しないように注意してください。 AdobeGranite OAuth Application and Provider.
facebookまたはTwitterのクラウドサービスを作成すると、 Adobe Granite OAuth Authentication Handler
が作成されました。
Facebook または Twitter アプリ用に作成されたインスタンスを見つけるには、以下のようにします。
管理者権限でサインインします。
次に移動: Web コンソール.
例:http://localhost:4503/system/console/configMgr
AdobeGranite OAuth Application and Provider を見つけます。
次の場所にあるインスタンスを見つけます。 クライアント ID が アプリ ID.
次のプロパティを除き、設定の他のプロパティは変更しないでください。
設定 ID
(必須) OAuth 設定 ID は一意である必要があります。 クラウドサービスの作成時に自動生成されます。
クライアント ID
(必須) クラウドサービスの作成時に提供されたアプリケーション ID。
クライアントの秘密鍵
(必須) クラウドサービスの作成時に提供されたアプリケーション秘密鍵。
範囲
(オプション) 許可される内容の追加範囲は、プロバイダーから求めることができます。 デフォルトで、ソーシャル認証とプロファイルデータの提供に必要な権限が範囲に含まれています。
プロバイダー ID
(必須) AEM Communitiesのプロバイダー ID は、クラウドサービスの作成時に設定されます。 編集しないでください。facebook Connect の場合、値は soco -facebook. twitter Connect の場合、値は soco -twitter.
グループ
(推奨) 作成したユーザーを追加する 1 つ以上のメンバーグループ。 AEM Communitiesの場合は、コミュニティサイトのメンバーグループをリストすることをお勧めします。
コールバック URL
(オプション) OAuth プロバイダーがクライアントをリダイレクトして戻すように設定した URL。 元のリクエストのホストを使用するには、相対 URL を使用します。最初にリクエストされた URL を代わりに使用するには、空のままにします。この URL .
コールバックのドメインは、プロバイダー (FacebookまたはTwitter) に登録する必要があります。
OAuth 認証ハンドラーの設定ごとに、インスタンスに 2 つの追加の設定が作成されます。
詳しくは、 Apache Oak 外部ログインモジュールを使用した認証.
数十万人ものユーザーがFacebookまたはTwitterログインを使用して登録したコミュニティサイトの場合、サイト訪問者がソーシャルログインを使用した際に実行されるクエリのトラバーサルパフォーマンスを、次の Oak インデックスを追加することで改善できます。
ログにトラバーサル警告が記録されている場合は、このインデックスを追加することを推奨します。
オーサーインスタンスで、管理者権限でサインインします。
グローバルナビゲーションから:選択 ツール、 CRX/DE Lite.
ntBaseLucene のコピーから ntBaseLucene-oauth という名前のインデックスを作成します。
/oak:index
ntBaseLucene
/oak:index
ntBaseLucene-oauth
ntBaseLucene-oauth ノードのプロパティを変更します。
/oak:index/ntBaseLucene-oauth
oauthid-123​**​**
true
1
ノード/oak:index/ntBaseLucene-oauth/indexRules/nt:base/properties の下で、次の手順を実行します。
cqTags を除くすべての子ノードを削除します。
cqTags の名前をに変更します。 oauthid-123**​**
ノードのプロパティを変更する oauthid-123**​**
oauthid-123​**​**
すべて保存 を選択します。
の 名前 oauthid-123
,置換 123 facebook アプリ ID またはTwitter 消費者 (API) キー これは、 クライアント ID 内 AdobeGranite OAuth Application and Provider 設定。
詳しくは、 Oak クエリとインデックス作成.
コミュニティのための Dispatcher の設定を参照してください。