ごった煮

色々な事を書いてます

AAD のゲストユーザでも SQL Database の AAD 認証を使う話

SQL Database は、 AAD ユーザを使ったログインが出来ますが、外部の AAD からのゲストユーザの場合、直接権限付与が出来ないので、外部ユーザでもログイン出来るようにする方法をまとめます。

仕組み

これを実現するための仕組みは、以下のような形です。

  1. AAD にグループを作成する
  2. 作成したグループにゲストユーザを追加する
  3. グループを DB ユーザとして登録する

この流れで実現が可能です。

グループを作成して、ゲストユーザを追加までは、今回の本質ではないので省略です。

権限付与は、以下の SQL を流すだけで OK です。

GO

CREATE USER [グループ名] FROM EXTERNAL PROVIDER;

ALTER ROLE db_owner ADD MEMBER [グループ名];

GO

これを実行するとユーザ作成完了です。

CREATE USER [グループ名] に FROM EXTERNAL PROVIDER を付けると、AAD のユーザを DB のユーザとして追加するという構文になります。

グループ名に、作成したグループの名前を入れて実行すると、そのグループを DB のユーザとして登録できます。

ゲストユーザ以外なら、ユーザ名にメールアドレスを入れてやると AAD のユーザを DB ユーザに追加できます。

ログインする際、master 以外の DB にユーザを作成した場合は、SSMS などで接続する際に DB 名を指定してやる必要があるので気を付けましょう。

まとめ

SQL Database に繋ぎに行く場合、AAD を使ってセキュアに繋ぐことが自分たちのデータを保護する上でとても重要です。

ゲストユーザ以外を追加する場合でも、グループ単位でまとめてユーザ作成をしておけば、権限の付与やはく奪という作業の手間を省くことが出来るので、ぜひ使ってみてください。