AzureのSQL DatabaseをAzureActiveDirectory(以下、AAD)のユーザーで認証する方法を紹介します。
Azure SQL Databaseとは
Azure SQL DatabaseはMicrosoft Azureの提供するPaaSのサービスです。
SQL Serverと名前が似ているので、勘違いされますが別のサービスですのでご注意ください。
azure.microsoft.com
今回の例はSQL Database エラスティックプールを使用しています。
そのため、画面の表示がシングルデータベースの場合と差異がある場合がございますが、
ご了承ください。
SQL Database側の設定(Azure ポータル)
Azureポータルで"Active Directory 管理者"を設定する
SQL DatabaseでAADに所属しているユーザーを認証できるようにするには、
Azureポータルで"Active Directory 管理者"を設定する必要があります。
「Azureポータル」→「作成したSqlServer」→「Active Directory 管理者」→「管理者の設定」
管理者にするユーザーを検索し、追加します。
「保存」ボタンをクリックします。 これでAD管理者の設定は終了です。
クライアント端末からアクセスできるようファイアウォール設定を行います。
SQLDatabaseにアクセスできるクライアント端末のIPアドレスの許可設定を行います。
「Azureポータル」→「作成したSqlServer」→「ファイアウォールと仮想ネットワーク」→「クライアントIPの追加」
「保存」ボタンをクリックします。
Azureポータル側での設定は以上です。
接続方法
SQLServer Management Studio(以下、SSMS)を使用して接続を行います。
SSMSのインストールはこちらから
接続情報を入力します。
項目 | 設定値 |
---|---|
サーバーの種類 | データベースエンジン |
サーバー名 | 各自認証サーバーの名称を入力 |
認証※ | Active Directory - MFAサーバーで汎用 |
ユーザー名 | 登録したAD管理者のアドレスを入力 |
私のAADアカウントは多要素認証が設定されているため、
認証で「Active Directory - MFAサーバーで汎用」を選択しております。
多要素認証を設定していない場合、「Active Directory - パスワード」を選択してください。
接続を選択すると、マイクロソフトアカウントの認証画面が表示されますので、
指示に従い、認証情報を入力すると接続できることが確認できます。
ただこの段階だとAD管理者で設定したユーザー以外はログインできないため、
ユーザー追加の設定を行う必要があります。
ADユーザーをSQLDatabaseで認証できるように追加する
ユーザーを追加しましょう。
これでADユーザーを追加することができます。
--ユーザー(×××@△△.com)追加 CREATE USER [×××@△△.com] FROM EXTERNAL PROVIDER; --ユーザー(×××@△△.com)にdb_owner権限を付与する ALTER ROLE db_owner ADD MEMBER [×××@△△.com];
最後に
共有のユーザーID、パスワードを使わないようにするために、
AD認証を使用する方法は有効な手段だと思います。
大事なデータベースを守るためにもAD認証を取り入れましょう。
参考ページ
Azure Active Directory 認証を構成する - SQL | Microsoft Docs
SQL Server Management Studio (SSMS) のダウンロード - SQL Server | Microsoft Docs