サービスプリンシパルをサーバー管理者として使用したいので、リリースパイプラインで使用して、さらにActive Directoryユーザーを作成できます。
サービスプリンシパルをサーバーの管理者*にして、アクセストークンを使用してデータベースに接続することに成功したので、サービスプリンシパル認証は正常に機能します。これは素晴らしいことであり、興味深い課題です。
*編集:AADサーバーの管理者がARMテンプレートを使用して作成していました。特に、ポータル経由で手動で作成しようとした場合、管理者ユーザーとしてサービスプリンシパルを選択することはできません。しかし興味深いことに、サービスプリンシパルを確認できます。 ARMを使用して作成した後、ポータルで名前okを使用してください。AAD認証で正常にログインできるため、サーバープリンシパルの管理者は正常に機能しているようです。
ただし、さらにユーザーを作成する場合、エラーで検出されることはありません。
「現在、プリンシパル「ここの名前」は見つかりませんでした。しばらくしてからもう一度お試しください。」
しかし、自分としてログインすると、他のユーザーをうまく作成できます。
SQL ServerがなんらかのActive Directory偽装を使用して後続のユーザー/サービスプリンシパルが存在することを検証していると私は思いますか?
サービスプリンシパルにGraph APIへのアクセスを許可すると、十分な権限が付与されますか?もしそうなら、必要な最低限の権利は何ですか?
また、Azure SQL ServerがバックグラウンドでマネージドサービスIDを作成したことがわかります。そのため、それも機能しているのでしょうか。
また、マネージドインスタンスで、AADにフックするためにAAD権限を持つサービスプリンシパルが明示的に必要であることがわかりました。これは、Azure SQL ServerのMSIのようなものだと思いますか?しかし、Azure SQL Serverは、AAD管理者で十分であることを述べていません。
Active Directoryフックアップの基本的なメカニズムがどのように機能するかを知りたいと思います。これは、私の課題をさらに調査するのに役立つ可能性があるためです。
今日マイクロソフトから公式の回答を得ました:
サービスプリンシパルアカウントを使用する場合、AADユーザーとグループの作成は現在サポートされていないことを確認しました。この特定の制限は、データベースに含まれるユーザーにのみ固有です。