Okta から Google Workspace への SSO を実装する
はじめに
Okta で一元的に ID を管理している環境で、Google ドライブといった Google Workspace で管理される Google サービスに対してユーザがアクセスを試みると、Okta の認証を経て Google Workspace にシングルサインオンするアーキテクチャを SAML で実現するための設定を検証しました。
シングルサインオンの実現方法
Okta による Google Workspace とのシングルサインオンと Google サービスへのアクセスは SAML と ユーザプロビジョニング の仕組みによって実現します。
SAML
シングルサインオンを実現する仕組みとして SAML や OAuth2.0/OIDC などのプロトコルがあります。Okta と Google Workspace はいずれのプロトコルもサポートしていますが、Okta ドキュメントの以下一文を参照し SAML を採用して設定します。
可能であれば、SSOにはSAMLを使用してください。すべてのWebベースのセッションがIDプロバイダーとしてOktaを使用する必要があるため、一元化されたアクセス管理が可能になります。
SAML(Security Assertion Markup Language) は、IdP(Identity Provider) と SP(Service Provider)の間で認証情報を安全に交換するための規格です。SAML において IdP はユーザ ID を管理しユーザ認証を提供するコンポーネントであり、SP は IdP から受け取った認証情報を利用してユーザがアクセスするコンポーネントとして定義されています。今回の検証においては IdP = Okta, SP = Google Workspace の位置づけとなります。
ユーザが IdP での認証に成功すると、IdP は SAML レスポンス に含まれる SAMLアサーション と呼ばれる認証証明書をユーザに発行します。Google Workspace がこの証明書を検証し信頼することで、ユーザはパスワードを再入力することなくログイン(シングルサインオン)できるようになります。

ユーザプロビジョニング
SAML はユーザ認証を提供しますが、Google Workspace 側にそのユーザのアカウント実体(Google アカウント)が存在しなければ Google にはログインできません。これは Google サービスを利用するうえで Google アカウントがユーザプロビジョニングは、Okta のユーザ情報を Google Workspace に自動的に同期(作成/インポート・更新・削除)する仕組みです。この仕組みにより Okta でユーザを管理するだけで Google Workspace に Google アカウントとして同期され、ユーザを一元的に管理できるようになります。
実装してみた
以下ドキュメントを参考に実装していきます。
0. 検証環境準備
今回は Google Workspace の代わりに Cloud Identity を利用して検証を行います。Cloud Identity は Google Workspace の ID 管理やエンドポイント管理のみを利用できるようにしたサービスです。Cloud Identity Free Edition は 50 ユーザ制限がありますが無償で利用ができ、Google ドライブへのアクセスも可能なことから検証環境として利用しています。Cloud Identity も Google Workspace も同一の管理コンソールから同じ手順でユーザ作成やシングルサインオン設定が可能です。表現上の混乱を避けるため、以降の手順では Cloud Identity の操作を 「Google Workspace」 と統一して表現しますのでご了承ください。
本検証では Google Workspace に既にユーザが存在する前提 で検証を行います。既に存在するユーザを Okta にインポートし、Okta でユーザ管理できるようにしていきます。
また、シングルサインオンの設定ミスにより発生する Google Workspace へのログイントラブルを回避するため、シングルサインオンテスト用の Google グループを作成し、 作成した Google グループのユーザのみをシングルサインオンさせる構成とします。
- Google Workspace に以下2つのシングルサインオン用ユーザを作成。(※各ユーザに Google Workspace 上での権限は何も付与していません)
- SAML-Test-User 01 :
saml-test-user-01@example.com - SAML-Test-User 02 :
saml-test-user-02@example.com
- SAML-Test-User 01 :
- Google グループ
Okta-SAML-Groupを作成し、上記ユーザをグループに追加。(※後ほどの手順でOkta-SAML-Groupに対してのみ SSO を適用するように構成します。)

また、本検証ではそれぞれ以下の権限で設定をしていきます。
- Okta: スーパー管理者
- Google Workspace: 特権管理者

検証環境準備時点の状態
1. Okta SSO 設定
まずは Okta で Google Workspace への SSO 設定を行います。Okta 公式ドキュメント の「1クリックでSSOを構成する」を参照して設定を行います。なお、 1クリックでの SSO 構成機能については 2025/10/27 執筆時点では早期アクセスリリースとなっているため手動構成の手順で対応します。
Okta Admin Console にログインし、[アプリケーション] -> [アプリケーション] から [アプリカタログを参照] をクリックします。

検索窓に「google workspace」と入力し、検索結果から [Google Workspace] を選択します。

[+ 統合を追加] をクリックします。

[アプリケーションラベル] にシングルサインオン連携するアプリケーションの識別名を入力します。今回は Google Workspace (Okta-SAML-Group) としました。
[GoogleAppsの会社のドメイン] には Google Workspace で管理するドメインを example.com のように入力します。
その他設定はデフォルトのままとし、[次へ] をクリックします。

