Microsoft identity platform

開発者のための Azure セキュリティ実装

Anushika Agarwal

Cloud Data Engineer

Microsoft identity platform とは

  • アプリのサインインとアクセスを管理
    • Microsoft Entra ID をベースに構築
      • Entra ID = コアとなる ID サービス
      • Identity Platform = アプリ向けの開発者レイヤー

Entra ID と Microsoft identity platform の関係

開発者のための Azure セキュリティ実装

仕組み

  • 認証:
    • 標準規格:
      1. OAuth 2.0: アプリの操作範囲を制限
      2. OpenID Connect: ユーザー本人を確認
    • アカウントの種類
      • 企業・学校アカウント
      • 個人の Microsoft アカウント
      • ソーシャル・ローカルアカウント

Microsoft Identity Platform

開発者のための Azure セキュリティ実装

Microsoft identity platform の主要ツール

  • MSAL:
    • アプリ用のトークンを要求

MSAL

  • アプリ登録:
    • Azure でアプリの ID を設定

アプリ登録

  • Microsoft Graph API:
    • ユーザー、グループ、リソースにアクセス

Microsoft Graph API

開発者のための Azure セキュリティ実装

アプリ登録

  • アプリを登録すると Entra ID に接続される

  • 選択肢:

    • シングルテナント: 自組織内でのみ動作
    • マルチテナント: 複数組織にまたがって動作
  • 自動作成されるもの:

    • アプリケーションオブジェクト
    • サービスプリンシパル
  • シークレット、証明書、スコープ、ブランディングを追加

アプリ登録

開発者のための Azure セキュリティ実装

アプリケーションオブジェクト

  • アプリの設計図
  • ホームテナント内に存在
  • 認証とアクセスルールを定義

アプリケーションオブジェクト

開発者のための Azure セキュリティ実装

例: PeopleSphere のアプリケーションオブジェクト

  • PeopleSphere が自社テナント内に HR アプリを作成

PeopleSphereのアプリケーションオブジェクト例

開発者のための Azure セキュリティ実装

サービスプリンシパル

  • 各テナントにおけるアプリのインスタンス
  • 元の鍵の作業用コピー
  • 各顧客は自身のテナントに専用のサービスプリンシパルを持つ

サービスプリンシパル

開発者のための Azure セキュリティ実装

例: DataCamp のサービスプリンシパル

  • DataCamp のテナントに作成されたサービスプリンシパル

DataCampにおけるサービスプリンシパルの例

開発者のための Azure セキュリティ実装

サービスプリンシパルの種類

  • アプリケーション:
    • 標準的なアプリインスタンス

アプリケーション

  • マネージド ID:
    • シークレット不要のアクセス

マネージド ID

  • レガシー:
    • 従来のアプリ

レガシー

開発者のための Azure セキュリティ実装

権限

  • アプリはOAuth 2.0と権限スコープを使ってアクセスを要求

  • graph.microsoft.com/Calendars.Read

スコープの例 Calendars.Read

Microsoft identity platform を通じたアクセス要求と取得の流れ

開発者のための Azure セキュリティ実装

委任された権限

  • サインイン済みユーザーがいる場合、アプリはそのユーザーに代わって動作

  • 例: PeopleSphere が DataCamp ユーザーの代わりに会議を予定する

PeopleSphereの委任された権限の例

開発者のための Azure セキュリティ実装

アプリのみの権限

  • アプリ自体として動作
  • ユーザーの関与なし
  • 例: PeopleSphere が毎晩 HR データを同期する

PeopleSphereのアプリのみの権限の例

開発者のための Azure セキュリティ実装

同意

  • 権限スコープを有効化するには同意が必要

  • 同意の種類:

    • 静的: 登録時に設定される権限
    • 段階的: 必要に応じて追加
    • 管理者: 高権限アクセスに必要

同意

開発者のための Azure セキュリティ実装

練習しましょう!

開発者のための Azure セキュリティ実装

Preparing Video For Download...