分享方式:


教學課程:準備外部租用戶以授權 .NET 精靈應用程式

在本教學課程系列中,您將瞭解如何使用 Microsoft Entra 外部 ID 建置 .NET 精靈應用程式,以呼叫您自己的自定義受保護 Web API。 您將在 Microsoft Entra ID 中註冊應用程式,並與外部租用戶驗證您的應用程式。 最後,您將執行應用程式並測試登入和註銷體驗。

  • 註冊 Web API,並設定 Microsoft Entra 系統管理中心的應用程式許可權。
  • 註冊客戶端精靈應用程式,並在 Microsoft Entra 系統管理中心授與應用程式許可權
  • 在 Microsoft Entra 系統管理中心,為您的精靈應用程式建立客戶端密碼。

必要條件

  • 外部租使用者的Microsoft項目標識碼。 如果您沒有訂用帳戶, 請在開始之前建立試用租使用者具有訂 用帳戶的租使用者。
  • 此 Azure 帳戶必須具有管理應用程式的許可權。 下列任何 Microsoft Entra 角色都包含必要的權限:
    • 應用程式系統管理員
    • 應用程式開發人員
    • 雲端應用程式系統管理員

註冊 Web API 應用程式

  1. 以至少應用程式開發人員身分登入 Microsoft Entra 系統管理中心

  2. 如果您有多個租使用者的存取權,請使用 頂端功能表中的 [設定 ] 圖示 ,從 [目錄 + 訂 用帳戶] 功能表切換至外部租使用者。

  3. 流覽至 [身分>識別應用程式> 應用程式註冊]。

  4. 選取 + 新增註冊

  5. 在出現的 [註冊應用程式] 頁面 中,輸入應用程式的註冊資訊:

    1. 在 [名稱] 區段中,輸入將向用戶顯示有意義的應用程式名稱,例如 ciam-ToDoList-api

    2. 在 [支援的帳戶類型] 底下,選取 [僅在此組織目錄中的帳戶]

  6. 選取 [暫存器] 以建立應用程式。

  7. 註冊完成時,會顯示應用程式的 [ 概觀] 窗格記錄要用於應用程式原始碼的目錄(租使用者)標識碼應用程式(用戶端)標識碼

設定應用程式角色

API 必須針對應用程式發佈至少一個應用程式角色,也稱為 「應用程式許可權」,用戶端應用程式才能自行取得存取令牌。 應用程式許可權是 API 想要讓用戶端應用程式以自己身分成功驗證,而不需要登入使用者時,應該發佈的許可權類型。 若要發佈應用程式許可權,請遵循下列步驟:

  1. 從 [應用程式註冊] 頁面中,選取您建立的應用程式(例如 ciam-ToDoList-api),以開啟其 [概] 頁面。

  2. 在 [管理] 底下,選取 [應用程式角色]。

  3. 選取 [ 建立應用程式角色],然後輸入下列值,然後選取 [ 套用 ] 以儲存變更:

    屬性 數值
    Display name ToDoList.Read.All
    允許的成員類型 應用程式
    ToDoList.Read.All
    描述 允許應用程式使用 『TodoListApi』 讀取每個使用者的 ToDo 清單
  4. 再次選取 [建立應用程式角色],然後輸入下列第二個應用程式角色 的值,然後選取 [ 套用 ] 以儲存變更:

    屬性 數值
    Display name ToDoList.ReadWrite.All
    允許的成員類型 應用程式
    ToDoList.ReadWrite.All
    描述 允許應用程式使用 『ToDoListApi』 讀取和寫入每個使用者的 ToDo 清單

設定idtyp令牌宣告

您可以 idtyp 選擇性宣告來協助 Web API 判斷令牌是否為應用程式權杖或應用程式 + 使用者令牌。 雖然您可以將scp和 roles 宣告的組合用於相同用途,但使用idtyp宣告是區分應用程式令牌和應用程式 + 使用者令牌的最簡單方式。 例如,當令牌是僅限應用程式令牌時,此宣告的值是 應用程式

註冊精靈應用程式

若要讓應用程式使用 Microsoft Entra 登入使用者,Microsoft Entra 外部 ID 必須知道您建立的應用程式。 應用程式註冊會建立應用程式與 Microsoft Entra 之間的信任關係。 當您註冊應用程式時,外部標識符會產生稱為應用程式的唯一 標識碼(用戶端)標識碼,這個值可用來在建立驗證要求時識別您的應用程式。

下列步驟示範如何在 Microsoft Entra 系統管理中心註冊您的應用程式:

  1. 以至少應用程式開發人員身分登入 Microsoft Entra 系統管理中心

  2. 如果您有多個租使用者的存取權,請使用 頂端功能表中的 [設定 ] 圖示 ,從 [目錄 + 訂 用帳戶] 功能表切換至外部租使用者。

  3. 流覽至 [身分>識別應用程式> 應用程式註冊]。

  4. 選取 + 新增註冊

  5. 在出現的 [ 註冊應用程式 ] 頁面中;

    1. 輸入向應用程式用戶顯示的有意義應用程式名稱,例如 ciam-client-app
    2. 在 [支援的帳戶類型] 底下,選取 [僅在此組織目錄中的帳戶]
  6. 選取註冊

  7. 應用程式 [ 概觀 ] 窗格會在成功註冊時顯示。 記錄應用程式 (用戶端) 識別碼,以用於您的應用程式原始程式碼。

建立用戶端密碼

為已註冊的應用程式建立用戶端密碼。 應用程式會在要求令牌時,使用用戶端密碼來證明其身分識別。

  1. 從 [應用程式註冊] 頁面中,選取您建立的應用程式(例如 ciam-client-app),以開啟其 [概] 頁面。
  2. 在 [管理] 下,選取 [憑證和密碼]
  3. 選取 [新用戶端密碼]
  4. 在 [ 描述 ] 方塊中,輸入用戶端密碼的描述(例如 ciam 應用程式用戶端密碼)。
  5. 在 [到期日] 底下,選取密碼有效的持續時間(根據您的組織安全性規則),然後選取 [新增]。
  6. 記錄祕密的 [值]。 您將會在稍後的步驟中使用此值進行設定。 在您離開 憑證和秘密之後,秘密值不會再次顯示,而且無法透過任何方式擷取。 請確定您記錄它。

將 API 許可權授與精靈應用程式

  1. 從 [應用程式註冊] 頁面中,選取您建立的應用程式,例如 ciam-client-app

  2. 在 [管理] 之下選取 [API 權限]

  3. 在 [已設定的權限] 底下,選取 [新增權限]

  4. 選取 [我的組織使用的 API] 索引標籤。

  5. 在 API 清單中,選取 api,例如 ciam-ToDoList-api

  6. 選取 [應用程式許可權] 選項。 我們會選取此選項,因為應用程式會以本身身分登入,而不是使用者。

  7. 從許可權清單中,選取 [TodoList.Read.All]、[ToDoList.ReadWrite.All ] (如有必要,請使用搜尋方塊)。

  8. 選取 [ 新增許可權] 按鈕。

  9. 此時,您已正確指派許可權。 不過,由於精靈應用程式不允許使用者與其互動,因此使用者本身無法同意這些許可權。 若要解決此問題,身為系統管理員必須代表租使用者中的所有使用者同意這些許可權:

    1. 選取 [授與租用戶名稱>的<管理員同意],然後選取 []。
    2. 選取 [重新整理],然後確認 [為租用戶名稱>授與] <出現在這兩個許可權的 [狀態] 底下

記錄您的應用程式註冊詳細數據

本教學課程之後的下一個步驟是建置呼叫Web API的精靈應用程式。 請確定您有下列詳細資料:

  • 您註冊之用戶端精靈應用程式的應用程式(用戶端)標識碼。
  • 您註冊精靈應用程式的目錄 (tenant) 子域。 如果您沒有租用戶名稱,請瞭解如何 閱讀您的租使用者詳細數據
  • 您所建立精靈應用程式的應用程式秘密值。
  • 您註冊之 Web API 應用程式的應用程式(用戶端)識別碼。

後續步驟