はじめに
Azure Database for MySQL フレキシブル サーバーで Azure Active Directory のユーザーを使用できる機能がGAされました。
Microsoft Azure Active Directory (Azure AD) 認証機能を使用すると、Azure AD で定義されている ID を使用して、Azure Database for MySQL – フレキシブル サーバーのインスタンスに接続できます。Azure AD 認証を使用すると、データベース ユーザー ID とその他の Microsoft サービスを中央の場所で管理できるため、アクセス許可の全体的な管理が簡素化されます。
設定も簡単なので試してみましょう
設定
設定はドキュメントの通り進めていきますが、一部ことなります。
-
Microsoft Entra ID を使用する - Azure Database for MySQL | Microsoft Learn
Azure Database for MySQL での認証に Microsoft Entra ID を設定する方法について説明します
learn.microsoft.com
最初に認証の画面でAzure Active Directory 認証のみを選択します。
ここでユーザー割り当てのマネージドIDも新規で作成して追加します。
Azure AD 管理者を追加します。これはMySQLの管理者としてログインできます。
以上で準備は完了です。
次にログインします。
ログイン
WSLでログインを試してみます。
ログインを行うにはAzure CLIとMySQL Clinetを必要とします。事前にインストールしましょう。
ログインするときのパスワードはAzure ADユーザーに設定されているパスワードではなありません。トークンを使用します。これはAzure CLIで取得します。
上記で入力した Azue AD 管理者名 でAzure CLIにログインします。
az login
その後にトークンを取得します。
az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken
表示されたトークンをパスワードとして使用します。
ログインには以下のように1行で対応できます。
mysql -h {DB名}.mysql.database.azure.com --user {Azure AD 管理者名} --enable-cleartext-plugin --password=`az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken`
以上でログインは行えます。
--enable-cleartext-plugin
がない場合はログインできません。また。直接パスワードを入力しているため下記の警告が出ますが、直接入力は好ましくないといわれているだけです。
mysql: [Warning] Using a password on the command line interface can be insecure.
まとめ
Azure ADで一括管理することでMySQLだけでなくSQLも同じユーザで管理出来たりアプリケーションに利用できたりと有効活用できそうです。