
こんにちは、シニアプロダクトスペシャリストの宮本です!
年々、ユーザー認証に関する課題を耳にする機会が増えてきており、シングルサインオン(SSO)による認証基盤の統一化は多くの企業にとって重要な検討事項となっています。
この度、CData Sync では、SAML 2.0 規格に準拠したSSO 機能をサポートいたしました!これにより、Microsoft Entra ID(旧Azure AD)をはじめとする主要なIdP(Identity Provider)とSAML 認証での連携が可能になり、ユーザーは一度のログインでCData Sync にアクセスできるようになりました。さらに、JIT(Just-In-Time)プロビジョニング機能により、事前のユーザー登録なしに自動的にアカウントを作成する運用も実現できます。
それではさっそく、SAML 認証の仕組みから、CData Sync でのEntra ID を使った具体的な設定手順まで詳しくみていきましょう。
SAML 認証とは
SAML(Security Assertion Markup Language)は、インターネット上の異なるドメイン間でユーザー認証と認可情報を安全にやり取りするためのXMLベースの公開標準です。主に、シングルサインオン(SSO)の実現に利用されます。
SAMLの仕組みでは、ユーザーの認証は「IdP(Identity Provider、認証提供者)」が行い、その認証結果を「SP(Service Provider、サービス提供者)」にSAMLアサーションという形式で伝達します。これにより、サービス側ではユーザーの認証処理を自前で行う必要がなくなり、安全かつ効率的に認証を委任できます。
このモデルにより、ユーザーは一度のログインで複数のサービスにアクセス可能となり、利便性が向上すると同時に、パスワード管理やセキュリティリスクの軽減にもつながります。
参考: https://ja.wikipedia.org/wiki/SAML_2.0
CData Sync では、SAML 2.0規格に準拠したIdPとの連携によってSSO 対応をサポートしました。
CData Sync でのEntra ID を利用したSAML認証フロー

IdP にEntra ID(旧Azure AD)を利用した場合の構成です。
まず、①でユーザーがログイン画面からシングルサインオンボタンを押下すると、②でSync 内部でSAML 認証要求を生成します。
サンプルですが、以下のような情報をXML で生成します。
https://your-app.example.com/saml/metadata
この中身は、Sync でSSO 設定した際に既に情報として定義したものとなります。
③④⑤の流れで、SyncからのリクエストがリダイレクトによってEntra IDに送られ、⑥でログイン画面が表示されます。
Microsoft アカウントでログインができたら、⑦でEntra ID 側でSAMLアサーションとなるものを生成します。
これはXML 形式の署名付き認証情報となり、ログインユーザー情報や認証情報、有効期限などが格納されています。
以下はサンプルのSAMLアサーション情報です。
https://login.microsoftonline.com/...
user@example.com
https://your-app.example.com/saml/metadata
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
user@example.com
山田 太郎
営業部
Sales
JapanUsers
⑧でSAMLアサーションが返ってきますが、「ACS URL ※Recipient」(コールバックURL のようなもの)にリダイレクトされ、⑨にSAMLアサーションの検証とCData Sync ログインを行います。最後に⑩でトップ画面が表示されます。
JIT プロビジョニングについて
CData Sync ではJIT プロビジョニング(Just-In-Time)機能も搭載されました。これにより、管理者が事前にユーザーを手動登録する必要がなく、初回ログイン時に自動的にアカウントが作成されるため、運用負荷を大幅に軽減できます。ですから、⑨でアカウントが無い場合はそのタイミングで作成され、そのまま⑩のトップ画面が表示されます。多数のユーザーでCData Sync にアクセスする可能性がある場合は、この機能により管理コストの削減と迅速なユーザー追加が実現できます。
CData Sync でSAML 認証を設定する手順
今回はEntra ID をIdP としてSAML 認証を試していきます。
Azure にログインし、「Entra ID」で検索→エンタープライズアプリケーションと進みます。

新しいアプリケーションをクリックします。

独自のアプリケーションの作成を選択します。

任意のアプリ名を入力し、その他のアプリケーションを選択して作成をクリックします。

アプリを作成したら次はシングルサインオンの設定です。

SAML を選択します。

以下の画面の必須となっている2項目を設定していきます。
識別子(エンティティID)
応答URL(ACS URL)

ただしその情報はCData Sync 側にありますので、SSO 設定画面を開きます。

アサーションコンシューマサービスURL(ACS URL)と、オーディエンスURI をコピーします。

Azure 側に戻り、識別子にSync のオーディエンスURIを、応答URL にSync のACS URL を入力し保存します。
なお、応答URL にhttp での登録はできませんのでご注意ください。

CData Sync におけるSAML 認証の流れの部分でも触れていますが、識別子(エンティティID)と応答URL 役割については以下となります。
- 識別子(エンティティID):SAML 連携において、IdP とSP がお互いを識別するための一意の識別子で、主にURL 形式で表現
- 応答URL(ACS URL):IdP から送信されるSAML レスポンスを受け取る、SP(サービス提供側)の認証用エンドポイントURL
次に、アプリのフェデレーションメタデータURL をコピーします。

このフェデレーションメタデータURLは、SAML設定に必要な情報(Entity ID、ACS URL、証明書など)を含むXML 形式のメタデータを公開しているURL であり、SP 側はこのURL にアクセスすることで設定情報を自動的に取得・インポートできます。
Sync の設定画面に戻り、設定をインポートを選択し、ディスカバリーURL に先ほどのフェデレーションメタデータURL をセット、インポートボタンをクリックという流れで進みます。そうすると、各種情報が表示されます。
取り込めたら保存およびテストボタンをクリックします。

Microsoft にログインします。

成功するとメッセージが表示されます。良ければ完了ボタンをクリックします。

これで設定は完了です。ちなみに、JIT プロビジョニングは現時点では有効化されていない状態としています。

このように、まだインストール直後に作成したadmin ユーザーしかいない状態となります。

もちろん、この状態でシングルサインオンを行っても…


エラーとなりログインすることはできません。

理由はシングルサインオンでログインしようとしたユーザー情報がSync に登録されていないからです。
JIT プロビジョニングの有効化
では、JIT プロビジョニングを有効化してみましょう。この機能を有効にすると、Entra ID で認証されたユーザーが初回ログイン時に自動的にCData Sync のユーザーとして作成されます。デフォルトロールはAdmin に設定しました。

これで再度、シングルサインオンでログインしてみると、成功が一瞬表示され、トップ画面のダッシュボードが表示されました!

併せて、ユーザーリストにもがログインしたユーザー情報が自動登録されていました。

おわりに
いかがでしたか。シングルサインオン機能は以前から搭載されており、OpenIDConnect での認証方式には対応している状況でしたが、今回、新たにSAML 認証もサポートいたしました。加えて、JIT プロビジョニングも対応し、複数ユーザーや部署で使用される際にとても扱いやすくなったかと思います。
CData Syncは30日間の無償トライアルが可能ですので、ぜひSAML 認証をお試しください!