スマートカード認証のみを使えるように macOS を設定する
macOS Sierra 以降では、スマートカード認証で 2 ファクタ認証を強化できます。macOS High Sierra 10.13.2 以降は、スマートカード認証に対応しています。この方法ではスマートカードの使用が必須になり、パスワードを使った認証はすべて無効になります。
この記事は、スマートカード認証が必要なエンタープライズ環境において、セキュリティポリシーの設定を担当しているシステム管理者を読者として想定しています。
スマートカード限定ログインを有効にする
以下の手順は慎重に実行し、ユーザが確実にコンピュータにログインできるようにしてください。
スマートカードを管理者ユーザアカウントとペアリングするか、属性照合 (Attribute Matching) を設定します。
厳格な証明書チェックを有効にしている場合は、必須のルート証明書または中間証明書をインストールします。
スマートカードを使って管理者アカウントにログインできることを確かめます。
「スマートカード認証のサンプル構成プロファイルを参考にしてください。
スマートカードを使って引き続きログインできる状態であることを確かめます。
スマートカードのペイロード設定について詳しくは、Apple 構成プロファイルリファレンスを参照してください。
スマートカードサービスの利用について詳しくは、「macOS 導入リファレンス」を参照するか、ターミナルを開いて man SmartCardServices
と入力してください。
スマートカード認証を無効にする
コンピュータにインストールされているプロファイルを手動で管理している場合は、2 通りの方法でスマートカード認証のプロファイルを削除できます。システム環境設定の「プロファイル」パネルを使うか、「/usr/bin/profiles」コマンドラインツールを使う方法があります。詳しくは、ターミナルを開いて man profiles
と入力してください。
クライアントコンピュータがモバイルデバイス管理 (MDM) に登録されている場合は、パスワードベースの認証を復元できます。そのためには、スマートカード認証に限定する制約を有効にするスマートカード構成プロファイルをクライアントコンピュータから削除します。
ユーザがアカウントからロックアウトされる事態を避けるため、スマートカードのペアリングを解除したり属性照合を無効にしたりする前に enforceSmartCard プロファイルを削除してください。ユーザがアカウントからロックアウトされてしまったら、構成プロファイルを削除して問題を解決します。
スマートカード認証を有効にする前にスマートカード限定ポリシーを適用すると、ユーザがコンピュータからロックアウトされる場合があります。この問題を解決するには、以下の手順でスマートカード限定ポリシーを削除します。
Mac の電源を入れて、すぐに「command + R」キーを押して macOS 復旧から起動します。Apple ロゴ、回転する地球儀、またはファームウェアパスワードの入力画面が表示されたら、キーから指を放します。
ユーティリティのウインドウで「ディスクユーティリティ」を選択し、「続ける」をクリックします。
ディスクユーティリティのサイドバーで、お使いのボリュームを選択し、メニューバーから「ファイル」>「マウント」の順に選択します (ボリュームがすでにマウントされている場合、このオプションはグレイ表示になります)。入力を求められたら、管理者パスワードを入力します。
ディスクユーティリティを終了します。
メニューバーの「ユーティリティ」メニューから「ターミナル」を選択します。
構成プロファイルリポジトリを削除します。それには、ターミナルを開いて、以下のコマンドを入力します。
これらのコマンドでは、 プロファイル設定がインストールされていた macOS ボリュームの名前に置き換えてください。
rm /Volumes//var/db/ConfigurationProfiles/MDM_ComputerPrefs.plist
rm /Volumes//var/db/ConfigurationProfiles/.profilesAreInstalled
rm /Volumes//var/db/ConfigurationProfiles/Settings/.profilesAreInstalled
rm /Volumes//var/db/ConfigurationProfiles/Store/ConfigProfiles.binary
rm /Volumes//var/db/ConfigurationProfiles/Setup/.profileSetupDone
終わったら、Apple () メニュー >「再起動」の順に選択します。
スマートカード認証を有効にする前に適用されていた構成プロファイルをすべて再インストールします。
SSHD (Secure Shell Daemon) をスマートカード認証に対応するように設定する
ユーザはそれぞれのスマートカードを使って、ローカルコンピュータや、正しく設定されたリモートコンピュータに対して SSH で認証できます。以下の手順にそって、コンピュータで SSHD をスマートカード認証に対応するように設定してください。
「/etc/ssh/sshd_config」ファイルを更新します。
以下のコマンドを使って「sshd_config」ファイルをバックアップします。
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup_`date "+%Y-%m-%d_%H:%M"`
「sshd_config」ファイルで、「#ChallengeResponseAuthentication yes」を「ChallengeResponseAuthentication no」に、「#PasswordAuthentication yes」を「#PasswordAuthentication no」に変更します。
続いて、以下のコマンドを使って SSHD を再起動します。
sudo launchctl stop com.openssh.sshd
sudo launchctl start com.openssh.sshd
スマートカードを使って SSH セッションを認証したいユーザには、以下の手順を実行してもらいます。
以下のコマンドを使って、スマートカードから公開鍵を書き出します。
ssh-keygen -D /usr/lib/ssh-keychain.dylib
1 つ前の手順で書き出した公開鍵を、ターゲットコンピュータの「~/.ssh/authorized_keys」ファイルに追加します。
以下のコマンドを使って、「ssh_config」ファイルをバックアップします。
sudo cp /etc/ssh/ssh_config /etc/ssh/ssh_config_backup_`date "+%Y-%m-%d_%H:%M"`
「/etc/ssh/ssh_config」ファイルで、行「PKCS11Provider=/usr/lib/ssh-keychain.dylib」を追加します。
ユーザが希望する場合は、さらに以下のコマンドを使って、秘密鍵を ssh-agent に追加できます。
ssh-add -s /usr/lib/ssh-keychain.dylib
SUDO コマンドに対してスマートカード認証を有効にする
以下のコマンドを使って「/etc/pam.d/sudo」ファイルをバックアップします。
sudo cp /etc/pam.d/sudo /etc/pam.d/sudo_backup_`date "+%Y-%m-%d_%H:%M"`
その後、「/etc/pam.d/sudo」ファイルの内容をすべて以下のテキストで置き換えます。
# sudo: auth account password session auth sufficient pam_smartcard.so auth required pam_opendirectory.so auth required pam_deny.so account required pam_permit.so password required pam_deny.so session required pam_permit.so
LOGIN コマンドに対してスマートカード認証を有効にする
以下のコマンドを使って「/etc/pam.d/login」ファイルをバックアップします。
sudo cp /etc/pam.d/login /etc/pam.d/login_backup_`date "+%Y-%m-%d_%H:%M"`
その後、「/etc/pam.d/login」ファイルの内容をすべて以下のテキストで置き換えます。
# login: auth account password session auth sufficient pam_smartcard.so auth optional pam_krb5.so use_kcminit auth optional pam_ntlm.so try_first_pass auth optional pam_mount.so try_first_pass auth required pam_opendirectory.so try_first_pass auth required pam_deny.so account required pam_nologin.so account required pam_opendirectory.so password required pam_opendirectory.so session required pam_launchd.so session required pam_uwtmp.so session optional pam_mount.so
SU コマンドに対してスマートカード認証を有効にする
以下のコマンドを使って「/etc/pam.d/su」ファイルをバックアップします。
sudo cp /etc/pam.d/su /etc/pam.d/su_backup_`date "+%Y-%m-%d_%H:%M"`
その後、「/etc/pam.d/su」ファイルの内容をすべて以下のテキストで置き換えます。
# su: auth account password session auth sufficient pam_smartcard.so auth required pam_rootok.so auth required pam_group.so no_warn group=admin,wheel ruser root_only fail_safe account required pam_permit.so account required pam_opendirectory.so no_check_shell password required pam_opendirectory.so session required pam_launchd.so
スマートカード認証のサンプル構成プロファイル
スマートカード認証の構成プロファイルのサンプルを以下に紹介します。この種類のプロファイルに指定される鍵や文字列の種類を確認する際に、参考にしてください。
PayloadContent PayloadDescription Configures smart card-only PayloadDisplayName Smart card-only PayloadIdentifier com.apple.configprofile.78. PayloadOrganization Apple PayloadType com.apple.security.smartcard PayloadUUID 5A15247B-899C-474D-B1D7-DBD82BDE5678 PayloadVersion 1 UserPairing allowSmartCard checkCertificateTrust enforceSmartCard PayloadDescription Smartcard profile. PayloadDisplayName Smart card-only PayloadIdentifier com.apple.configprofile.77 PayloadOrganization PayloadRemovalDisallowed PayloadType Configuration PayloadScope system PayloadUUID 7D34CC86-C707-44D2-9A9F-C5F6E347BD77 PayloadVersion 1