快速入門:設定用戶端應用程式以存取 Web API

在本快速入門中,您會提供向 Microsoft 身分識別平台 註冊的用戶端應用程式,並具有範圍、許可權型存取您自己的 Web API。 您也可以提供用戶端應用程式對 Microsoft Graph 的存取權。

藉由在用戶端應用程式註冊中指定 Web API 的範圍,用戶端應用程式可以從 Microsoft 身分識別平台 取得包含這些範圍的存取令牌。 在程式代碼中,Web API 接著可以根據存取令牌中找到的範圍,提供其資源的許可權型存取權。

必要條件

新增存取 Web API 的許可權

提示

本文中的步驟可能會根據您從開始的入口網站稍有不同。

存取 API 需要設定存取範圍和角色。 如果您想要將資源應用程式 Web API 公開給用戶端應用程式,請設定 API 的存取範圍和角色。 如果您想要讓用戶端應用程式存取 Web API,請設定許可權以存取應用程式註冊中的 API。

在第一個案例中,您會將自己的 Web API 存取權授與用戶端應用程式,這兩者都應該註冊為必要條件的一部分。 如果您尚未註冊用戶端應用程式和 Web API,請完成兩 個必要條件 文章中的步驟。

此圖顯示兩個應用程式註冊彼此的關聯性。 在本節中,您會將許可權新增至用戶端應用程式的註冊。

Line diagram showing a web API with exposed scopes on the right and a client app on the left with those scopes selected as permissions

註冊用戶端應用程式和 Web API,並藉由建立範圍來公開 API 之後,您可以遵循下列步驟來設定用戶端對 API 的許可權:

  1. 以至少雲端應用程式 管理員 istrator 身分登入 Microsoft Entra 系統管理中心

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

  3. 流覽至 [身分>識別應用程式> 應用程式註冊],然後選取用戶端應用程式(而非您的 Web API)。

  4. 選取 [API 許可權>][新增許可權>我的 API]。

  5. 選取您註冊為必要條件一部分的 Web API。

    預設會選取委派的許可權 。 委派的許可權適用於以登入使用者身分存取 Web API 的用戶端應用程式,且其存取權應受限於您在下一個步驟中選取的許可權。 保留 為此範例選取的委派許可權

    應用程式許可權 適用於需要自行存取 Web API 的服務或精靈類型應用程式,而不需要使用者進行登入或同意。 除非您已定義 Web API 的應用程式角色,否則此選項會停用。

  6. 在 [選取許可權] 下,展開您為 Web API 定義的範圍的資源,然後選取用戶端應用程式代表登入使用者應具備的許可權。

    如果您使用上一個快速入門中指定的範例範圍名稱,您應該會看到 Employees.Read.AllEmployees.Write.All。 選取 [Employees.Read.All ] 或您在完成必要條件時可能建立的另一個許可權。

  7. 選取 [新增許可權 ] 以完成程式。

將許可權新增至 API 之後,您應該會在 [設定的許可權] 底下 看到選取的許可權。 下圖顯示已新增至用戶端應用程式註冊的 Employees.Read.All 委派許可權範例

Configured permissions pane in the Azure portal showing the newly added permission

您也可以注意到 Microsoft Graph API 的 User.Read 許可權。 當您在 Azure 入口網站 中註冊應用程式時,會自動新增此許可權。

新增許可權以存取 Microsoft Graph

除了代表登入的使用者存取您自己的 Web API 之外,您的應用程式可能也需要存取或修改儲存在 Microsoft Graph 中的使用者(或其他)數據。 或者,您可能有需要自行存取 Microsoft Graph 的服務或精靈應用程式,而不需要任何用戶互動即可執行作業。

Microsoft Graph 的委派許可權

設定 Microsoft Graph 的委派權限,讓您的用戶端應用程式能夠代表登入的使用者執行作業,例如讀取其電子郵件或修改其設定檔。 根據預設,當使用者登入時,系統會詢問用戶端應用程式的使用者同意您已為其設定的委派權限。

  1. 以至少雲端應用程式 管理員 istrator 身分登入 Microsoft Entra 系統管理中心

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

  3. 流覽至 [身分>識別應用程式> 應用程式註冊],然後選取用戶端應用程式。

  4. 選取 [API 許可權>] [新增許可權>Microsoft Graph]

  5. 選取委派的權限。 Microsoft Graph 會公開許多權限,其中最常顯示在清單頂端。

  6. 在 [選取許可權] 底下,選取下列許可權:

    權限 描述
    email 檢視使用者的電子郵件地址
    offline_access 維護您授與其存取權的資料存取權
    openid 將使用者登入
    profile 檢視使用者的基本個人檔案
  7. 選取 [新增許可權 ] 以完成程式。

每當您設定許可權時,系統會在登入時要求應用程式的使用者同意,以允許您的應用程式代表他們存取資源 API。

