Skip to main content

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

学習の目的

このモジュールを完了すると、次のことができるようになります。
  • 認証プロバイダーとは何かを説明する。
  • 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. 登録ハンドラーファイルの行 9 で、INTERNAL_USER_PROFILE の「Standard User」を「System Administrator」に変更し、[保存] をクリックします。
    この Trailhead の単元では、各自のアカウントを使用して登録ハンドラーを作成します。Trailhead Playground のプロファイルはシステム管理者であるため、登録ハンドラーでシステム管理者プロファイルを使用する必要があります。本番では、登録ハンドラーの作成に使用するサービスアカウントに割り当てられているプロファイルを使用します。

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

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

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

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