はじめに
Azure Database for MySQL フレキシブル サーバーで Azure Active Directory のユーザーを使用できる機能がGAされました。
-
Azure updates | Microsoft Azure
Subscribe to Microsoft Azure today for service updates, all in one place. Check out the new Cloud Pl ...
azure.microsoft.com
Microsoft Azure Active Directory (Azure AD) 認証機能を使用すると、Azure AD で定義されている ID を使用して、Azure Database for MySQL – フレキシブル サーバーのインスタンスに接続できます。Azure AD 認証を使用すると、データベース ユーザー ID とその他の Microsoft サービスを中央の場所で管理できるため、アクセス許可の全体的な管理が簡素化されます。
設定も簡単なので試してみましょう
設定
設定はドキュメントの通り進めていきますが、一部ことなります。
-
Azure Database for MySQL のドキュメント | Microsoft Learn
Azure Database for MySQL は、MySQL Community Edition を基盤として開発者向けに構築されている、Microsoft クラウドのリレーショナル データベース ...
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も同じユーザで管理出来たりアプリケーションに利用できたりと有効活用できそうです。