ソーシャルサインオンの設定

学習の目的

このモジュールを完了すると、次のことができるようになります。
  • 認証プロバイダとは何かを説明する。
  • Salesforce に付属する認証プロバイダをリストする。
  • 認証プロバイダを設定する。
  • 登録ハンドラの値を説明する。

ソーシャルサインオン

昔から誰もが思っていたことです。たとえば、辺境にあるスペースコロニーの移住者などは、Web サイトごとに新しいオンラインアカウントを作成するよりも、できれば各自のソーシャルアカウントを使用したいと考えていることでしょう。ShadowMoon (または定番の Facebook や Google) のようなお気に入りのソーシャルアカウントに一度ログインすれば、メールやオンラインバンキングなどの他のアカウントにアクセスできます。ソーシャルサインオンにより、顧客は利便性の高い安全な環境で自由にアクセスできます。

顧客がソーシャルログイン情報を使用して Salesforce にログインできるようにするには、ソーシャルアカウントの認証プロバイダを設定します。この作業を行ったときの顧客環境は次のようになります。

ソーシャルサインオンプロセス

  • Google、Facebook、Twitter またはユーザ名とパスワードを使用してログインするオプションのある Salesforce ログインページに顧客がアクセスします。(1)
  • 顧客は Facebook ログイン情報でログインすることを選択します。(2)
  • 顧客は Salesforce によって Facebook にリダイレクトされます。(3)
  • 顧客は Facebook にログインします。(4)
  • Salesforce は Facebook の検証を信頼しているため、顧客は Facebook によって自動的に Salesforce にログインします。(5)

Salesforce では、いくつかの認証プロバイダを選択できますが、開発者が OpenID Connect プロトコルを使用して設定できる認証プロバイダを含めれば、さらに多くの認証プロバイダを選択できるようになります。さらに、開発者が独自の認証プロバイダを作成することにした場合、Salesforce API を使用して作成できます。

認証プロバイダの作成

[設定] から、Salesforce 組織にアクセスできる認証プロバイダを選択します。クリック数回で、1 つ以上のソーシャルアカウントでログインできるオプションを追加できます。次に、認証プロバイダとして Facebook を設定する方法を示します。
  1. [設定] から、[クイック検索] ボックスに「認証」と入力し、[認証プロバイダ] を選択します。
  2. [新規] をクリックし、プロバイダタイプに [Facebook] を選択します。
  3. 認証プロバイダに「Facebook」という名前を付けます。
  4. [登録ハンドラ] で、[登録ハンドラテンプレートを自動作成] をクリックします。
  5. [他のアカウントで登録を実行] に自身を選択します。気を付けてください。これは必須の手順ですが見過ごされることが少なくありません。本番組織では自身で選択しません。今後の問題を避けたい場合は、代わりにサービスアカウントを作成します。自分自身を使用し、その後退社して Salesforce アカウントが無効になったときに、プロセスを開始できなくなります。
  6. [アイコン URL] で、[いずれかのサンプルアイコンを選択] をクリックしてアイコンを選択し、URL をコピーして [アイコン URL] に貼り付けます。
  7. その他の項目は空のままにします。Salesforce の標準プロバイダ (Facebook、Google など) を使用する場合は、Salesforce でコンシューマ鍵やコンシューマの秘密などの値が指定されます。
  8. [保存] をクリックします。

認証プロバイダの設定ページ

認証プロバイダを定義すると、Salesforce によって複数の URL が生成されます。[テスト専用初期化 URL] を使用して、ソーシャルネットワークとの接続をテストします。

  1. 認証プロバイダの詳細ページの [Salesforce 設定] で、[テスト専用初期化 URL] に表示されている URL をコピーします。認証プロバイダ URL のテスト
  2. URL をブラウザに貼り付けます。
    これが機能していれば、Facebook ログインページが表示されます。
  3. Facebook ページにログインします。
  4. 認証を促されたら、アプリケーションを認証します。Salesforce にリダイレクトされ、Facebook から送信された XML 情報が表示されます。

この XML 情報は、認証プロバイダをデバッグするときや、認証プロバイダに機能を追加するときに役立ちます。次の情報では Facebook ユーザが Mel Reynolds であることがわかります。また、組織 ID、Facebook アカウントへのリンク、メールアドレスも確認できます。

