背景と応用シナリオ
Salesforce は、企業の顧客情報や営業データなど、最も重要なビジネス資産を管理するためのプラットフォームです。この重要なデータを保護するため、Salesforce は多層的なセキュリティ機能を提供しており、その中でも最も基本的かつ強力な機能の一つが Login Hours (ログイン時間) です。
Salesforce 管理者として、私たちの責務は、データの可用性とセキュリティのバランスを保つことです。Login Hours は、ユーザーが Salesforce 組織にアクセスできる時間帯を曜日ごとに制限する機能です。これにより、ビジネスの要件に応じて、特定の時間外でのシステムへのアクセスをブロックし、不正アクセスや内部関係者による意図しない操作のリスクを大幅に軽減することができます。
この機能は、以下のような様々な応用シナリオで非常に有効です。
コンプライアンス要件の遵守
金融、医療、公共部門など、特定の業界では、データアクセスに関する厳格な規制やコンプライアンス要件が存在します。例えば、業務時間外の顧客データへのアクセスを禁止する規定がある場合、Login Hours を設定することで、システムレベルでこの要件を強制し、監査証跡を簡素化することができます。
セキュリティリスクの低減
深夜や休日など、通常の業務時間外に発生するログイン試行は、不正アクセスの兆候である可能性があります。アカウント情報が漏洩した場合でも、Login Hours を設定していれば、攻撃者がアクセスできる時間帯が限定されるため、被害を未然に防いだり、最小限に抑えたりすることが可能になります。
業務プロセスの統制
派遣社員や契約社員など、特定のシフトでのみ業務を行うユーザーに対して、契約された勤務時間外のアクセスを制限したい場合に有効です。これにより、業務の統制を強化し、契約外の労働を防ぐことにも繋がります。
システムメンテナンスとの連携
夜間のバッチ処理やデータ移行、システムのアップグレードなど、大規模なメンテナンス作業を計画している際に、一般ユーザーのアクセスを一時的に制限したい場合があります。Login Hours を利用すれば、メンテナンス時間中のユーザー操作によるデータ不整合のリスクを回避できます。
原理説明
Login Hours の設定は、主に2つのレベルで行われます:Profile (プロファイル) と Permission Set (権限セット) です。これらの設定がどのように相互作用するかを理解することは、効果的なアクセス制御を実装する上で非常に重要です。
設定の階層と優先順位
Login Hours のルールは、ユーザーに割り当てられている Profile とすべての Permission Set の中で、最も制限の厳しいものが適用されるという原則に基づいています。
- Profile (プロファイル): Profile は、ユーザーの基本的な権限と設定を定義するものです。ここに Login Hours を設定すると、その Profile を持つすべてのユーザーに共通のアクセス時間制限が適用されます。これがベースラインのルールとなります。
- Permission Set (権限セット): Permission Set は、特定のユーザーに追加の権限を付与するためのものです。Profile の設定を上書きするのではなく、追加の制限として機能します。例えば、ある Profile で「月曜~金曜の 9:00~18:00」が許可されているユーザーに、「月曜は 10:00~17:00」という Login Hours を持つ Permission Set を割り当てると、そのユーザーは月曜には 10:00~17:00 の間しかログインできなくなります。両方の条件を満たす、より狭い時間帯が適用されるのです。
この「最も制限の厳しいルールが優先される」という挙動を理解しておくことで、柔軟かつ厳格なアクセス制御ポリシーを設計することができます。
セッションの挙動
もう一つ重要な点は、Login Hours の時間外になったときに、すでにログインしているユーザーのセッションがどうなるかです。Salesforce は、時間になった瞬間に強制的にログアウトさせるわけではありません。
ユーザーは、現在開いているページを引き続き表示し、閲覧することは可能です。しかし、レコードの保存、新しいタブへの移動、レポートの実行など、サーバーへのリクエストを伴う次のアクションを実行しようとした瞬間に、セッションが切れ、ログインページにリダイレクトされます。この挙動は、作業中のユーザーが突然データを失うことを防ぎつつ、時間外の操作を確実にブロックするための仕様です。
タイムゾーンの基準
Login Hours の設定時間は、個々のユーザーのタイムゾーン設定ではなく、Salesforce 組織全体のデフォルトタイムゾーンに基づいています。この設定は、「設定 > 組織情報 > 既定のタイムゾーン」で確認・変更できます。グローバルに展開している企業で、複数のタイムゾーンにまたがってユーザーがいる場合、この仕様は特に注意が必要です。組織のタイムゾーン(例: JST)を基準に設定する必要があるため、海外のユーザーにとっては意図しない時間帯にアクセスが制限される可能性があります。
設定手順
Salesforce 管理者として Login Hours を設定する手順は、非常に直感的です。ここでは、Profile と Permission Set の両方での設定方法を解説します。
プロファイルでの設定
組織全体の大部分のユーザーに共通の業務時間を適用する場合、Profile で設定するのが最も効率的です。
- [設定] に移動し、[クイック検索] ボックスに「プロファイル」と入力し、[プロファイル] を選択します。
- Login Hours を設定したいプロファイル(例:「標準ユーザー」)の名前をクリックします。
- プロファイルの詳細ページで、[ログイン時間] を見つけて、その横にある [編集] をクリックします。
-
曜日のグリッドが表示されます。ここで、ログインを許可する時間帯を設定します。
- [開始時刻] ドロップダウンリストからログインを許可する開始時間を選択します。
- [終了時刻] ドロップダウンリストからログインを許可する終了時間を選択します。
- 例えば、月曜日から金曜日の午前9時から午後6時までを許可する場合、月曜日の行で「午前 9:00」と「午後 6:00」を選択し、火曜日から金曜日まで同様に設定します。
- 特定の日を終日アクセス不可にするには、開始時刻と終了時刻を同じ値(例:「午前 0:00」と「午前 0:00」)に設定します。
- [すべての時間をクリア] ボタンをクリックすると、すべての設定がリセットされます。
- 設定が完了したら、[保存] をクリックします。
これで、このプロファイルを持つすべてのユーザーは、指定された時間帯にのみ Salesforce にログインできるようになります。
権限セットでの設定
特定のユーザーグループに対して、プロファイルで設定された時間よりもさらに厳しい制限を加えたい場合に、Permission Set を使用します。
- [設定] に移動し、[クイック検索] ボックスに「権限セット」と入力し、[権限セット] を選択します。
- [新規] をクリックして新しい権限セットを作成するか、既存の権限セットを編集します。
- 新規作成の場合、表示ラベル(例:「短時間勤務者向けログイン時間」)と API 参照名を入力し、[保存] をクリックします。
- 権限セットの概要ページで、[システム権限] をクリックします。
- [編集] をクリックします。
- 権限のリストをスクロールダウンし、一番下にある [ログイン時間] を見つけて、その横にある [編集] をクリックします。
- プロファイルの設定画面と同じ曜日のグリッドが表示されます。ここで、より制限の厳しい時間帯を設定します。
- 設定後、[保存] をクリックし、システム権限ページの [保存] もクリックします。
- 最後に、この権限セットを対象のユーザーに割り当てます。権限セットのページ上部にある [割り当ての管理] をクリックし、ユーザーを追加してください。
この権限セットが割り当てられたユーザーは、自身のプロファイルのログイン時間と、この権限セットのログイン時間の両方を満たす時間帯(つまり、より狭い範囲)でのみアクセスが可能になります。
注意事項
権限
Login Hours を設定・変更するには、「プロファイルと権限セットの管理」というシステム権限が必要です。通常、この権限はシステム管理者のプロファイルに付与されています。
API アクセスへの影響
Login Hours の制限は、ユーザーインターフェースからのログインだけでなく、API を経由したアクセスにも適用されます。データローダー、外部連携システム、カスタムアプリケーションなどが、Login Hours が設定されたユーザーの認証情報を使用している場合、許可された時間外には API コールがすべて失敗します。これにより、夜間のバッチ処理が停止するなどの問題が発生する可能性があります。
この問題を回避するため、連携専用のユーザー(Integration User)を作成し、そのユーザーには Login Hours の制限がない、API 専用のプロファイルを割り当てることを強く推奨します。
エラーメッセージの曖昧さ
ユーザーが許可時間外にログインしようとすると、「ユーザー名とパスワードを確認してください。それでもログインできない場合は、Salesforce のシステム管理者に連絡してください。」という一般的なエラーメッセージが表示されます。これは、攻撃者に「今は時間外だから入れない」というヒントを与えないためのセキュリティ上の配慮です。管理者には、ユーザーからログインできないという問い合わせがあった場合、まずそのユーザーのプロファイルと権限セットで Login Hours の設定を確認する、という初動が求められます。
他のセキュリティ機能との組み合わせ
Login Hours は、Login IP Ranges (ログイン IP アドレスの制限) と組み合わせて使用することができます。その場合、ユーザーは「許可された時間帯」かつ「許可された IP アドレス」の両方の条件を満たさなければログインできません。この二つを組み合わせることで、非常に強固なアクセス制御を実現できます。
まとめとベストプラクティス
Login Hours は、Salesforce 組織のセキュリティとコンプライアンスを強化するための、シンプルでありながら非常に効果的なツールです。管理者としてこの機能を正しく理解し、活用することで、データ保護レベルを一段と高めることができます。
以下に、Login Hours を運用する上でのベストプラクティスをまとめます。
- 最小権限の原則を適用する: まず、最も一般的な業務時間をベースラインとして各プロファイルに設定します。その後、特定の要件を持つユーザーグループに対しては、Permission Set を使ってより厳しい制限を追加していくアプローチが、管理しやすく柔軟です。
- インテグレーションユーザーを分離する: API を使用するシステム連携用には、必ず専用のユーザーアカウントを用意し、そのプロファイルには Login Hours を設定しないでください。これにより、ビジネスユーザーのアクセス制御とシステムの安定稼働を両立できます。
- ユーザーへの事前通知: Login Hours を新たに導入・変更する際は、対象となるユーザーに事前にその旨を通知し、なぜこの変更が必要なのかを説明することが重要です。これにより、導入後の混乱や問い合わせを減らすことができます。
- 定期的なレビュー: 組織のポリシーや働き方が変化するのに合わせて、設定された Login Hours が依然として適切であるか、定期的にレビューする習慣をつけましょう。不要になった制限が残っていないか、逆に新たに追加すべき制限がないかを確認します。
- サンドボックスでのテスト: 本番環境に適用する前に、必ず Sandbox 環境でテストを行ってください。テストユーザーを作成し、意図した通りにアクセスが制限されること、そして許可されるべき時間には問題なくアクセスできることを確認します。特に、既存の API 連携への影響がないかは入念にテストすべきです。
Salesforce 管理者としてこれらのベストプラクティスを実践することで、Login Hours を最大限に活用し、安全で統制の取れた Salesforce 環境を維持することができるでしょう。
コメント
コメントを投稿