概要
2026年5月1日よりAzure SharepointへのIDCRLによる接続(レガシー認証)が廃止されました。それを受け、ここではOAuth2を使用したTDVからAzure Sharepointへの接続方法を記します。
本記事において説明する内容は2026年4月に検証したものであり、今後Microsoft、CSG双方の仕様変更の影響を受ける可能性があります。
検証環境
| 製品・サービス | バージョン | 備考 |
|---|---|---|
| TDV Server | 8.8.1 | OS: Windows Server 2022 Datacenter 21H2 |
| TDV Studio | 8.8.1 | TDV Serverと同じマシン上にインストール |
| カスタムJava | TDV Serverと同じマシン上でコンパイル、実行。本検証のためにJDK 26をインストール |
Azure側のセットアップ
Entra ID へのログイン
新たなOAuth2アクセスを作成するにはカスタムEntra IDアプリを設定する必要があります。そのためには、Azureポータルにアクセスし、「Entra」、そして「エンタープライズアプリ」の順に移動してください。お客様がAzureへのアクセス権限を持っていない場合は、このAzure側手順をAzure管理者に依頼する必要があるかもしれません。
新しいアプリケーションの作成
「新しいアプリケーション」をクリックし、以下の項目を設定します。
| 項目 | 値 | 備考 |
|---|---|---|
| アプリ名 | 任意の名称 | |
| リダイレクトURL | http://localhost:33333 | TDVが利用するCDataアダプタのデフォルト値 |
API権限の設定
続いて、ユーザーはAPI権限を設定する必要があります。「APIアクセスの追加」→「アクセス許可の追加」→「Microsoft Graph」に移動し、最終的な接続先ファイル等へのアクセスに必要な委任権限(例:Sites.Read.All、Files.Read.Allなど)を追加します。組織で管理者の同意が必要な場合は、「管理者の同意を付与」をクリックしてください。
証明書とシークレット
次に、「証明書とシークレット」→「新しいクライアント シークレット」に移動します。有効期限を設定します。ここで生成されているシークレットの値は二度と表示されないため、すぐにコピーしてください。この値はTDVのOAuthClientSecretパラメータとして使用されます。
IDのメモ
最後に、「概要」からアプリケーション(クライアント)ID、ディレクトリ(テナント)IDをそれぞれメモしておいてください。それぞれOAuthClientID、AzureTenantIDとして使用します。
以下がこの後TDV側で利用する値の一覧です。
| 値名 | 備考 |
|---|---|
| SharePointサイトのベースURL | 例) https://xxx-my.sharepoint.com |
| OAuthClientID | 概要のアプリケーション(クライアント)IDの値 |
| OAuthClientSecret | 新しいクライアントシークレット作成で取得した値。クライアントシークレットのID値ではないことに注意 |
| リダイレクトURL | http://localhost:33333(デフォルト) |
| AzureTenantID | 概要のディレクトリ(テナント)IDの値 |
Javaプログラムの作成と実行
現在TDVの制限により、ブラウザを介在する対話型のOAuthフローが実行できません。これを回避するため、初期OAuthトークンを取得するための簡単なJavaプログラムを作成し、実行します。
次はJavaのソースファイル(GenOAuthSettings.java)になります。
public class GenOAuthSettings { public static void main(String[] args) { try { if (args.length != 1) { throw new Exception("Input must have one argument: 'connection string'"); } String connectionString = args[0]; String prefix = "jdbc:sharepoint:"; com.cdata.cis.sharepoint.SharePointOAuth oauth = new com.cdata.cis.sharepoint.SharePointOAuth(); if (!connectionString.startsWith(prefix)) connectionString = prefix + connectionString; oauth.generateOAuthSettingsFile(connectionString); System.out.println("Test Connection Successful!"); } catch (Exception e) { e.printStackTrace(); } } }
このソースファイルを、TDV Serverに同梱されているSharePointアダプタのバイナリファイルとリンクさせて実行ファイル(GenOAuthSettings.class)を生成します。実行ファイルをビルドするには、JAVA SDKがインストールされた環境でコマンドプロンプトを開き、以下のコマンドを実行してください。
javac .\GenOAuthSettings.java -cp 'C:\Program Files\TIBCO\TDV Server 8.8\packages\SharePoint_1.jar'
生成した実行ファイルを用いてアダプタがOAuthに利用する初期ファイル(OAuthSetting.txt)を出力させます。
java -cp '.;<SharePoint_1.jarへのパス>' GenOAuthSettings 'jdbc:sharepoint:URL=<SharePointサイトのベースURL>;SharePointEdition=SharePointOnline;AuthScheme=AzureAD;InitiateOAuth=GETANDREFRESH;OAuthClientId=<OAuthClientID>;OAuthClientSecret=<OAuthClientSecret >;CallbackURL=<リダイレクトURL >;OAuthSettingsLocation=OAuthSettings.txt;SCHEMA=REST;AzureTenant=< AzureTenantID>;'
プログラムの引数が長いJDBCの接続文字列で、各オプション値が";"で区切られていることに注意すると不正な指定による接続の失敗を防ぐことができます。
実行の初回などにブラウザが起動し、Azureログイン画面が表示された場合にはログインを行ってください。
接続に成功すると、Test Connection Successful!と表示され、コマンドを実行した場所にOAuthSettings.txtが生成されます。TDV Server以外でこの実行を行った場合は生成されたファイルをTDV Serverへコピーしてください。
TDV SharePointアダプタセットアップ
アダプタ設定で使用する必須項目は次の通りです。上述のJavaプログラムの実行で指定した値と一致している必要があります。
| 設定項目 | 値や備考 |
|---|---|
| URL | SharePointサイトのベースURL |
| スキーマ | REST |
| AuthSchema | OAuth |
| SharePointEdition | SharePointOnline |
| OAuthの開始 | REFRESH |
| OAuthClientID | Azureアプリケーション登録で割り当てられたOAuthClientID |
| OAuthClientSecret | Azureで生成したOAuthClientSecret |
| コールバックURL | http://localhost:33333 |
| OAuth設定の場所 | OAuthSettings.txtファイルへのパス。(例:C:\temp\OAuthSettings.txt) |
設定を転記後、「接続テスト」をクリックし、接続を確認してください。次に「インストロスペクト」を行い、必要なデータスキーマや関数が取得できることを確認してください。
一度設定を行うと、アダプタが定期的にトークンのリフレッシュが行われますのでJavaプログラムの実行は必要ありません。