Azure Active Directory での Microsoft 365 の分離とAccess Control

Azure Active Directory (Azure AD) は、論理的なデータ分離を通じて、安全性の高い方法で複数のテナントをホストするように設計されました。 Azure AD へのアクセスは、承認レイヤーによってゲートされます。 Azure AD では、テナント コンテナーをセキュリティ境界として使用している顧客を分離し、共同テナントがコンテンツにアクセスしたり侵害したりできないように、顧客のコンテンツを保護します。 Azure AD の承認レイヤーでは、次の 3 つのチェックが実行されます。

  • プリンシパルは Azure AD テナントへのアクセスが有効になっていますか?
  • プリンシパルは、このテナント内のデータへのアクセスが有効になっていますか?
  • このテナントのプリンシパルのロールは、要求されたデータ アクセスの種類に対して承認されていますか?

アプリケーション、ユーザー、サーバー、またはサービスは、適切な認証とトークンまたは証明書なしで Azure AD にアクセスできません。 要求に適切な資格情報が添付されていない場合、要求は拒否されます。

効果的には、Azure AD は、各テナントを独自の保護されたコンテナー内でホストし、そのテナントが単独で所有および管理するコンテナーとの間でポリシーとアクセス許可を持ちます。

Azure コンテナー。

テナント コンテナーの概念は、ポータルから永続ストレージまで、すべてのレイヤーのディレクトリ サービスに深く根付きます。 複数の Azure AD テナント メタデータが同じ物理ディスクに格納されている場合でも、コンテナー間には、ディレクトリ サービスによって定義される以外の関係はなく、テナント管理者によって指示されます。 最初に承認レイヤーを経由せずに、要求しているアプリケーションまたはサービスから Azure AD ストレージに直接接続することはできません。

次の例では、Contoso と Fabrikam の両方が個別の専用コンテナーを持ち、それらのコンテナーがサーバーやストレージなどの同じ基盤インフラストラクチャの一部を共有している場合でも、相互に分離され、承認とアクセス制御のレイヤーによってゲートされます。

Azure 専用コンテナー。

さらに、Azure AD 内から実行できるアプリケーション コンポーネントはなく、あるテナントが別のテナントの整合性を強制的に侵害したり、別のテナントの暗号化キーにアクセスしたり、サーバーから生データを読み取ったりすることはできません。

既定では、Azure AD では、他のテナントの ID によって発行されたすべての操作が許可されません。 各テナントは、要求ベースのアクセス制御を通じて Azure AD 内で論理的に分離されます。 ディレクトリ データの読み取りと書き込みのスコープはテナント コンテナーに適用され、内部抽象化レイヤーとロールベースのアクセス制御 (RBAC) レイヤーによってゲートされます。これにより、テナントがセキュリティ境界として強制されます。 すべてのディレクトリ データ アクセス要求はこれらのレイヤーによって処理され、Microsoft 365 のすべてのアクセス要求は上記のロジックによってポリシーが適用されます。

Azure AD には、北米、米国政府、欧州連合、ドイツ、World Wide の各パーティションがあります。 テナントは 1 つのパーティションに存在し、パーティションには複数のテナントを含めることができます。 パーティション情報は、ユーザーから抽象化されます。 特定のパーティション (その中のすべてのテナントを含む) は、複数のデータセンターにレプリケートされます。 テナントのパーティションは、テナントのプロパティ (国コードなど) に基づいて選択されます。 各パーティション内のシークレットやその他の機密情報は、専用キーで暗号化されます。 キーは、新しいパーティションが作成されたときに自動的に生成されます。

Azure AD システム機能は、各ユーザー セッションに固有のインスタンスです。 さらに、Azure AD では暗号化テクノロジを使用して、ネットワーク レベルで共有システム リソースを分離して、情報の不正な転送や意図しない転送を防ぎます。