Share via


快速入門:從 Python Flask Web 應用程式登入使用者並呼叫 Microsoft Graph

在本快速入門中,您會下載並執行 Python Flask Web 應用程式範例,示範如何驗證使用者並呼叫 Microsoft Graph API。 Microsoft Entra 組織中的使用者可以登入應用程式。

必要條件

步驟 1:註冊您的應用程式

提示

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

請遵循下列步驟,在 Microsoft Entra 系統管理中心註冊您的應用程式:

  1. 以至少雲端應用程式 管理員 istrator 身分登入 Microsoft Entra 系統管理中心
  2. 如果您有多個租使用者的存取權,請使用頂端功能表中的 [設定] 圖示,切換至您想要從 [目錄 + 訂用帳戶] 功能表註冊應用程式的租使用者。
  3. 流覽至 [身分>識別應用程式> 應用程式註冊 然後選取 [新增註冊]。
  4. 輸入應用程式的 [名稱],例如 python-webapp
  5. 在 [支援的帳戶類型] 底下,選取 [僅在此組織目錄中的帳戶]
  6. 在 [重新導向 URI] 下,選取平臺的 [Web]。
  7. 輸入的 http://localhost:5000/getAToken重新導向 URI。 您稍後可以變更此值。
  8. 選取註冊

步驟 2:新增客戶端密碼

範例應用程式會在要求令牌時,使用用戶端密碼來證明其身分識別。 請遵循下列步驟,為您的 Python Web 應用程式建立客戶端密碼:

  1. 在應用程式 [概 觀] 頁面上,記下 應用程式 (用戶端) 識別碼 值以供稍後使用。
  2. 在 [管理] 下,選取 [憑證與秘密],然後從 [客戶端密碼] 區段中,選取 [新增客戶端密碼]。
  3. 輸入客戶端密碼的描述、保留預設到期日,然後選取 [ 新增]。
  4. 客戶端密碼的值儲存在安全的位置。 您需要此值來設定程序代碼,且稍後無法加以擷取。

建立機密用戶端應用程式的認證時,Microsoft 建議您先使用憑證,而不是客戶端密碼,再將應用程式移至生產環境。 如需如何使用憑證的詳細資訊,請參閱 這些指示

步驟 3:新增範圍

由於此應用程式會登入使用者,因此您必須新增委派的許可權:

  1. 在 [管理] 底下,選取 [API 許可權>] [新增許可權]。
  2. 確認已選取 [Microsoft API] 索引標籤。
  3. 從 [ 常用 Microsoft API] 區段中,選取 [Microsoft Graph]。
  4. 從 [ 委派的許可權] 區段中,確定 已選取User.Read 。 如有必要,請使用搜尋方塊。
  5. 選取新增權限

步驟 4:下載範例應用程式

下載 Python 程式代碼範例 或複製存放庫:

git clone https://github.com/Azure-Samples/ms-identity-docs-code-python/

步驟 5:設定範例應用程式

  1. 開啟您在 IDE 中下載的應用程式,並瀏覽至範例應用程式的根資料夾。

    cd flask-web-app
    
  2. 使用 .env.sample 作為指南,在專案的根資料夾中建立 .env 檔案。

    # The following variables are required for the app to run.
    CLIENT_ID=<Enter_your_client_id>
    CLIENT_SECRET=<Enter_your_client_secret>
    AUTHORITY=<Enter_your_authority_url>
    
    • 將的值 CLIENT_ID 設定為 已註冊應用程式的應用程式(用戶端)標識碼 ,可在概觀頁面上取得。
    • 將的值 CLIENT_SECRET 設定為您在已註冊應用程式的憑證與秘密中 建立的客戶端密碼
    • 將值 AUTHORITY 設定為 https://login.microsoftonline.com/<TENANT_GUID>。 [ 目錄][租使用者] 識別碼 可在應用程式註冊概觀頁面上取得。

    環境變數會在 app_config.py參考,並保留在個別的 .env 檔案中,使其遠離原始檔控制。 提供的 .gitignore 檔案可防止 .env 檔案簽入。

步驟 6:執行範例應用程式

  1. 建立應用程式的虛擬環境:

    py -m venv .venv
    .venv\scripts\activate
    
  2. 使用 pip安裝需求:

    pip install -r requirements.txt
    
  3. 從命令行執行應用程式。 請確定您的應用程式正在與您稍早設定的重新導向 URI 相同的埠上執行。

    flask run --debug --host=localhost --port=5000
    
  4. 複製出現在終端機中的 HTTPs URL,例如 https://localhost:5000,並將它貼到瀏覽器中。 我們建議使用私人或 incognito 瀏覽器會話。

  5. 請遵循步驟並輸入必要的詳細數據,以使用您的 Microsoft 帳戶登入。 系統會要求您提供登入的電子郵件地址和密碼。

  6. 應用程式會要求許可權,以維護您授與數據存取權的許可權,以及登入並讀取配置檔,如下所示。 選取 [接受]。

此圖顯示要求同意存取所需許可權的範例應用程式。

  1. 下列螢幕快照隨即出現,指出您已成功登入應用程式。

此圖顯示範例應用程式如何成功登入使用者。

運作方式

下圖示範範例應用程式的運作方式:

此圖表顯示本快速入門所產生的範例應用程式運作方式。

  1. 應用程式會identity使用封裝,從 Microsoft 身分識別平台 取得存取令牌。 此套件建置在適用於 Python 的 Microsoft 驗證連結庫 (MSAL) 之上,以簡化 Web 應用程式中的驗證和授權。

  2. 您在上一個步驟中取得的存取令牌會作為持有人令牌,以在呼叫 Microsoft Graph API 時驗證使用者。

下一步

在下列多部分教學課程系列中建置可登入使用者並呼叫受保護 Web API 的 Python Web 應用程式,以深入瞭解: