Microsoft identity platform

為開發人員實作 Azure 安全性

Anushika Agarwal

Cloud Data Engineer

什麼是 Microsoft identity platform?

  • 管理應用程式登入與存取
    • 建立於 Microsoft Entra ID 之上
      • Entra 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

  • App registration:
    • 在 Azure 設定應用程式身分

App registration

  • Microsoft Graph API:
    • 存取使用者、群組與資源

Microsoft Graph API

為開發人員實作 Azure 安全性

App registration(應用程式註冊)

  • 註冊應用程式即可連結到 Entra ID

  • 選擇

    • Single-tenant:應用程式只在你的組織內使用
    • Multi-tenant:應用程式可跨組織使用
  • 自動建立

    • Application object
    • Service principal
  • 新增密碼、憑證、範圍與品牌設定

App Registration

為開發人員實作 Azure 安全性

Application object(應用程式物件)

  • 應用程式的藍圖
  • 存於你的主租用戶
  • 定義驗證存取規則

Application Object

為開發人員實作 Azure 安全性

範例:PeopleSphere 的 application object

  • PeopleSphere 在其自家租用戶中建立 HR 應用程式

PeopleSphere 的 Application Object 範例

為開發人員實作 Azure 安全性

Service principal(服務主體)

  • 每個租用戶中的應用程式實體
  • 原始金鑰的可運作副本
  • 每位客戶在其租用戶中都有自己的service principal

Service Principal

為開發人員實作 Azure 安全性

範例:DataCamp 的 service principal

  • DataCamp 的租用戶中建立的 Service Principal

DataCamp 中的 service principal 範例

為開發人員實作 Azure 安全性

Service principal 的類型

  • Application
    • 標準的應用程式實體

Application

  • Managed Identity
    • 無密碼的存取

Managed Identity

  • Legacy
    • 舊版應用程式

Legacy

為開發人員實作 Azure 安全性

權限

  • 應用程式用 OAuth 2.0權限範圍請求存取

  • graph.microsoft.com/Calendars.Read

Calendars.Read 範圍範例

應用程式如何透過 Microsoft Identity Platform 請求並取得存取

為開發人員實作 Azure 安全性

委派權限

  • 已登入使用者時,應用程式代表使用者行動

  • 範例:PeopleSphere 為 DataCamp 使用者排程會議

PeopleSphere 委派權限範例

為開發人員實作 Azure 安全性

僅應用程式權限

  • 應用程式以自身身分行動
  • 無使用者參與
  • 範例:PeopleSphere 每晚同步 HR 資料

PeopleSphere 僅應用程式權限範例

為開發人員實作 Azure 安全性

同意(Consent)

  • 應用程式需要同意才能啟用權限範圍

  • 同意類型

    • 靜態:在註冊時設定的權限
    • 增量:視需要新增
    • 系統管理員:高權限存取所需

同意

為開發人員實作 Azure 安全性

一起來練習吧!

為開發人員實作 Azure 安全性

Preparing Video For Download...