サインオン方法を [SAML 2.0] にします。

[SAML 2.0] の設定項目の下部にある [設定手順を表示] をクリックします。

遷移したページの半ばあたりにある以下の項目は後ほど Google Workspace の SAML 連携設定で利用しますので、各種設定値をコピーしておきます。
- IdPエンティティID
- サインインページのURL
- サインアウトページのURL
- パスワード変更のURL

また、[検証証明書] のリンクをクリックしてダウンロード証明書をダウンロードしておきます。デフォルトで okta.cert という名前でローカルにダウンロードされます。こちらも後ほど Google Workspace の SAML 連携設定で利用します。
Okta Admin Console の画面に戻り [完了] をクリックします(残設定はありますがここで一旦完了しておきます)。


Okta SSO 設定 完了時点の状態
2. Okta による Google Workspace API 統合
このあと Google ユーザとグループを自動でプロビジョニングするように Okta を構成する必要があります。これにより、Okta に追加や削除されたユーザを Google Workspace に自動で同期することができるようになります。
また、Google Workspace の既存ユーザ/グループを Okta で管理するためには インポート が必要となります。
プロビジョニングやインポートを実行するには Okta の Google Workspace アプリケーションを Google Workspace の API にアクセスできるよう特権管理者によりユーザ認証し、アクセスのための認証トークンを生成する必要があります。
Okta Admin Console の [アプリケーション] -> [アプリケーション] から、1 の手順で作成したアプリケーションを選択します(1の手順が完了した直後は自動で遷移します)。

[プロビジョニング] タブを選択します。

ページ下部にある [API統合を構成] をクリックします。

表示された [API統合を有効化] にチェックを入れます。また、今回は Google グループをインポートするため [グループをインポート] にもチェックを入れておきます。その後 [Google Workspaceで認証] をクリックします。

[Google Workspaceで認証] をクリックすると Google のログイン画面が表示されるため、Google Workspace の特権管理者のアカウント でログインします。

Okta に対するアクセス許可を求めるポップアップが表示されるため [許可] をクリックします。

認証が成功すると Okta の設定画面上で「Google Workspaceが正常に検証されました。」という表示が確認できます。

最後に [保存] をクリックします。

Okta による Google Workspace API 統合 完了時点の状態
3. Okta ユーザプロビジョニング設定
Okta から Google Workspace にアクセスできるようになりましたのでユーザプロビジョニングとインポートを行います。先にインポートを実施することもできますが、ユーザプロビジョニングの設定を行うことでインポートしたユーザを Okta 側から管理することができる(Okta で実施したインポートユーザの属性変更を Google Workspace に反映するといった管理ができる)ため、プロビジョニング設定を先に実施します。
[プロビジョニング] タブを選択し、[編集] をクリックします。

以下の項目をすべて 有効化 にします。
| 設定値 | 概要 |
|---|---|
| ユーザーを作成 | Okta で作成したユーザが Google Workspace に同期される |
| ユーザー属性を更新 | Okta で変更したユーザ属性が Google Workspace に同期される |
| ユーザーの非アクティブ化 | Okta でユーザを非アクティブにすると Google Workspace 上でも非アクティブになる |
| ユーザーパスワードを同期する | Okta 上で設定したユーザパスワードが Google Workspace のユーザパスワードに同期される |
また、本検証ではパスワードタイプを [Okta パスワードを同期] にします。
さらに、属性マッピングの設定により Okta のカスタム属性含む特定の属性を Google Workspace の特定の属性にマッピングすることができます。本検証ではデフォルト設定のままとします。

4. Okta ユーザのインポートとプロビジョニング実行
ユーザインポートを行い Google Workspace の既存ユーザを Okta で管理できるようにします。
[インポート] タブを選択し、[今すぐインポート] をクリックします。

Google Workspace 上のユーザとグループのスキャン結果が表示されるため、[OK] をクリックします。なお、この時点ではユーザ/グループのスキャンのみが行われ、インポートは完了していません。

本検証用に作成した以下 2 ユーザが見つかりましたので、チェックボックスにチェックを入れ [割り当てを確定] をクリックします。
- SAML-Test-User 01 :
saml-test-user-01@example.com - SAML-Test-User 02 :
saml-test-user-02@example.com

表示されたポップアップ上で [確定後にユーザーを自動的にアクティブ化] にチェックを入れ、[確定] をクリックします。

インポートしないユーザについては [未確定のユーザーを消去] をクリックし、インポートユーザから削除しておきます。この操作は Okta 上でスキャンしたユーザ情報が削除されるだけで、Google Workspace 上のユーザへの影響はありません。

[インポートの結果を消去] をクリックします。

インポートした結果を確認していきます。
[ディレクトリ] -> [ユーザー] にてインポートしたユーザが「ユーザーアクション保留中」のステータスで存在することがわかります。

