とある事業で、一つのAzureADをIdPとして複数のGoogle WorkspaceとSAML連携する事になったので、雑にメモを残します。必要になる人がでるかはわからないですが、参考になればと ## 前提 - example.comドメインのAzureAD - example.comドメインのGoogle Workspace - example.co.jpDomainのGoogle Workspace このように example.comのAzureADとGoogle Workspace、そしてexample.co.jpのGoogle Workspaceがあると前提です ## AzureAD側の設定 ### SAMLベースのサインオン ポイントは、識別子をデフォルトの、userprincipalnameから、カスタム値に変更する所です。 ![[貼り付けた画像_2022_01_31_21_11.png]] 通常のままですと、IdP側と同じexample.comをSP側に求める事になりますが、ここでやりたいことは、SP側はexample.co.jpです。 ここでは例えば、[email protected]であれば、最初の変換で、ExtractMailPrefix()で、hogeを抽出。2つ目の変換で、join()を利用して区切り文字に@を指定して、example.co.jpをjoinさせてます。 これにより[email protected]は、SP側の[email protected]と同一アカウントで有ることが定義できます。 ![[Untitled 13.png|Untitled 13.png]] 上記はIDでしたので、ここでは作成されるアカウントのEmail Addressを変換します。内容はIDと同じです。 ![[貼り付けた画像_2022_01_31_21_13.png]] IdPとSPの設定だけならこれでOK。いやいやせっかくAzureAD使うならGoogle Workspace側のアカウント作りたいよ、Provisioningしようぜ!とのことでしたら次の設定 ### **Provisioningの設定** 以下の設定が超重要 AzureADの属性Replace([userPrincipalName], "example.com", , , "example.co.jp", , ) G Suiteの属性primaryEmail 上記の通りマッピングする設定で、example.comをexample.co.jpに置換します。これによりexample.co.jp側にアカウントが作成されます。 ## 最後に これによりGoogleのログイン画面で、[email protected]と入力したら、AzureAD側で[email protected]でログインすることを求められ、パスワードを入力したら、[email protected]にログインする事ができます。 これはまだ普通のSAMLですね。 更に、Googleログイン画面で、[email protected]と入力したら上記と同様に、[email protected]でログインを求められ、入力したらGoogleにもどって、[email protected]にもログインできます。 これによりGoogle IDを2つ以上もっていたメンバーは、大本のexample.comだけ抑えておけば良くなるので、管理コストも下がります。 未来の自分に向けたメモくらいな雑さで :bow: