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認証が気持ちよく動作しました。全環境に当てはまるかどうか不明ですが、参考になれば幸いです。