ユーザ名をクリックし、[グループ] タブをクリックします。Google Workspace 上のグループ Okta-SAML-Group が Okta グループとしてインポートされており、対象ユーザが所属していることが確認できます。

ここで、プロビジョニングの動作も確認してみます。以下のユーザ情報にアクセスし、[プロファイル] タブを選択して [編集] をクリックします。
- SAML-Test-User 02 :
saml-test-user-02@example.com

[名 firstName] を 02 から okta-02 に変更してみます。変更後、設定画面最下部にある [保存] をクリックします。

Google Workspace の Admin Console にログインし、ユーザ情報を確認すると [名] の情報が okta-02 に変更されていました。Okta によるユーザの一元管理がプロビジョニングによって実現できることを確認できました。


Okta ユーザプロビジョニング設定 / Okta ユーザのインポートとプロビジョニング実行 完了時点の状態
5. Okta ユーザアクティブ化
次に Okta 上でユーザを利用できるように、ユーザのアクティブ化を行っていきます。
ユーザ設定画面の上部にある [パスワードの設定およびアクティブ化] をクリックします。

表示されたポップアップ上の [パスワードの設定およびアクティブ化] をクリックします。

一時パスワードが発行されるためコピーしておきます。

一度サインアウトし、対象ユーザで Okta にログインします。パスワードは上記でコピーした一時パスワードを利用します。
その後、新しいパスワードを入力し [パスワード変更] を行います。必要に応じて二要素認証の設定などを行います。
ログインするとダッシュボード上に Google Workspace のアプリケーションが表示されますが、SSO の設定が完了していないためこの時点では利用できません。

一旦、対象ユーザからサインアウトします。
5. Google Workspace SAML 設定
ここからはドキュメントを参照し Google Workspace 側で SAML による Okta との連携設定を行います。
「1. Okta SSO 設定」の手順でコピーした以下情報を改めて用意します。
- IdPエンティティID
- サインインページのURL
- サインアウトページのURL
- パスワード変更のURL
また、「1. Okta SSO 設定」の手順でダウンロードした検証証明書(okta.cert)も用意します。
Google Workspace の Admin Console に 特権管理者アカウントでログイン します。
[セキュリティ] -> [認証] -> [サードパーティの IdP による SSO] を選択し、[サードパーティの SSO プロファイル] 項目の [SAML プロファイルを追加] をクリックします。

[SSO プロファイル名] を入力します。ここでは Okta とします。

「1. Okta SSO 設定」の手順でコピーした情報を [IdP の詳細] の各項目に入力します。

[確認用の証明書] で [証明書をアップロード] をクリックし、「1. Okta SSO 設定」の手順でダウンロードした検証証明書(okta.cert)をアップロードします。アップロード後、ページ最下部にある [保存] をクリックします。

SAML プロファイル保存後に表示される画面で [エンティティ ID] として以下の URL が表示されます。<RPID> に該当する識別子はこの後の手順で利用するためコピーしておきます。
https://accounts.google.com/samlrp/<RPID>

[セキュリティ] -> [認証] -> [サードパーティの IdP による SSO] を選択し、[SSO プロファイルの割り当ての管理] 項目の [管理] をクリックします。

今回の検証では Google グループ Okta-SAML-Group に所属するユーザのみを Okta によるシングルサインオンの対象とするため、[グループ] から [グループを検索] で Okta-SAML-Group を検索して選択します。

[SSO プロファイルを選択] で先ほど作成した SAML プロファイルである Okta - SAML を選択し、[Google でユーザー名の入力を求めた後、このプロファイルの IdP ログインページにリダイレクトする] をクリックします。その後、[オーバーライド] をクリックします。
この設定により Okta-SAML-Group に所属するユーザが Google にログインを試みると SAML プロファイルで設定した URL にリダイレクトされ、SAML による認証のプロセスが行われることとなります。


Google Workspace SAML 設定 完了時点の状態
6. Okta RPID の更新
最後に改めて Okta に戻り、前述の手順でコピーした RPID を設定します。
Okta Admin Console にログインし、[アプリケーション] -> [アプリケーション] から Google Workspace (Okta-SAML-Group) を選択します。
[認証] タブを選択し、[編集] をクリックします。

[高度なサインオン設定] で [RPID] に前述の手順でコピーした RPID を入力し、[保存] をクリックします。


Okta RPID の更新 完了時点の状態
確認してみた
以下のユーザで Google ドライブへのアクセスを試みます。
- SAML-Test-User 01 :
saml-test-user-01@example.com


Okta のログイン画面にリダイレクトされました。

Okta でのユーザ認証が成功すると Google ドライブの画面が表示されました。

実現したかった以下の動作が確認できました。

おわりに
Okta と Google Workspace による SSO を設定してみました。
設定自体は非常に簡単であるものの、構成ミス等でのトラブルシュートが難しい内容でもあるため、本手順が設定にお困りの皆様のご助力となれば幸いです。






