Mark Hammer's Blog

SalesforceやTrailheadに関する情報を投稿しているブログです。

SalesforceでログインをSSOに限定する方法

はじめに

Salesforceは通常ログイン画面でユーザ名・パスワードを入力してログインしますが、SSOログインも利用可能です。
また、ログイン方法をSSOのみに制限する方法もヘルプで公開しています。
Salesforce Help: SSO を使用したログインをユーザに要求

このヘルプの内容によると、ログイン方法をSSOのみに制限するには以下3点の設定が必要とのことです。

  • 私のドメイン設定にて [ https://login.salesforce.com からログインできないようにする ] を有効にする
  • シングルサインオン設定にて [Salesforce ログイン情報を使用したログインを無効化] を有効にする
  • ユーザプロファイルか権限セットで、ユーザに [シングルサインオンの有効] 権限を付与する

これを見たとき、こんな疑問を浮かべました。
「組織全体に影響するシングルサインオン設定でSalesforce ログイン情報を使用したログインを無効化して、ユーザに [シングルサインオンの有効] 権限を与える…。
これ [シングルサインオンの有効] 権限与えないとSalesforceにログインできなくなるのでは?」
ということで、検証してみました。

検証

まず、SSOログインが可能な環境を作成し、シングルサインオン設定にて [Salesforce ログイン情報を使用したログインを無効化] を有効にします。
その時の動作は以下の通りです。

  • SSOログイン:可能
  • ユーザ名・パスワードでのログイン:可能

[Salesforce ログイン情報を使用したログインを無効化] を有効にした時のログイン履歴

次にユーザプロファイルにて、 [Salesforce ログイン情報を使用したログインを無効化] を有効にした際に表示される [シングルサインオンの有効] 権限を付与します。
その時の動作は以下の通りです。

  • SSOログイン:可能
  • ユーザ名・パスワードでのログイン:「このシングルサインオンゲートウェイ URL は無効です」エラー

[シングルサインオンの有効] 権限を付与した時のログイン履歴

なお、 [シングルサインオンの有効] 権限を付与した場合APIログインもSSOを介さないとログインできなくなります。(ユーザ名・パスワードでのログインだと「このシングルサインオンゲートウェイ URL は無効です」エラー)

おわりに

[Salesforce ログイン情報を使用したログインを無効化] の名前だけ聞くとこの設定を有効にした時点で組織全体がSSOログイン以外無効化するように見えますが、実際はSSOログインに制限するためのユーザ権限である [シングルサインオンの有効] 権限を表示するためのものでした。
また、 [シングルサインオンの有効] 権限の名前だけだと「SSOログインができるようになるために必要な権限」と思われますが、実際には「SSOログインに限定するための権限」でした。
[シングルサインオンの有効] 権限の英語名は "Is Single Sign-On Enabled" ですので、日本語訳としては合っています。
ただ、(もう少し実際の動作に沿った権限名にしてほしかったなぁ…)と思った一件でした。

MFA FAQでは「システム管理者へのSSOログイン有効化はお勧めしません」とされていますが、仮にSSOを使用する場合、 [シングルサインオンの有効] 権限によるSSOログイン限定をシステム管理者のみ外す、という方法はありかな、と思いました。