Question

smarthouse on Mon, 02 Oct 2017 10:54:25


お世話になっております。

現在、JDK6ベースで作成したWebアプリケーション(DBはPostgreSQL)のDBを、

今回、Azure SQL Databaseにポーティングしたいと考えております。

JDKのバージョンアップは考えていないので、jdbcはsqljdbc4.jarの予定ですが、

同JDBCの場合、AD(アクティブディレクトリ)認証を使用することは可能でしょうか?

ご教示いただければ幸いです。


Sponsored



Replies

Tak1wa on Mon, 02 Oct 2017 22:52:05


こんにちは。

Use Azure Active Directory Authentication for authentication with SQL Database or SQL Data Warehouse

System Requirements for the JDBC Driver

既に調べられているとは思いますが、

JDBCドライバでAAD認証をサポートしたのはMS-JDBC 6以上からのようなので
難しいと思います。

smarthouse on Tue, 03 Oct 2017 00:41:39


Tak1waさま

お世話になります。

早速の回答ありがとうございます。

ご紹介いただいたリンク先は、投稿前に一度確認はしたのですが、

その他がどうなのか不明でしたので、質問させていただきました。

やはり難しいですか...

jdbc6を使うためには、JDKを8まで引き上げる必要があるので、

今回は見送る可能性が高いです。

ありがとうございました。

smarthouse on Wed, 04 Oct 2017 00:18:09


お世話になります。

もう1点、ご教示いただきたい点があり、追記で確認させてください。

AAD認証をjavaで利用する場合、ADAL4jという下記のライブラリも利用可能という記載を見つけました。

https://github.com/AzureAD/azure-activedirectory-library-for-java

これは、先述のJDBCドライバ6.0で実現する方式とは別の方式になるのでしょうか?

jdbcのバージョンの制約等の記載は見つけきれず、JDK6でも使えるのかを懸念しております。

何か情報ございましたら、ご教示いただければ幸いです。

引き続きよろしくお願いします。

Tak1wa on Wed, 04 Oct 2017 01:11:03


ADAL4jについてはJDBCとは無関係ではないでしょうか。

AAD認証を使ってシングルサインオンや認証情報の利用をするためのライブラリであり、
SQL Server / SQL Database へAAD認証を使って接続を行うこととは異なります。

JDKバージョンについては確認できていませんが、

AAD認証自体は特別ライブラリを使わなくてもHTTP通信でトークンの取得はできたと思いますから、最悪バージョンに依存せず実装できるのではないかなと推測してます。

しかし、もともとの要求であるデータベース接続とは切り離して考えられたほうが良いのかなとは思います。

smarthouse on Wed, 04 Oct 2017 06:23:19


Tak1waさま

度々のご回答ありがとうございます。

すみません。当方両者を混同しておりました。

DB接続とは切り離して考える必要があるとのご指摘、助かりました。

現状はユーザ認証=DB認証となっておりますので、

その部分から再考する必要がありそうです。

諸々ありがとうございました。