身為系統管理員,您也可以代表 所有使用者 授與同意,因此不會提示他們這麼做。 稍後會在 中討論 管理員 同意如需本文的 API 許可權和管理員同意一節的詳細資訊。

Microsoft Graph 的應用程式權限

針對需要自行驗證的應用程式設定應用程式許可權,而不需要用戶互動或同意。 應用程式許可權通常是由背景服務或精靈應用程式使用,這些應用程式會以「無頭部」方式存取 API,以及存取另一個(下游)API 的 Web API。

在下列步驟中,您會將許可權授與 Microsoft Graph 的 Files.Read.All 許可權作為範例。

  1. 以至少雲端應用程式 管理員 istrator 身分登入 Microsoft Entra 系統管理中心

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

  3. 流覽至 [身分>識別應用程式> 應用程式註冊],然後選取用戶端應用程式。

  4. 選取 [API 許可權>][新增許可權>Microsoft Graph>應用程式許可權]。

  5. Microsoft Graph 公開的所有許可權都會顯示在 [選取許可權] 底下

  6. 選取您想要授與應用程式的許可權。 例如,您可能會有一個精靈應用程式,可掃描您組織中的檔案,並在特定檔類型或名稱上發出警示。

    在 [選取許可權] 底下,展開 [檔案],然後選取 [Files.Read.All] 許可權。

  7. 選取新增權限

某些許可權,例如 Microsoft Graph 的 Files.Read.All 許可權,需要管理員同意。 您可以選取 [授與管理員同意] 按鈕來授與系統管理員同意,稍後會在 [管理員 同意] 按鈕一節中討論。

設定用戶端認證

使用應用程式許可權的應用程式會使用自己的認證自行驗證,而不需要任何用戶互動。 在您的應用程式 (或 API) 可以使用應用程式權限存取 Microsoft Graph、您自己的 Web API 或其他 API 之前,您必須設定該用戶端應用程式的認證。

如需設定應用程式認證的詳細資訊,請參閱快速入門:向 Microsoft 身分識別平台 註冊應用程式一節

應用程式註冊的 [API 許可權] 窗格包含 [已設定的許可權] 數據表,也可能包含 [其他許可權授與的數據表]。 下表和 管理員 同意按鈕都會在下列各節中說明。

已設定權限

[API 許可權] 窗格上的 [已設定的許可權] 資料表會顯示應用程式對於基本作業所需的許可權清單 - 必要的資源存取權 (RRA) 清單。 使用者或其系統管理員必須先同意這些許可權,才能使用您的應用程式。 其他選擇性許可權可以在運行時間稍後要求(使用動態同意)。

這是用戶必須同意應用程式的最低許可權清單。 可能會有更多,但這些一律是必要的。 若要獲得安全性,並協助使用者和系統管理員更輕鬆使用您的應用程式,請永遠不要要求您不需要的任何專案。

您可以使用上述步驟,或從 與其他授與的許可權,新增或移除此數據表中顯示的許可權(在下一節所述)。 身為系統管理員,您可以授與系統管理員同意,以取得數據表中顯示之 API 完整許可權集的同意,並撤銷個別許可權的同意。

授與其他許可權

您也可以在 [API 許可權] 窗格上看到標題為 {tenant} 授與其他許可權數據表。 針對 {your tenant} 數據表授與的其他許可權會顯示尚未在應用程式對象上明確設定之租使用者已授與整個租使用者的許可權。 系統管理員代表所有用戶動態要求並同意這些許可權。 只有在至少有一個適用許可權時,才會顯示此區段。

您可以將 API 許可權的完整集合或出現在此資料表的個別許可權新增至 [ 設定的許可權 ] 資料表。 身為系統管理員,您可以在本節中撤銷 API 或個別許可權的管理員同意。

[ 授與 {您的租使用者] 按鈕的 [授與管理員同意] 按鈕可讓系統管理員同意為應用程式設定的許可權。 當您選取按鈕時,會顯示一個對話框,要求您確認同意動作。

Grant admin consent button highlighted in the Configured permissions pane in the Azure portal

授與同意之後,需要管理員同意的許可權會顯示為已授與同意:

Configure permissions table in Azure portal showing admin consent granted for the Files.Read.All permission

如果您不是系統管理員,或尚未為應用程式設定任何許可權,則會停用 [授與管理員同意] 按鈕。 如果您有已授與但未設定的權限,系統管理員同意按鈕會提示您處理這些權限。 您可以將其新增至已設定權限,或將其移除。

下一步

請前進到系列中的下一個快速入門,以瞭解如何設定哪些帳戶類型可以存取您的應用程式。 例如,您可能只想要限制對您組織中的那些使用者(單一租使用者)的存取權,或允許其他 Microsoft Entra 租使用者(多租使用者)中的使用者,以及具有個人 Microsoft 帳戶的使用者(MSA)。