セキュリティキーを使ってSalesforceのログインをMFAに対応する

## はじめに
2022年02月01日にSalesforceのログインにMFA（多要素認証）が必須になります。
もう一ヶ月もないですが、yubicoのセキュリティキーを使ってMFAの必須化に備えたいと思います。

:::note info
この記事ではSandboxを使用していますが、SandboxはMFA必須化の対象外です（一部例外があります）。「知的財産、顧客データ、その他の Salesforce 製品データが格納される環境」ではSandboxであってもMFAが推奨されています。
Developer EditionもMFA必須化の対象となりません。必須化の対象となる環境は下記の公式のヘルプでご確認ください。
:::

:::note warn
ChromeでU2Fのサポートの廃止が発表されました。
Salesforceで引き続きU2Fを使用できるように対応を続けるようです。
最新の情報は英語版のFAQ（日本語版は更新が遅いため英語版です）とknown issueで確認するようにしてください。
※日本語版が表示される場合は右下の言語選択でEnglishを選択してください。
:::

- [Salesforce ヘルプ | 多要素認証に関する FAQ](https://help.salesforce.com/s/articleView?id=000352937&type=1) 
- [Chrome Developer | Deprecations and removals in Chrome 95](https://developer.chrome.com/blog/deps-rems-95/)
- [know Issue | U2F API deprecation message within Chrome 96+ during registration or use of a Security Key](https://trailblazer.salesforce.com/issues_view?id=a1p4V000002CKpfQAG)

## セキュリティキーの準備
この記事ではyubicoの[Security Key NFC](https://www.amazon.co.jp/dp/B07M8YBWQZ)を使っていきます。yubicoの製品はAmazonでも購入可能です。使用できるセキュリティキーは[公式ヘルプ](https://help.salesforce.com/s/articleView?id=sf.mfa_supported_verification_methods_securitykey.htm&type=5)で確認してください。

![yubico1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125621/aadf90fa-60c3-6b32-afdf-6fb8c95ffadb.jpeg)

## Salesforceの設定
MFAのオプションでセキュリティキーを使用できるようにします。設定画面のクイック検索で「ID」と入力し、「ID 検証」をクリックします。「ユーザが物理的なセキュリティキー (U2F) を使用して ID を検証できるようにする」にチェックします。

![mfa_org_setting.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125621/482526be-5347-a304-8b31-3e7ebf7bf2fe.png)

つぎに、ユーザに対してMFAを有効化します。プロファイルまたは権限セットで「ユーザインターフェースログインの多要素認証」にチェックします。

![mfa_profile_setting.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125621/31a66f97-dbd9-1e2a-98b1-7258b5b931c6.png)

## ユーザがMFAを登録する
ログインにセキュリティキーを使用できるようにするためには、ユーザ側で設定が必要です。
まず、通常のログイン画面でIDとパスワードを入力します。

![mfa_login1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125621/e09c661e-638a-50b0-b6f0-0d78cf6d3cd8.png)

ログインするとSalesforce Authenticatorの接続画面が表示されます。セキュリティキーを登録するため、「別の検証方法を選択」をクリックします。すでに別の方法でMFAを設定していると「別の検証方法を選択」が表示されません。この場合の設定方法は後述します。

![mfa_login2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125621/4d8f675b-5a52-411c-8e07-f09649a56028.png)

「Universal　Security Factor（U2F）キーを使用」を選択して次へをクリックします。

![mfa_login3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125621/168bf54f-5922-38fe-2878-744d6e5182d4.png)

セキュリティキーの登録画面が表示されます。アラートが表示されたら許可をクリックします。
セキュリティキーをUSBポートに挿し、キーにボタンがある場合はボタンを押します。

![mfa_regi1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125621/8da10e78-b842-2abf-9338-ffdc34a5e4fb.png)

yubicoのSecurity Key NFCの場合は中央の金属プレートに触れます。

![yubico2.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125621/f5fda4dd-3d24-8708-a207-feedb7d53401.jpeg)

登録成功画面が表示されたら登録は完了です。

![mfa_regi3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125621/26ab0436-789d-63ef-3a48-36a511684b97.png)

MFAの登録状況は「高度なユーザの詳細」で確認できます。セキュリティキーの登録を解除したい場合はこの画面の削除ボタンをクリックします。
すでに他の方法でMFAを設定している場合、この画面からセキュリティキーの設定を行います。

![user_setting.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125621/7a77296e-beaf-221c-f109-8a16740b5ca3.png)

## MFAでログインする
上記の設定後、ログイン時にパスワードを入力した後にセキュリティキーの検証ページが表示されます。検証が完了したらログインできます。

![mfa_login4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125621/d0c29c89-3204-ec00-343e-00734da2fd04.png)



## ユーザがデバイスを紛失してしまった場合
管理者が、対象のユーザの詳細画面からMFA登録を削除することができます。
削除後、ユーザはログイン時にMFAの登録が求められます。
セキュリティキーなどを利用せずに一時的にログインさせるときは「仮の確認コード」を発行します。

![admin_setting.png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125621/45ce6687-a847-8fc9-7de0-2fa7ebf7e9a1.png)

仮の確認コードを発行するときは有効期限を設定します。

![admin_temp_code1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125621/3a8c7914-4db9-23de-fe63-1f36154bbd70.png)

![admin_temp_code2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125621/09c68562-8459-fb20-ef02-8d3109abff0f.png)


## 参考

- [Salesforce | システム管理者向け多要素認証クイックガイド](https://www.salesforce.com/content/dam/web/en_us/www/documents/guides/mfa-quick-admin-guide-ja.pdf)
- [Salesforce ヘルプ | 多要素認証に関する FAQ](https://help.salesforce.com/s/articleView?id=000352937&type=1)
- [Salesforce ヘルプ | MFA (Salesforce Platform で構築された製品) の有効化](https://help.salesforce.com/s/articleView?id=000356005&type=1)
- [Salesforce ヘルプ | セキュリティキー](https://help.salesforce.com/s/articleView?id=sf.mfa_supported_verification_methods_securitykey.htm&type=5)
- [Salesforce ヘルプ | 多要素認証のロールアウト方法](https://help.salesforce.com/s/articleView?id=sf.mfa_welcome_to_mfa.htm&type=5)
- [Chrome Developer | Deprecations and removals in Chrome 95](https://developer.chrome.com/blog/deps-rems-95/)
- [know Issue | U2F API deprecation message within Chrome 96+ during registration or use of a Security Key](https://trailblazer.salesforce.com/issues_view?id=a1p4V000002CKpfQAG)

:::note warn
日本語のヘルプは情報が古い場合があります。右下の言語選択からEnglishを選択して、改訂履歴（Revision History）を確認するようにしてください。
:::