ソーシャルサインオンの設定
学習の目的
- 認証プロバイダとは何かを説明する。
- Salesforce に付属する認証プロバイダをリストする。
- 認証プロバイダを設定する。
- 登録ハンドラの値を説明する。
ソーシャルサインオン
顧客がソーシャルログイン情報を使用して Salesforce にログインできるようにするには、ソーシャルアカウントの認証プロバイダを設定します。この作業を行ったときの顧客環境は次のようになります。
- Google、Facebook、Twitter またはユーザ名とパスワードを使用してログインするオプションのある Salesforce ログインページに顧客がアクセスします。(1)
- 顧客は Facebook ログイン情報でログインすることを選択します。(2)
- 顧客は Salesforce によって Facebook にリダイレクトされます。(3)
- 顧客は Facebook にログインします。(4)
- Salesforce は Facebook の検証を信頼しているため、顧客は Facebook によって自動的に Salesforce にログインします。(5)
Salesforce では、いくつかの認証プロバイダを選択できますが、開発者が OpenID Connect プロトコルを使用して設定できる認証プロバイダを含めれば、さらに多くの認証プロバイダを選択できるようになります。さらに、開発者が独自の認証プロバイダを作成することにした場合、Salesforce API を使用して作成できます。
認証プロバイダの作成
- [設定] から、[クイック検索] ボックスに「認証」と入力し、[認証プロバイダ] を選択します。
- [新規] をクリックし、プロバイダタイプに [Facebook] を選択します。
- 認証プロバイダに「Facebook」という名前を付けます。
- [登録ハンドラ] で、[登録ハンドラテンプレートを自動作成] をクリックします。
- [他のアカウントで登録を実行] に自身を選択します。気を付けてください。これは必須の手順ですが見過ごされることが少なくありません。本番組織では自身で選択しません。今後の問題を避けたい場合は、代わりにサービスアカウントを作成します。自分自身を使用し、その後退社して Salesforce アカウントが無効になったときに、プロセスを開始できなくなります。
- [アイコン URL] で、[いずれかのサンプルアイコンを選択] をクリックしてアイコンを選択し、URL をコピーして [アイコン URL] に貼り付けます。
- その他の項目は空のままにします。Salesforce の標準プロバイダ (Facebook、Google など) を使用する場合は、Salesforce でコンシューマ鍵やコンシューマの秘密などの値が指定されます。
- [保存] をクリックします。
認証プロバイダを定義すると、Salesforce によって複数の URL が生成されます。[テスト専用初期化 URL] を使用して、ソーシャルネットワークとの接続をテストします。
- 認証プロバイダの詳細ページの [Salesforce 設定] で、[テスト専用初期化 URL] に表示されている URL をコピーします。
- URL をブラウザに貼り付けます。
これが機能していれば、Facebook ログインページが表示されます。 - Facebook ページにログインします。
- 認証を促されたら、アプリケーションを認証します。Salesforce にリダイレクトされ、Facebook から送信された XML 情報が表示されます。
この XML 情報は、認証プロバイダをデバッグするときや、認証プロバイダに機能を追加するときに役立ちます。次の情報では Facebook ユーザが Mel Reynolds であることがわかります。また、組織 ID、Facebook アカウントへのリンク、メールアドレスも確認できます。
Facebook を使用したログイン
- [設定] から、[クイック検索] ボックスに「すべてのコミュニティ」と入力し、[すべてのコミュニティ] を選択して、顧客の横にある [ワークスペース] をクリックします。
-
[管理]、[ログイン & 登録] の順に選択し、Facebook がオプションになっていることを確認します。
- [Facebook] を選択して、[保存] をクリックします。
変更を確認するには、非公開 (シークレット) ブラウザに戻り、ログインページを再読み込みします。Facebook アイコンがログインページに表示されていることを確認します。
Facebook アカウントでサインインしてみましょう。次のようなエラーが表示されませんでしたか?
慌てる必要はありません。次に、このエラーを修正します。
登録ハンドラの更新
登録ハンドラとは?
登録ハンドラは、認証プロバイダ (この場合は Facebook) から取得した ID 情報を使用してその場でユーザを作成および更新します。登録ハンドラでは、Salesforce ユーザを作成するときに使用するプロファイル写真などの追加情報を Facebook から取得できます。
[ログイン & 登録] ページで [登録ハンドラを自動作成] テンプレートを選択したときに、標準 Facebook 登録ハンドラを選択しました。
自動生成された登録ハンドラを開きます。
- [設定] から、[クイック検索] ボックスに「認証」と入力し、[認証プロバイダ] を選択します。
- Facebook 認証プロバイダの横にある [編集] をクリックします。
- [登録ハンドラ] で、
をクリックして、自動作成された登録ハンドラの完全名 (例: AutocreatedRegHandler1467402405056) を表示します。
- [設定] から、[クイック検索] ボックスに「Apex クラス」と入力し、[Apex クラス] を選択します。
- 登録ハンドラの横にある [編集] をクリックします。
これは、Apex クラスの形式のコードです。普段コーディングしていない場合でも問題ありません。コーディングは不要です。単純な切り取りと貼り付けを行って、この Apex クラスを、Salesforce Identity の Git リポジトリで提供されるコードに置き換えるだけで済みます。
登録ハンドラを、GitHub リポジトリで提供される登録ハンドラに置き換えます。
- 別のブラウザタブで、登録ハンドラ https://github.com/salesforceidentity/IdentityTrail-Module3/blob/master/SimpleFacebookRegistrationHandler.cls を開きます。
- GitHub からコードをコピーして、Salesforce で自動生成された登録ハンドラに貼り付けます。
- [保存] をクリックします。
再度 Facebook にログインしましょう。
- 非公開 (シークレット) ブラウザに戻り、ログインページを再読み込みします。
- Facebook アイコンをクリックし、Facebook のユーザ名とパスワードを入力します。このページが表示されたら、Facebook ログインが機能しています。Aloha テンプレートを使用してコミュニティを作成することを選択すると、顧客には次のようなアプリケーションランチャーが表示されます。

現時点ではこのアプリケーションランチャーにあまりアプリケーションはありませんが、アプリケーションを追加して顧客の利便性を高めることができます。このように顧客はアイコンをクリックしてアプリケーションに即座にアクセスし、サポート、請求、コラボレーションなどを行うことができます。

リソース
- 認証プロバイダ
- カスタム外部認証プロバイダの作成
- ソーシャルサインオンの動画 (11:30)