このエントリは2025/05/28現在の情報に基づいています。将来の機能追加や変更に伴い、記載事項からの乖離が発生する可能性があります。
問い合わせ
お初の方から、以下のような問い合わせが届いた。
現在Azure DevOpsを使ってチーム開発をしている。協力会社の人にも参加してもらうため、担当者のメールアドレスをもらい、組織(Organization)に外部ユーザーを招待するように構成した。実際追加もでき、招待メールも送信できたが、当該ユーザーがアクセスすると403で怒られてしまう。どうしたらよいのか?
Azure DevOpsはEntra ID配下にあり、通常はEntra IDのユーザーを追加することが多いが、外部ユーザー(Microsoftアカウントも含む)を組織に招待できる。招待すると、以下のようなメールが届くので、このJoin nowをクリックすれば、プロジェクトにアクセスできる、はず。

なのだが、実際にアクセスしてみると、403でアクセスできない(番犬が見張っていて入れない、というイメージだが、おそらくWanちゅ〜るを上げたら一発で手懐けられるはず、知らんけど)。

で、どうしたものか、というお問い合わせをもらった次第。「あー、これはあるあるやん」と思った方もいらっしゃるかもしれない。
どうしたらよいのか?
組織の設定 (Organization Settings) のポリシー (Policies) の外部ゲストアクセス (External Guest Access) を有効にしなければならない。ドキュメントにも記載がある。
組織に外部ユーザーを追加する / Add external users to your organization
https://learn.microsoft.com/azure/devops/organizations/accounts/add-external-user?view=azure-devops
- この外部ユーザーを招待する組織で外部ゲスト アクセスがオンになっていること。

このポリシーはデフォルトで無効なので注意が必要。しかも、無効なのに招待できてしまうので、UXとしてどうなのか、という問題はあるのだが、いずれにしても、この設定を有効にしておく必要がある。
Entra IDにB2B invitationをした状態の外部ユーザーだったら
更問が届いた。
Azure DevOpsの属するEntra IDにはすでに該当するユーザーをB2B Invitation済みだが、それでもこの設定は必要なのか?
B2B Invitationとは、以下のドキュメントにもある通り、テナント外のユーザーを招待し、テナント傘下のアプリケーションにアクセスできるようにするしくみ。
Microsoft Entra 外部 ID の概要 / Introduction to Microsoft Entra External ID
https://learn.microsoft.com/entra/external-id/external-identities-overview
問い合わせ主の疑問は「招待済みのユーザーなのに、なんでExternal Guest Accessが必要なのか」ということなのだが、これは当該ユーザーがEntra IDのユーザーではなく、あくまでも外部ユーザー(招待されたユーザー)だから。Azure DevOpsの場合、自身が属するEntra IDテナント以外のユーザーがアクセスするためには、External Guest Accessが必要。