認証プロバイダのテスト URL の出力

Facebook を使用したログイン

Facebook 認証プロバイダを作成したところで、[ログイン & 登録] ページに戻り、Facebook をログインオプションとして追加しましょう。
  1. [設定] から、[クイック検索] ボックスに「サイト」と入力し、[すべてのサイト] を選択して、顧客の横にある [ワークスペース] をクリックします。
  2. [管理][ログイン & 登録] の順に選択し、Facebook がオプションになっていることを確認します。ログイン設定ページの Facebook オプション
  3. [Facebook] を選択して、[保存] をクリックします。

変更を確認するには、非公開 (シークレット) ブラウザに戻り、ログインページを再読み込みします。Facebook アイコンがログインページに表示されていることを確認します。

Facebook ロゴのあるログインページ

Facebook アカウントでサインインしてみましょう。次のようなエラーが表示されませんでしたか?

Facebook へのログイン時のエラー

慌てる必要はありません。次に、このエラーを修正します。

登録ハンドラの更新

Facebook 認証プロバイダの標準 Salesforce 登録ハンドラが機能しないため、Facebook ログインは機能しません。なぜでしょうか? Facebook などの認証プロバイダは、セキュリティを強化するために認証要件を頻繁に変更します。問題ありません。登録ハンドラは自由に更新できます。

登録ハンドラとは?

登録ハンドラは、認証プロバイダ (この場合は Facebook) から取得した ID 情報を使用してその場でユーザを作成および更新します。登録ハンドラでは、Salesforce ユーザを作成するときに使用するプロファイル写真などの追加情報を Facebook から取得できます。

[ログイン & 登録] ページで [登録ハンドラを自動作成] テンプレートを選択したときに、標準 Facebook 登録ハンドラを選択しました。

自動生成された登録ハンドラを開きます。

  1. [設定] から、[クイック検索] ボックスに「認証」と入力し、[認証プロバイダ] を選択します。
  2. Facebook 認証プロバイダの横にある [編集] をクリックします。
  3. [登録ハンドラ] で、虫眼鏡 をクリックして、自動作成された登録ハンドラの完全名 (例: AutocreatedRegHandler1467402405056) を表示します。
  4. [設定] から、[クイック検索] ボックスに「Apex クラス」と入力し、[Apex クラス] を選択します。
  5. 登録ハンドラの横にある [編集] をクリックします。

登録ハンドラの Apex クラス

これは、Apex クラスの形式のコードです。普段コーディングしていない場合でも問題ありません。コーディングは不要です。単純な切り取りと貼り付けを行って、この Apex クラスを、Salesforce Identity の Git リポジトリで提供されるコードに置き換えるだけで済みます。

登録ハンドラを、GitHub リポジトリで提供される登録ハンドラに置き換えます。

  1. 別のブラウザタブで、登録ハンドラ https://github.com/salesforceidentity/IdentityTrail-Module3/blob/master/SimpleFacebookRegistrationHandler.cls を開きます。
  2. GitHub からコードをコピーして、Salesforce で自動生成された登録ハンドラに貼り付けます。
  3. [保存] をクリックします。

再度 Facebook にログインしましょう。

  1. 非公開 (シークレット) ブラウザに戻り、ログインページを再読み込みします。
  2. Facebook アイコンをクリックし、Facebook のユーザ名とパスワードを入力します。このページが表示されたら、Facebook ログインが機能しています。カスタマーサービステンプレートを使用してサイトを作成したため、顧客には次のようなページが表示されます。このページには、顧客がシングルサインオンでアプリケーションにアクセスできるアプリランチャーがあります。
カスタマーサービステンプレートサイト

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

コミュニティのアプリケーションランチャー
無料で学習を続けましょう!
続けるにはアカウントにサインアップしてください。
サインアップすると次のような機能が利用できるようになります。
  • 各自のキャリア目標に合わせてパーソナライズされたおすすめが表示される
  • ハンズオン Challenge やテストでスキルを練習できる
  • 進捗状況を追跡して上司と共有できる
  • メンターやキャリアチャンスと繋がることができる