はじめに
GMOトラストログインのSAML認証は、現在公式でGoogle Cloudとの連携方法について公開していません。
参考: トラストログインサポートページ
2025年3月上旬にサポートへ問い合わせた時点でも、公式にサポートされているサービスには含まれていない旨確認できました。
しかし、トラストログインとGoogle CloudをSAML認証する設定方法は存在します。
未だになかなか検索で情報が出てこないようでしたので、今回はその設定手順を解説していきます。
本記事はあくまでも非公式情報である点、ご了承下さい。
設定手順
これから順に記載していきますが、手順は以下のそれぞれのサービスの権限を所有していることが前提となりますのでご注意下さい。
- トラストログインのアカウントを所有し、アプリの作成やメンバーの追加権限を所有していること
- Google Cloudでアカウントを所有し、かつ組織を設定していること。さらに、Workforce Identityの設定やIAMの設定を行える権限を持つユーザーであること
トラストログインでアプリを追加する
はじめにトラストログイン側でアプリを用意します。
「SAMLアプリ登録」を選択しましょう。
次に任意のアプリケーション名を設定します。
後で変更可能なものですので、考えすぎず分かりやすい名前を設定しましょう。
続いてIDをプロバイダーの情報から「メタデータをダウンロード」を選択します。
選択すると、ローカルにxmlファイルがダウンロードされます。
Google CloudでWorkforce Identityの設定を設定
次はGoogle Cloud側の設定です。
SAML認証を設定したいプロジェクトを開いた状態で、「IAMと管理」から「Workforce Identity の連携」を選択します。
右側にあるプルダウンメニューから、組織を選択します。
(注意: 組織を設定していないアカウントで開くと、「プロジェクトではページを表示できません。 この機能には組織が必要です」の右側にプルダウンメニューは表示されません)
続いて、「プールを作成」を選択します。
新しい Workforce プールとプロバイダを追加のページで、プールIDを設定します。
今回は例として「trustlogin-sample」という名前でプールを作成しました。
設定できるIDの条件は以下のとおりです。
- 英小文字、数字、ハイフン
- 長さは 6 文字以上
- グローバルでユニーク(一意)である
1つのプールに対して、複数のプロバイダを設定できます。
ただし、セッション継続時間やロールの設定はプールに対してのみ設定できるため、
紐づくプロバイダ全てに反映される点、分け方に注意が必要です。
「次へ」を選択すると、以下の画面に切り替わります。
IDが問題なければ、自動的に次のプロバイダ作成画面に遷移します。
以下のような画面になるので、少し待ちます。
「プロバイダ ベンダーを選択」を選択します。
(2025年3月頃には存在しなかったメニューですね)
この中にトラストログインは現時点で存在しませんので、「汎用IDプロバイダ」を選択します。
認証プロトコルは「SAML」を選択します。
SAMLを選択した瞬間、以下の入力フォームが追加で表示されます。
プロバイダ名、プロバイダID、そしてトラストログイン側でダウンロードしたxmlファイルをアップロードします。
入力が問題なければ「続行」を選択します。
今回は例として「sample」というプロバイダ名で追加しました。
続いてプロバイダ情報が表示されます。
それぞれコピーしてトラストログイン側に設定する必要のある値ですので、何かのエディタにコピペでメモするなり準備しておきましょう。
(後からでもこれらの値の内容は確認できます)
なお、エンティティIDは、以下の構成のURLになります。
https://iam.googleapis.com/locations/global/workforcePools/{POOL名}/providers/{プロバイダ名}
そしてサービスへのACS URLは、以下の構成のURLになります。
https://auth.cloud.google/signin-callback/locations/global/workforcePools/{POOL名}/providers/{プロバイダ名}
準備ができたら「続行」を選択します。
最後に属性のマッピングの設定ですが、こちらは初めからデフォルトで入力されている以下画像のままの内容で問題ありません。
カスタマイズしたい方はこちらの公式ドキュメントを参考に設定しましょう。
最後に「送信」を選択すると、プロバイダの設定は完了です。
Google Cloudでプールのプリンシパルに IAM ロールを付与する
作成したプールの表示で「IAM プリンシパル」が確認できます。
このプリンシパルに権限を付与することで、SAMLでログインしたメンバーの権限を管理することが出来ます。
ローカルPCまたはCloud Shellを使って、作成したプールのプリンシパルと使用するプロジェクトのID、さらに付与するロールを指定することで、権限を追加できます。
gcloud projects add-iam-policy-binding PROJECT_ID \
--role="ROLE" \
--member="PRINCIPAL_ID"
例えば、project IDがhogehoge、roleを閲覧者に設定する場合、
以下のようにコマンドを実行します。
(※今回作成したサンプルのプール名を指定しております)
gcloud projects add-iam-policy-binding hogehoge \
--role="roles/viewer" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/trustlogin-sample/*"
実行できない場合は、プロジェクトの設定、または実行者に権限が足りない等の原因である可能性が考えられますので、組織のオーナー等に相談して下さい。
一度プロジェクトに紐づけば、あとに権限を編集したい時に
そのプロジェクトのIAMページでWorkload Identity IDでプリンシパルを検索すれば、
そこから編集が可能です。
トラストログインでサービスプロバイダーの設定
トラストログインでアプリ作成画面に戻り、サービスプロバイダーの設定の入力を進めます。
以下の内容が必須と思われる項目です。
| 項目 | 内容 |
|---|---|
| ログインURL | TrustloginのIDプロバイダーURLと同じ |
| SP認証成功後の移行URL | https://console.cloud.google/welcome?project=PROJECT_ID (※1) |
| エンティティID | https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID (※2) |
| ネームIDフォーマット | emailAddress |
| サービスへのACS URL | https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID (※3) |
※1: 任意のサービスページに設定可能
※2: プロバイダ作成時にメモをしたエンティティIDのURL
※3: プロバイダ作成時にメモをしたリダイレクト URL
SAML属性の設定は任意ですが、ここでは以下のように設定しました。
| 属性指定名 | 属性種類 | 属性名 | 属性値 |
|---|---|---|---|
| user | Unspecified | user | メンバー ,メールアドレス |
最後に画面最上部から「登録」を選択してアプリを保存しましょう。
登録後、アプリには必ず今回の設定を検証するメンバーもしくは所属するグループの追加をお忘れなく!
ログイン確認
トラストログインで作成したアプリのログインURLから、実際にGoogle Cloudへログイン確認してみましょう。
シンプルな画面に「続行」ボタンが表示されていますので、選択します。
無事Google Cloudのコンソールにログイン出来れば成功です。
おわりに
いかがでしたでしょうか?
もしトラストログインでアカウント管理を一元化している組織がございましたら、参考にしていただければ幸いです。
そして公式でサポートされればもっと幸いですね。
ここまで読んでいただきありがとうございました。
















