Salesforce で G Suite を IdP として SAML認証を設定する
当社で Salesforce を導入することになったのですが、せっかく G Suite を導入しているので、G Suite の認証でシングル・サインオンさせたいと思い、SAML認証設定に初挑戦してみました。「チュートリアル通りにやっても失敗する」というよくある事例のメモです。
参考サイト
このあたりを見ながらやりました。
ちなみにこのヘルプは認証の方向が逆方向 (Salesforce認証でG Suiteにログインする) ですのでご注意ください。
ポイント
いきなり雑な説明になりますが、基本は上述のGoogle公式のサポートサイトに詳しく手順が書かれているので、それ通りに進めていけばOKです。Yutaka Kato さんの Github の記事もわかりやすく大変参考になります。
私がハマったのは下記の3点です。ちなみに Salesforce 公式サポートにサポートを依頼したところ、SAML認証の設定は「開発者サポート」に該当するため、当社のサポート契約の範囲外であると言われてしまいました。開発者…まあ微妙なところですね。
(1) Google公式のサポートサイトに「https://[ドメイン名].my.salesforce.com?so={Salesforce から提供されるドメイン固有の ID}」という表現がありますが、この「?so={Salesforce から提供されるドメイン固有の ID}」がどうやっても見当たりませんでした。最初にSalesforce 公式サポートの扉を叩いたのも、この「固有のID」ってどこにあるんですか、を確認するためでした。結論から言うと、当社環境ではこの「?so={Salesforce から提供されるドメイン固有の ID}」はまるっと省略しても動作しました。サポートサイトが間違っているのか、当社特有の状況なのかは分かりません。
(2) Salesforce 側のSAML設定 (設定→ID→シングルサインオン設定) において「SAML ID種別」という欄があるのですが、ここは「アサーションには、ユーザオブジェクトの統合 ID が含まれます」を選択しておいてください。
(3) (2) とセットになりますが、Salesforce側でユーザーを作成する際に、「シングルサインオン情報」というセクションがありますので、この「統合ID」の欄に必ず G Suite アカウント (メールアドレス) を記入してください。
以上で当社環境では SAML認証が気持ちよく動作しました。全環境に当てはまるかどうか不明ですが、参考になれば幸いです。