ソーシャルログインは、サイト訪問者にFacebookやTwitterアカウントでサインインするオプションを提供する機能です。 したがって、許可されたFacebookデータやTwitterデータがAEMの会員プロファイルに含まれます。
ソーシャルログインを含めるには、カスタムFacebookアプリとTwitterアプリを作成するために*必要です。
We-Retailのサンプルは、サンプルのFacebook、Twitterのアプリ、クラウドサービスを提供しますが、実稼動用Webサイトでは利用できません。
必要な手順は以下のとおりです。
すべての AEM パブリッシュインスタンスで OAuth 認証を有効にします。
OAuthが有効になっていない場合、ログイン試行は失敗します。
ソーシャルアプリとクラウドサービスを 作成します。
Facebookでのログインをサポートするには:
Twitterでのログインをサポートするには:
コミュニティサイトに対してソーシャルログインを有効にします。
以下に示す 2 つの基本的な概念があります。
Scope (permissions)は、アプリが要求できるデータを指定します。
Fields (params)は、URLパラメーターを使用してリクエストされた実際のデータを指定します。
ソーシャルログインと we-retail の Facebook アプリのサンプルは、Facebook Graph API 1.0 バージョンで開発されたものです。
AEM 6.4 GA以降およびAEM 6.3 SP1ソーシャルログインが、新しいバージョンのFacebook Graph API 2.5で動作するように更新されました。
古いバージョンのAEMでは、ログCan't extract a token from thisに例外が発生する場合、AEMリリースの最新のCFPにアップグレードしてください。
Facebook Graph APIのバージョン情報については、Facebook API変更ログを参照してください。
Facebookのソーシャルログインを有効にするには、適切に設定されたFacebookアプリが必要です。
Facebookアプリを作成するには、https://developers.facebook.com/apps/にあるFacebookの説明に従ってください。 手順に対する変更は、次の情報には反映されません。
一般的な手順(Facebook API v2.7 の時点):
https://<server>:<port>.
と入力します https://<server>:<port>.
と入力します。開発のために、http://localhost:4503が動作します。
アプリケーションが作成されたら、アプリIDとアプリシークレットの設定を探します。 この情報は、Facebookクラウドサービスを設定する際に必要です。
クラウドサービス設定を作成することで、Adobe Granite OAuth Application and Provider インスタンスが作成されます。このインスタンスが、Facebook アプリケーションと新しいユーザーの追加先のメンバーグループを識別します。
AEM オーサーインスタンスで、管理者権限でサインインします。
グローバルナビゲーションから、ツール/Cloud Services/Facebook Socialログイン設定を選択します。
コンテキストパス設定を選択します。
コンテキスト パスは、コミュニティサイトの作成/編集時に選択したクラウド設定パスと同じでなければなりません。
コンテキストパスの下にクラウドサービスを作成できる設定になっているかを確認します。
ツール/一般/設定ブラウザーに移動します。 コンテキストを選択し、プロパティを編集します。 まだ有効になっていなければ、クラウド設定を有効にします。
Facebook クラウドサービス設定を作成または編集します。
グループはいつでも追加または削除できます。しかし、既存ユーザーのメンバーシップに影響はありません。自動メンバーシップは、このフィールド更新後に作成された新規ユーザーにのみ適用されます。匿名ユーザーが無効になっているサイトの場合は、そのクローズドコミュニティサイト専用の対応するコミュニティメンバーグループにユーザーを追加します。
その結果、AdobeGranite OAuth ApplicationとProviderのインスタンスが生成されます。このインスタンスは、追加の範囲(権限)を追加しない限り、さらに変更を行う必要はありません。 デフォルトの範囲は、Facebookログインの標準権限です。 追加の範囲が必要な場合は、OSGI設定を直接編集する必要があります。 システムまたはコンソールから直接変更がおこなわれている場合は、上書きしないよう、タッチ UI からクラウドサービス設定を編集しないでください。
AEM Communitiesプロバイダーは、AdobeGranite OAuth Application and Providerインスタンスを拡張します。
以下をおこなうには、このプロバイダーを編集する必要があります。
ユーザーの更新を許可する
範囲](#adobe-granite-oauth-application-and-provider)内の追加追加フィールド[
編集が必要な場合は、それぞれの AEM パブリッシュインスタンスで次の設定をします。
管理者権限でサインインします。
Webコンソールに移動します。例えば、http://localhost:4503/system/console/configMgrのように指定します。
AEM CommunitiesのFacebook OAuthプロバイダーを探します。
鉛筆アイコンを選択して編集用に開きます。
OAuthプロバイダーID
(必須)デフォルト値はsoco -facebookです。 編集しないでください。
Cloud Service設定
デフォルト値は/etc/ cloudservices / facebookconnectです。 編集しないでください。
OAuthプロバイダーサービスの構成
デフォルト値は/apps/social/facebookprovider/config/です。 編集しないでください。
タグを有効にする
編集しない。
User Path
ユーザーデータが保存されるリポジトリ内の場所。 コミュニティサイトでは、メンバーがお互いのプロファイルを閲覧できる権限を確保するために、パスをデフォルトの /home/users/community にする必要があります。
フィールドの有効化
オンにすると、その下にリストされているフィールドが、ユーザー認証およびユーザー情報を求める Facebook へのリクエストに指定されます。デフォルト値はオフです。
フィールド
「Enable fields」をオンにした場合は、Facebook Graph API の呼び出し時に以下のフィールドが含まれます。これらのフィールドは、クラウドサービス設定で定義された範囲内で許可されている必要があります。追加のフィールドを使用するには、Facebook の承認が必要な場合があります。Facebook ドキュメントの Facebook ログイン権限の節を参照してください。パラメーターとして追加されるデフォルトのフィールドは次のとおりです。
いずれかのフィールドを追加または変更した場合は、対応する Default Sync ハンドラー設定を更新してマッピングを修正してください。
続いて以下の手順をおこないますが、この手順は Facebook でも Twitter でも共通です。
Twitter ソーシャルログインを有効にするには、設定された Twitter アプリが必要です。
最新の手順に従って、https://apps.twitter.comに新しいTwitterアプリを作成します。
一般的な手順は次のとおりです。
Webサイトのユーザーに対してTwitterアプリを識別する名前を入力します。
説明の入力.
webサイトの場合 — https://<server>/と入力します。
コールバックURLの場合 — https://<server>/と入力します。
ポートを指定する必要はありません。
開発のために、https://127.0.0.1/が動作します。
アプリケーションが作成されたら、コンシューマー(API)キーとコンシューマー(API)シークレットを探します。 この情報は、Twitterクラウドサービスの設定に必要です。
Twitter アプリケーション管理の権限のセクションで、次の設定をします。
アクセス:を選択し Read only
ます。
追加の権限:必要に応じて、を選択 Request email addresses from users
します。
ソーシャルログインに対して行われるREST要求は、GETアカウント/verify credentialsに対してのみです。
クラウドサービス設定を作成することで、Adobe Granite OAuth Application and Provider インスタンスが作成されます。このインスタンスが、Twitter アプリケーションと新しいユーザーの追加先のメンバーグループを識別します。
オーサーインスタンスで、管理者権限でサインインします。
グローバルナビゲーションから、ツール/Cloud Services/Twitter Socialログイン設定を選択します。
コンテキストパスの構成を選択します。
コンテキストパスは、コミュニティサイトの作成または編集時に選択したクラウド設定パスと同じでなければなりません。
コンテキストパスの下にクラウドサービスを作成できる設定になっているかを確認します。
ツール/一般/設定ブラウザーに移動します。 コンテキストを選択し、プロパティを編集します。 まだ有効になっていなければ、クラウド設定を有効にします。
Twitter クラウドサービス設定を作成または編集します。
タイトル (必須)Twitterアプリを識別する表示タイトルを入力します。Twitterアプリの表示名と同じ名前を使用することをお勧めします。
Consumer key (必須)Twitterアプリの コンシューマー(API) キーを入力します。これは、ダイアログから作成されたAdobeGranite OAuth ApplicationおよびProviderインスタンスを識別します。
Consumer secret (必須)Twitterアプリの コンシューマ(API) セクレットを入力します。
ユーザーの作成 をオンにした場合、Twitterアカウントでログインすると、AEMユーザーエントリが作成され、選択したユーザーグループにメンバーとして追加されます。デフォルトはオンになっています(強く推奨)。
Mask User IDsLeaveを選択解除したままにします。
[ユーザグル追加ープ追加]には、[ユーザグループ]を選択し、ユーザを追加するコミュニティサイトの1つまたは複数の メンバ グループを選択します。
グループはいつでも追加または削除できます。ただし、既存のユーザーのメンバーシップは影響を受けません。 自動メンバーシップは、このフィールド更新後に作成された新規ユーザーにのみ適用されます。匿名ユーザーが無効になっているサイトの場合は、その非公開のコミュニティサイト用の、対応するコミュニティメンバーグループにユーザーを追加します。
「保存」と「発行」を選択します。
結果は、AdobeGranite OAuth ApplicationおよびProviderのインスタンスが返され、これ以上の変更は必要ありません。 デフォルトの範囲には、Twitter にログインするための標準的な権限が含まれています。
AEM Communitiesの構成は、AdobeGranite OAuth Application and Providerインスタンスを拡張します。 ユーザー更新を許可するには、このプロバイダーを編集する必要があります。
編集が必要な場合は、それぞれの AEM パブリッシュインスタンスで次の設定をします。
管理者権限でサインインします。
Webコンソールに移動します。
例:http://localhost:4503/system/console/configMgr
AEM CommunitiesのTwitter OAuthプロバイダーを見つけます。
鉛筆アイコンを選択して編集用に開きます。
OAuthプロバイダーID (必須)
デフォルト値はsoco -twitterです。 編集しないでください。
Cloud Service設定
デフォルト値はconfです。編集しないでください。
OAuthプロバイダーサービスの構成
デフォルト値は/apps/social/twitterprovider/config/です。 編集しないでください。
User Path
ユーザーデータが保存されるリポジトリ内の場所。 コミュニティサイトでは、メンバーがお互いのプロファイルを閲覧できる権限を確保するために、パスをデフォルトの /home/users/community にする必要があります。
Enable Paramsdo not edit
URL パラメータが編集されません
ユーザーの更新
オンにすると、ログインするたびにリポジトリ内のユーザーデータが更新され、プロファイルの変更やリクエストされた追加データが反映されます。デフォルト値はオフです。
続いて以下の手順をおこないますが、この手順は Facebook でも Twitter でも共通です。
クラウドサービスを設定すると、コミュニティサイト作成または管理の間に、ユーザー管理設定サブパネルを使用して、コミュニティサイトの関連するソーシャルログイン設定で有効にできます。
ソーシャルログイン設定を保存したサイト設定コンテキストを選択します。
「一般」タブで、クラウド設定をおこないます。
「設定」タブで、「ソーシャルログイン」を有効にして「保存」を選択します。
Adobe Granite OAuth Authentication Handler
はデフォルトでは有効になっておらず、すべてのAEM発行インスタンスでを有効にする必要があります。
パブリッシュインスタンスで認証ハンドラーを有効にするには、以下のように OSGi 設定を開いて保存するだけです。
Adobe Granite OAuth Authentication Handler
を検索認証ハンドラーと、AdobeGranite OAuth Application and ProviderのFacebookまたはTwitterのインスタンスとを混同しないように注意してください。
FacebookまたはTwitterのクラウドサービスが作成されると、Adobe Granite OAuth Authentication Handler
のインスタンスが作成されます。
Facebook または Twitter アプリ用に作成されたインスタンスを見つけるには、以下のようにします。
管理者権限でサインインします。
Webコンソールに移動します。
例:http://localhost:4503/system/console/configMgr
AdobeGranite OAuth Application and Providerを探します。
次のプロパティを除き、configの他のプロパティは変更しないでください。
Config 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-oauthのプロパティの変更:
ノード/oak:index/ntBaseLucene-oauth/indexRules/nt:base/propertiesの下:
cqTagsを除くすべての子ノードを削除します。
cqTagsの名前をoauthid-123xxxxに変更します。
node oauthid-123xxxxのプロパティの変更
「すべて保存」を選択します。
* namauthid-1233という名前のアプリケーションの場合は、123 という名前のAdobeをFacebook app appID ** ortwitter consumer (KEYVALUEOFTTHEvalue of theVALUEof_APPLICATIONプロバイダー設定。
追加の情報とツールについては、Oakクエリとインデックス作成を参照してください。
コミュニティのための Dispatcher の設定を参照してください。