共用方式為


快速入門:從 ASP.NET Core Web 應用程式登入使用者並呼叫 Microsoft Graph API

在本快速入門中,您會使用範例 ASP.NET Core Web 應用程式,使用 授權碼流程來登入使用者, 並呼叫 Microsoft Graph API。 此範例會使用適用於 .NET Microsoft 驗證連結庫和 Microsoft Identity Web 來處理驗證。

先決條件

註冊應用程式和記錄標識碼

若要完成註冊,請提供應用程式名稱,並指定支援的帳戶類型。 註冊之後,應用程式 概觀 窗格會顯示應用程式原始碼中所需的標識碼。

  1. 登入 Microsoft Entra 系統管理中心

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

  3. 瀏覽至 [身分識別>應用程式>應用程式註冊],選取 [[新增註冊]

  4. 輸入應用程式的 名稱,例如 identity-client-web-app

  5. 針對 支援的帳戶類型,請選取 僅限此組織目錄中的帳戶。 如需不同帳戶類型的資訊,請選取 [協助我選擇] 選項。

  6. 選取 [[註冊]。

    顯示如何在 Microsoft Entra 系統管理中心輸入名稱並選取帳戶類型的螢幕快照。

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

    螢幕快照,顯示 Microsoft Entra 系統管理中心概觀頁面上的標識碼值。

    注意

    支援的帳戶類型 可以藉由參考 修改應用程式所支援的帳戶來變更。

新增平臺重新導向網址

若要將您的應用程式類型指定至您的應用程式註冊,請遵循下列步驟:

  1. 在 [管理] 下,選取 [驗證]。
  2. 在 [平臺組態] 頁面上,選取 [[新增平臺],然後選取 [Web] 選項。
  3. 針對 重新導向 URI 輸入 https://localhost:5001/signin-oidc
  4. 在 [前端註銷 URL] 下,輸入 https://localhost:5001/signout-callback-oidc 以進行註銷。
  5. 選取 ,然後設定 以儲存您的變更。

複製或下載範例應用程式

若要取得範例應用程式,您可以從 GitHub 複製它,或將它下載為 .zip 檔案。

  • 若要複製範例,請開啟命令提示字元並流覽至您想要建立專案的位置,然後輸入下列命令:

    git clone https://github.com/Azure-Samples/ms-identity-docs-code-dotnet.git
    
  • 下載 .zip 檔案。 將它解壓縮到名稱長度少於 260 個字元的檔案路徑。

建立及上傳自我簽署憑證

若要保護您的應用程式,請將憑證新增至您的應用程式。 本節說明如何建立自我簽署憑證,並將它上傳至 Microsoft Entra 系統管理中心的應用程式註冊。

注意

自我簽署憑證只應用於開發。 在生產環境中,您應該使用來自受信任的憑證機構的證書。

  1. 使用終端機,使用下列命令來流覽以在專案目錄中建立自我簽署憑證。

    cd ms-identity-docs-code-dotnet\web-app-aspnet\
    dotnet dev-certs https -ep ./certificate.crt --trust
    
  2. 返回 Microsoft Entra 系統管理中心,然後在 [管理] 底下,選取 [憑證] & [秘密]>[上傳憑證]

  3. 選取 憑證 (0) 索引標籤,然後選取 上傳憑證

  4. [上傳憑證] 窗格會出現。 使用圖示瀏覽至您在上一個步驟中建立的憑證檔案,然後選取 [開啟]

  5. 輸入憑證的描述,例如 aspnet-web-app 的憑證,然後選取 新增

  6. 記錄 指紋 值,以供下一個步驟使用。

設定專案

  1. 在您的 IDE 中,開啟包含範例的專案資料夾 ms-identity-docs-code-dotnet\web-app-aspnet

  2. 開啟 appsettings.json,並以下列代碼段取代檔案內容;

    {
    "AzureAd": {
      "Instance": "https://login.microsoftonline.com/",
      "TenantId": "Enter the tenant ID obtained from the Microsoft Entra admin center",
      "ClientId": "Enter the client ID obtained from the Microsoft Entra admin center",
      "ClientCertificates": [
        {
          "SourceType": "StoreWithThumbprint",
          "CertificateStorePath": "CurrentUser/My",
          "CertificateThumbprint": "Enter the certificate thumbprint obtained the Microsoft Entra admin center"
        }   
      ],
      "CallbackPath": "/signin-oidc"
    },
      "DownstreamApi": {
        "BaseUrl": "https://graph.microsoft.com/v1.0/",
        "RelativePath": "me",
        "Scopes": [ 
          "user.read" 
        ]
      },
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft.AspNetCore": "Warning"
        }
      },
      "AllowedHosts": "*"
    }
    
    • TenantId - 註冊應用程式之租用戶的識別碼。 將引號內的文字取代為先前從已註冊應用程式的概觀頁面記錄下來的 Directory (tenant) ID
    • ClientId - 應用程式的識別碼,也稱為用戶端。 以先前從已註冊應用程式概觀頁面記錄的 Application (client) ID 值取代引號中的文字。
    • ClientCertificates - 自我簽署憑證用於應用程式中的驗證。 以先前記錄的憑證指紋取代 CertificateThumbprint 的文字。

執行應用程式並登入

  1. 在您的項目目錄中,使用終端機輸入下列命令:

    dotnet run
    
  2. 複製終端機中顯示的 https URL,例如,https://localhost:5001,然後將它貼到瀏覽器中。 我們建議使用私人或 incognito 瀏覽器會話。

  3. 請遵循步驟並輸入必要的詳細數據,以使用您的Microsoft帳戶登入。 系統會要求您提供電子郵件位址,以便將一次性密碼傳送給您。 出現提示時,請輸入程序代碼。

  4. 應用程式會要求許可權,以保持您授與的數據存取權,並登入您的帳號和讀取您的個人資料。 選擇接受

  5. 下列螢幕快照隨即出現,指出您已登入應用程式,並已從 Microsoft Graph API 存取您的設定檔詳細數據。

    描述 API 呼叫結果的螢幕快照。

從應用程式註銷

  1. 尋找頁面右上角的 [登出] 鏈接,然後點選。
  2. 系統會提示您挑選要註銷的帳戶。 選取您用來登入的帳戶。
  3. 隨即出現訊息,指出您註銷。您現在可以關閉瀏覽器視窗。