本ブログ内でも以前取り上げましたが、Salesforceは、顧客情報保護の観点から全ての自社製品に対し、多要素認証(MFA:Multi-Factor Authentication)の対応を必須化すると発表しており、今後も段階的にMFAの適用が進んでいくとのことです。

そこで本記事では、SalesforceへのMFA必須化に対して、クライアント証明書を使用した場合の対応方法について、実際の設定画面も交えて解説します。(対象:Windows 10、iOS 16.3.1)

なお、Salesforceの仕様では、クライアント証明書は指定のCAから発行されている必要があります。弊社「マネージドPKI Lite byGMO」で発行可能なクライアント証明書は、問題なくご利用いただけます。

※今回のテストでは、Salesforce社が無償で提供されているSalesforce Develop Editionを利用しています。

まずは①~④の設定を行っていきます。

証明書ベース認証の有効化

[設定] から、[ID 検証]メニューを選択します。
[ユーザが証明書を使用して認証できるようにする]にチェックをします。

ユーザが証明書を使用して認証できるようにするにチェック

ユーザ認証証明書のアップロード

  1. [設定] から [ユーザ認証証明書] を選択
  2. [新しい証明書をアップロード] をクリック
  3. [表示ラベル] にはSalesforceでの識別名を入力
  4. [ファイルを選択] をクリックして、ユーザ用にアップロードするクライアント証明書を指定
  5. この証明書を使用して認証するユーザIDを選択
  6. [保存] をクリック
SF2.png

※アップロードする証明書はGSパネルから入手可能です。

SF3.png

上記データをテキストファイルに保存することで、証明書データとして利用できます。また、CSV出力やWeb APIを使うことで複数証明書データを一括取得することも可能です。

ログインページを証明書認証ベースに変更

  1. [設定] から、 [私のドメイン] を選択
  2. [認証設定] で [編集] をクリック
  3. [認証サービス] で、[証明書] を選択
  4. 「iOSでのユーザ認証にネイティブブラウザを使用」にチェック(iPhoneでの証明書認証を行う場合)
  5. [保存] をクリック
SF4.png

以上の操作で、ログイン認証がクライアント証明書のみとなります。

SF5.png

iPhoneの場合は、インストールされているクライアント証明書が1つの場合はバックグラウンドで証明書認証が行われます(複数ある場合は選択ダイアログが出現するので、Salesforceで設定した証明書を選択します)。

これでWindowsブラウザやiPhone専用アプリでのSalesforceの認証を証明書にすることができました。また、ログインIDと証明書の紐づけを解除するとログイン不可になります。ただし、これではまだID/パスワードでの認証を証明書に置き換えただけで1要素認証であることに変わりはないため、もう1つ認証要素を加えます。

多要素認証(MFA)の設定

管理者操作

管理者ログインし、 [設定] から、 [ID 検証]メニューを選択します。
[ユーザが Touch ID や Windows Hello などの組み込み Authenticator を使用して ID を検証できるようにする]にチェックをします。

SF6.png

利用者ごとの操作

Windowsの場合は、ブラウザでログインし[設定]から、[ユーザ]メニューを選択します。 自分を選び、[組み込みAuthenticator]欄で[追加]をクリックします。

SF7.png

画面の指示に従い、Windows Helloを組み込みAuthenticatorとして登録します。

SF8.png
SF9.png

本検証ではWindows Helloでのサインイン認証にPINを使用します。

SF10.png

iPhoneでも同様にsafariからアクセスして組み込みAuthenticatorを登録します。

SF11.png

管理者ログインし[設定] から[ID 検証]メニューを選択します。[Salesforce 組織へのすべての直接 UI ログインに多要素認証 (MFA) が必要]にチェックをします。

SF12.png

設定は以上となります。それでは、アクセスを試してみましょう。

SFへのログイン

Windows PC

ブラウザでSalesforceにアクセスします。証明書認証が成功すると次にWindows HelloでのPIN(暗証番号)認証が行われます。

SF13.png
SF14.png

iPhone

Salesforceアプリを起動します。証明書認証が成功すると次にFace ID (機種によってはTouch ID)による認証が行われます。

SF15.png

(生体認証に連続して失敗するとデバイスパスコードの入力を求められます)

なお、iOSの場合は他に「モバイルロック」というSFの機能があり、ログイン時、および設定した時間が経過した場合にFaceID(TouchID)もしくはパスコードの入力が求められるようになります。こちらはPCブラウザでは利用できませんが、管理者設定のみなのでシンプルです。

以上のように証明書(デバイス所有)に加え、生体(或いは記憶)といった2要素での認証が可能になります。

まとめ

Salesforceでは、パスワード認証の代わりとしての証明書認証ということで、これまで多要素認証の実現が難しかった側面がありますが、今回の検証のようにクライアント証明書を用いることでパスワードレスでの2要素認証の実現が可能となっております。クライアント証明書での認証に変えることで、ログイン時のID/パスワードの入力や、煩雑なパスワードの管理などの手間が無くなるため、Salesforceの要件をクリアすると同時にログイン時の利便性を向上させることにもつながります。

弊社ではテスト用の証明書を提供しております。無料でご利用いただけますので、本記事の設定をお試しされたい場合は、お気軽に弊社宛にお問い合わせください。

トピック関連記事

#

2021年04月06日

不正アクセス事例から学ぶ、VPN接続のセキュリティ強化

#

2015年06月29日

アクセス認証に電子証明書を利用するメリットとは?

#

2024年01月24日

AWS ALBでのクライアント証明書認証の設定方法

この記事を書きました

グローバルサインブログ編集部

グローバルサインカレッジ編集部
所属:GMOグローバルサイン マーケティング部
当サイトの運営・管理を担当。