Salesforceを例として、OpenID Connect(OIDC)認証のアプリをお客様ご自身で登録する方法についてご案内します。
事前確認
設定を始める前に、以下をご確認ください。
- 連携先SaaS(RP)が、OpenID Connect の認可コードフローに対応している必要があります。
- PKCEは必須です。連携先SaaS側でPKCEを有効にし、code_challenge_method に S256 を設定してください。
- リダイレクトURIは「https://」のみ登録できます。「http://」やフラグメント(#)を含むURIは登録できません。
- 連携先SaaS側で、事前の申込・設定が必要な場合があります。最新の設定手順は、SaaSから提供されているマニュアルをご確認ください。
- OIDCアプリ登録時には「ログイン開始URI」の設定が必須です。RP起点/IdP起点いずれの場合でも、このURIを提供していないSaaSとはOIDC連携できません。
- OIDCアプリのご利用には、「SSOプロ」「SSOプロ+SaaS管理」プランのご契約、または「SSOフリー+SaaS管理」でのオプション追加申込が必要です。
- SSOの前にSaaS側でユーザーの作成が必要かどうかは、SaaSによって異なります。Salesforceでは事前にユーザーを作成しておく必要があり、LibreChatでは事前に作成しないでください。
設定の流れ
連携先SaaS(例:Salesforce)側の設定とトラスト・ログイン側の登録を往復します。
※発行される値を互いに設定する必要があるため、それぞれの画面を開いたまま、値をコピーしながら進めてください。
1.連携先SaaS側の設定(例:Salesforce)
2.トラスト・ログイン側の設定(OIDCアプリ登録)
3.連携先SaaS側への反映
4.OIDCアプリの割り当て
5.動作確認
設定手順
1.連携先SaaS側の設定(例:Salesforce)
Salesforce側で認証プロバイダーを作成し、トラスト・ログイン接続用のURIを発行します。
- Salesforceに管理者権限でログインします。
- 設定画面>「認証」で検索>「新規」ボタンを押下します。
- プロバイダータイプのプルダウンで「Open ID Connect」を選択します。
-
表示される入力項目欄に下記の値を設定します。
※上記のエンドポイントURL等は、トラスト・ログインが公開している固定値です。詳細はこちら項目名 値 名前 任意の名称 URL 接尾辞 任意の接尾辞
※上記の名前を入力すると、自動で設定されますコンシューマー鍵 仮値(例: dummy)
(STEP3でトラスト・ログインのクライアントIDに更新します)コンシューマーの秘密 仮値(例: dummy)
(STEP3でトラスト・ログインのクライアントIDに更新します)承認エンドポイント URL https://portal.trustlogin.com/oauth/authorize トークンエンドポイント URL https://portal.trustlogin.com/oauth/token ユーザー情報エンドポイント URL https://portal.trustlogin.com/oauth/userinfo Proof Key for Code Exchange (PKCE)
拡張を使用ON
※必須。チェックが外れていないことを確認してください。トークン発行者 https://portal.trustlogin.com/ デフォルトの範囲 openid profile email ※項目表示例:
-
「登録ハンドラー種別」のプルダウンで「Apex」を選択し、「登録ハンドラーテンプレートを自動作成」を押下します。
-
「他のアカウントで登録を実行」に、管理者ユーザーのアカウントを設定し、「保存」を押下します。
-
作成された「登録ハンドラー」のリンク(
AutocreatedRegHandlerXXXXXXXXXXXXX)を押下します。
-
「編集」を押下します。
-
Apex Classの内容を下記の内容で上書きし、「Save」で保存します。
※クラス名は自動生成された実際の名称に置き換えてください。global class AutocreatedRegHandlerXXXXXXXXXXXXX implements Auth.RegistrationHandler{ // 既存ユーザーの検索とマッチング処理 global User createUser(Id portalId, Auth.UserData data){ // IdPから届いたemail(data.email)を使ってSalesforceの既存ユーザーを検索 List<User> uList = [SELECT Id FROM User WHERE Email = :data.email AND IsActive = true LIMIT 1]; if(!uList.isEmpty()){ return uList[0]; // 一致するユーザーが見つかれば、そのユーザーとしてログインを許可 } return null; // 見つからない場合はエラー } // 2回目以降のログイン時に動く処理(今回は何もしない) global void updateUser(Id userId, Id portalId, Auth.UserData data){ // 必要に応じてユーザー情報の更新処理をここに記述 } } -
認証プロバイダーの画面に戻り、「Salesforce設定」に6つのURLが表示されていることを確認します。
※「シングルサインオン初期化URL」「コールバックURL」は次の手順で使用するため、
確実に表示されていることを確認してください。
※各設定値に誤りがあると、「シングルサインオン初期化URL」などが表示されない場合があります。
表示されない場合は設定値に誤りがないかを再確認してください。
2.トラスト・ログイン側の設定(OIDCアプリ登録)
SaaS側で控えたURIを使い、OIDCアプリを登録します。
-
トラスト・ログインの管理ページ > アプリ >「OIDCアプリ登録」を押下します。
※SSOプロ+SaaS管理プランの場合は「SSOアプリ登録」の右側を押してボタンを展開し、
「OIDCアプリ登録」を選択します。
-
下記の値を入力して「登録」を押下します。
項目名 値 アプリ名 任意の名称 リダイレクトURI Salesforce 設定の「コールバックURL」
(末尾スラッシュ・大文字小文字まで正確に入力してください)ログイン開始URI Salesforce設定の「シングルサインオン初期化URL」 スコープ openid profile email クレームマッピング(JSON)※ {"email":"email"} ※クレームマッピングは、連携先SaaSに渡す属性を指定する項目です。
本例では、Apexクラスがdata.emailで既存ユーザーを照合するため、
メールアドレスを渡す設定にしています。
指定できる属性はこちらを参照してください。 -
発行された「クライアントID」「クライアントシークレット」を控えます。
※クライアントシークレットはこの登録完了画面でしか表示されません。
必ずこの時点で控えておいてください。
念のためこちらのページを開いた状態で次ステップに進むことをお勧めします。
3.連携先SaaS側への反映
発行された値を、Salesforceの設定に反映します。
-
Salesforceの認証プロバイダー画面に戻り、「編集」を押下します。
-
「dummy」と入力していた以下の2項目を、次のとおり更新して「保存」を押下します。
項目名 値 コンシューマー鍵 トラスト・ログインで発行されたクライアントID コンシューマーの秘密 トラスト・ログインで発行されたクライアントシークレット
-
「保存」を押下します 。
参考:
Salesforce起点のOIDCを実行できるようにするには、Salesforce設定の「私のドメイン」で
認証サービスで作成したOIDC認証プロバイダーにチェックを入れる必要があります。
- トラスト・ログイン画面に戻り、「OIDCアプリの認証情報」画面で「続ける」を押すと、
アプリ一覧に戻ります。
以上でOIDCアプリの作成作業は完了です。
4.OIDCアプリの割り当て
登録したOIDCアプリを、利用するメンバーまたはグループに割り当てます。
割り当てると、マイページにOIDCアプリが表示され、トラスト・ログイン起点でSSOできるようになります。
5.動作確認
実際にログインを試行し、SSOと属性の受け渡しが正しく動作することを確認します。
- 連携先SaaSのログインボタン(またはトラスト・ログインのマイページ)からログインを試行します。
- トラスト・ログインのログイン画面が表示されることを確認します。
- ログイン後、指定したリダイレクトURIに正しく戻ることを確認します。
- クレームマッピングで設定したとおりの属性が渡っていることを確認します。