株式会社船井総研デジタルの@fsd-jumeです。
Azure初心者も恐れることなくAzureを触れるようになることを目標に毎回記事を投稿しております。
そのため、内容は各技術の表面的な部分であることが多いので、さらに詳しく知りたい方は他の方も様々な記事を投稿しておりますので、ぜひそちらも含めて知識を深めていただけたらと思います。
私の投稿では、その入り口になれば幸いです。
今回のテーマ
最近Azure DevOpsを使っていて、連携するAzure ADのディレクトリを変更しようとしたときに、「ゲストユーザーがいるから変更できないよ」というエラーが出てきました。この問題自体は下記の設定を変更することで事なきを得たのですが、そもそもこの「ゲスト」がどこで定義された情報か分からなかったため調査いたしました。本投稿ではその調査で分かった内容を記載いたします。
※設定内容(Azure DevOps)
Organization Settings > Security > Policies > User Policies > External guest access
「ゲスト」とは?
Azure DevOpsではユーザーが「ゲスト」かどうか、下記で確認が可能です。
Organization Settings > General > Users > All users > AAD User Type
つまり、Azure DevOpsではAAD(Azure AD)のユーザータイプ情報を基に、「ゲスト」の判断をしていることが分かります。
AADユーザータイプとは?
Azure ADでは下記でユーザータイプが確認可能です。
なお、外部ADのユーザーを招待した場合のユーザータイプのデフォルトは「ゲスト」です。
※上の画像はデフォルトから変更しています
Azure AD側での変更とAzure DevOpsへの反映
このユーザータイプをAzure ADで変更した場合、公式のドキュメントでは「数時間~数日」でAzure DevOpsに反映されると記載がありました。
公式ドキュメントの記載は2023年4月現在のものとなります
しかし、実際に試してみたところ、記載通り数時間~数日でAzure DevOpsに反映されたユーザーもいれば、1か月近く反映されなかったユーザーもいました。
そのため、Azure ADにおけるユーザータイプ変更がどのようなフローでAzure DevOpsに反映されるのかを知るために、Microsoftに問い合わせを行いました。
Microsoftからの回答
Azure ADの変更がAzure DevOpsに反映される条件
変更したユーザーが完全な手順でAzure DevOpsにサインインした場合
※完全な手順:ユーザー名とパスワードをダイアログ上で入力する形(InPrivateでのサインインが確実)
⇒反映に最大で24時間かかる
変更したユーザーが不完全な手順でAzure DevOpsにサインインしていた場合
※不完全な手順:キャッシュやクッキー等の影響でユーザー名/パスワードを入力しないままアクセス
⇒反映に数時間から数日かかる場合がある
Azure DevOpsへの反映のフロー
(1)Azure ADでユーザーのユーザータイプを変更(開始タイミング)
(2)該当ユーザーがAzure DevOpsに不完全なアクセスを継続(数時間~数日)
(3)該当ユーザーがAzure DevOpsに完全なサインイン手順を実施(0~24時間)
⇒変更の反映に「数時間~数日」+「0~24時間」の時間がかかる
※不完全なアクセスを続けていた場合
完全なサインインプロセスが実行されない限りは永久に反映されない
結論
Azure ADでユーザータイプを変更した場合は、Azure DevOpsへの反映を確実に行うためにも、Azure DevOpsにInPrivateでサインインしてもらうように該当ユーザーに依頼しましょう。