こんにちは、 ネクストモード株式会社 のSaaSおじさん久住です。
企業での生成AI活用が急速に進む中、「いかに安全に使うか」はIT管理者の皆様にとって大きな課題です。
特にChatGPTのような強力なツールは、ID管理と認証の強化が不可欠です。
そこで今回は、ChatGPTへのログインを「Okta」の認証(SSO)に統一し、セキュリティを強化する手順をご紹介します 。
流行語大賞に「チャッピー」がノミネートされましたが、今回はChatGPTと呼ばせていただきます。
ChatGPTへのログインが個々のメールアドレスとパスワード(またはGoogle/Microsoftアカウント認証)のままでは、以下のような課題があります。
ID管理の煩雑化:入退社時のアカウント発行・停止が面倒。
セキュリティリスク:パスワード漏洩や、退職者アカウントの残存リスク。
利便性の低下:利用するSaaSごとにログインが必要。
Oktaと連携することで、これらの課題を解決できます。
管理の効率化:OktaでIDを一元管理。入退社時の対応がOktaだけで完結。
セキュリティ向上:Oktaの強力な認証ポリシー(多要素認証など)をChatGPTにも適用できる。
利便性向上:Oktaに一度ログインすれば、他のSaaSと同様にChatGPTにもシームレスにアクセスできる。
まず、OktaとChatGPTの連携には、ChatGPT側で特定のライセンスが必要です。
ChatGPT Business: SAML 2.0 (SSO)
ChatGPT Enterprise: SAML 2.0 (SSO) , SCIM 2.0 (プロビジョニング)
今回は、SAML 2.0 (SSO) の設定を行います。
※SCIMは、Okta側でのユーザー追加・削除をChatGPTに自動反映させる「プロビジョニング」機能で、Enterpriseライセンスが必要です。
また、OktaとChatGPTの管理者権限と、自社のDNS設定を変更できる権限が必要です。
作業は大きく分けて下記の流れで進みます。
最初に、ChatGPTの管理画面で「このドメインは自社のものです」ということを証明する作業(ドメイン認証)を行います。
ChatGPTに管理者アカウントでログインし、「ワークスペース設定」をクリックします 。
左メニューの「IDとアクセス」を開き、管理者コンソールにアクセスします。
OpenAI管理者画面の「IDとアクセス」から「ドメインを追加する」をクリックします 。
自社のメールドメイン(例: yourcompany.com)を入力し、「追加」をクリックします 。
TXTレコードの値が表示されるので、この値をコピーします。
自社のDNS管理画面(例:AWS Route 53、お名前.comなど)を開き、コピーした値でTXTレコードを追加します 。
すでにTXTレコードが存在する場合は値を追加します。
DNSの設定が反映されるまで少し待ち(数分〜数時間かかる場合があります)、ChatGPTの画面に戻り「ドメインをチェックする」をクリックします 。
検証が成功すると、ドメインがアクティブになります 。
OpenAI管理者画面の「IDとアクセス」から「SSOの設定」をクリックします。
アイデンティティプロバイダーの選択画面で「Okta SAML」をクリックします。
OktaとのSSO連携の手順ドキュメントが表示されるので、それに沿って設定を進めていきます。
Okta管理画面のアプリケーションから「アプリ統合を作成」をクリックします。
サインイン方法として「SAML 2.0」を選択し、「次へ」をクリックします 。
アプリ名、アプリのロゴ(オプション)を設定し、「次へ」をクリックします。
ChatGPTのSSO連携の手順ドキュメントに記載のSingle sign-on URLとAudience URL (SP Entity ID)をコピーします。
コピーした情報をOkta管理画面に戻り入力します。
下にスクロールし、「属性ステートメント」に以下の4つを設定します。これはOktaからChatGPTへ渡すユーザー情報です。
「これは当社が作成した社内アプリです」にチェックをいれて「終了」をクリックします。
作成したアプリの「サインオン」タブを開き、「メタデータの詳細」セクションにある「メタデータURL」をコピーします 。
ChatGPTのSSO連携の手順ドキュメントにてメタデータURLを貼付け、Continueをクリックします
Oktaで作成したアプリケーションの割り当てから利用するユーザーに割り当てます。
グループ単位でも割り当て可能です。
「あれ?さっき『SAMLアプリ』を作ったのに、なぜ『Bookmarkアプリ』も必要なの?」と疑問に思うかもしれません。
この2つは役割が違います。
SAMLアプリ : ChatGPTとOktaがSAML認証(技術的なやり取り)をするための「裏方」の仕組みです。これがSAML連携の本体です。
Bookmarkアプリ : Oktaのダッシュボードに表示され、ユーザーがクリックするための「入り口」(ショートカット)です 。
ユーザーがこのBookmarkアプリをクリックすると、指定されたChatGPTのログインURL に誘導されます(SP-Initiated SSO)。
するとChatGPT側が「あ、この人はSSO対象だ」と認識し、自動的にOktaのSAMLアプリ(裏方)に認証を依頼し、シームレスにログインが完了します。
もしSAMLアプリだけだと、OktaダッシュボードからワンクリックでChatGPTを開くことができない(IdP-Initiated SSOに対応していない)ため、ユーザーの利便性のためにこのBookmarkアプリの作成が推奨されています。
Okta管理画面で「アプリケーション」に戻り、「アプリカタログを参照」をクリックします 。
「Bookmark App」を検索し、選択します 。
「統合を追加」をクリックします 。
ChatGPTのSSO連携の手順ドキュメントのCreate Bookmark AppのURLをコピーします。
コピーしたURLをBookmarkアプリの一般設定のURLに追加します
作成したBookmarkアプリにも、SAMLアプリと同じユーザー・グループを割り当てます 。
ChatGPTのSSO連携の手順ドキュメントに戻り8 Test Single Sign-onにて「Continue to sign-in」をクリックし、テストします。
Oktaのログイン画面にリダイレクトされます 。SSO対象として割り当てたOktaユーザーでログインします 。
"Single Sign-On Test succeeded" と表示されればテスト成功です!
テストが成功したら、OpenAI管理者画面に戻り、SSOの設定を「必須」に変更します 。
OpenAIの管理画面では、SSOを適用する範囲をログイン画面ごとに細かく設定することが可能です 。
chatgpt.com(プロンプト入力画面)へのログイン platform.openai.com(APIキー管理など)へのログインadmin.openai.com(この管理画面自体)へのログイン設定手順自体は、ドメイン認証とOktaでのアプリ作成(SAMLとBookmark)、メタデータURLの交換が中心で、ドキュメントに従えば比較的スムーズに進められました。
一番のポイントは、最後のSSOを「必須」に設定すること です。これを「任意」 のままにしておくと、Okta経由でもパスワードでもログインできる状態が併存し、セキュリティ強化の目的が半減してしまいます。必ず「必須」にして、認証経路をOktaに一本化しましょう。
これで、ChatGPTの利用もOktaの管理配下に入り、安全なIDガバナンスを実現できます。生成AIの活用は、こうしたセキュリティ基盤の整備とセットで進めることが重要です。
ネクストモードでは、Oktaをはじめ、NetskopeやCrowdStrikeを活用したSaaS・生成AIの包括的なセキュリティ対策をご支援しています 。ご興味のある方は、ぜひお気軽にご相談ください!