Share via


產生驗證令牌

在本文中,您將瞭解如何產生服務主體驗證令牌、用戶的驗證令牌,以及使用者的重新整理令牌。

使用 Microsoft Entra ID 註冊您的應用程式

  1. 若要布建適用於能源的 Azure 數據管理員平臺,您必須在 Azure 入口網站 應用程式註冊頁面上註冊您的應用程式。 您可以使用 Microsoft 帳戶或公司或學校帳戶來註冊應用程式。 如需如何設定的步驟,請參閱 註冊您的應用程式檔

  2. 在應用程式概觀區段中,如果沒有指定的重新導向 URI,您可以選取 [新增平臺>Web],新增 http://localhost:8080,然後選取 [儲存]。

    顯示將 URI 新增至應用程式的螢幕快照。

擷取

您也可以在應用程式註冊 Azure 入口網站 之後找到參數。

尋找租用戶標識碼

  1. 移至您組織的 Microsoft Entra 帳戶。 您可以在 Azure 入口網站 的搜尋列中搜尋 Microsoft Entra 識別碼

  2. 在 [ 概觀] 索引標籤的 [基本資訊] 區段底下,尋找 [租用戶標識符]。

  3. 複製值並將 tenant-ID 它貼到編輯器中,以供稍後使用。

    顯示搜尋 Microsoft Entra 識別碼的螢幕快照。

    顯示尋找租用戶標識碼的螢幕快照。

尋找用戶端識別碼

client-id是您在布建 Azure Data Manager for Energy 實例期間用來註冊應用程式的相同值。 通常稱為 app-id

  1. 移至 [適用於能源 的 Azure 數據管理員概觀 ] 頁面。 在 [ 基本資訊] 窗格中,尋找 用戶端標識符

  2. 複製值並將 client-id 它貼到編輯器中,以供稍後使用。

  3. 目前,一個適用於能源的 Azure 數據管理員實例可讓一個實例與一個 app-id 實例產生關聯。

    重要

    client-id作為權利 API 呼叫中值傳遞的 ,必須是用來布建 Azure Data Manager for Energy 實例的相同。

    顯示尋找已註冊應用程式的用戶端識別碼的螢幕快照。

尋找客戶端密碼

client-secret是您的應用程式可用來取代憑證來識別本身的字串值。 有時稱為應用程式密碼。

  1. 移至 應用程式註冊

  2. 在 [管理] 區段下,選取 [憑證和秘密]。

  3. 選取 [新增客戶端密碼 ],以針對您用來建立 Azure Data Manager for Energy 實例的用戶端識別碼建立客戶端密碼。

  4. 記錄秘密的值,以供稍後在用戶端應用程式程式代碼中使用。

    app-id 存取令牌,而且 client-secret 具有實例的基礎結構系統管理員存取權。

    警告

    別忘了記錄秘密的值。 離開此頁面進行客戶端密碼建立之後,永遠不會再顯示此秘密值。

    顯示尋找客戶端密碼的螢幕快照。

尋找 redirect-uri

redirect-uri應用程式的 ,其中您的應用程式會傳送和接收驗證回應。 它必須完全符合您在入口網站中註冊的其中一個重新導向 URI,不同之處在於它必須經過 URL 編碼。

  1. 移至 應用程式註冊
  2. 在 [管理]段底下,選取 [驗證]。
  3. redirect-uri擷取您應用程式的 [或回復 URL],以接收來自 Microsoft Entra ID 的回應。

顯示 redirect-uri 的螢幕快照。

尋找適用於能源的 Azure Data Manager 實例的 adme-url

  1. 使用上述產生的 建立適用於能源的 client-id Azure 數據管理員實例

  2. 移至 Azure 入口網站 上的 Azure Data Manager for Energy Overview 頁面。

  3. 在 [ 基本資訊] 窗格中,複製 URI。

    顯示尋找 Azure Data Manager for Energy 實例 URI 的螢幕快照。

尋找 data-partition-id

您有兩種方式可取得 Azure Data Manager for Energy 實例中的數據分割清單。

  • 選項 1:在 Azure Data Manager for Energy UI 的 [ 進階 ] 區段下,移至 [數據分割 ] 功能表項。

    顯示從 Azure Data Manager for Energy 實例尋找數據分割標識碼的螢幕快照。

  • 選項 2:在 [Azure Data Manager for Energy Overview] 頁面的 [基本資訊] 窗格中,選取 [數據分割] 字段下方 [檢視]。

    顯示從 Azure Data Manager for Energy 實例 [概觀] 頁面尋找數據分割標識符的螢幕快照。

    此螢幕快照顯示從具有數據分割的 Azure Data Manager [能源實例概觀] 頁面尋找數據分割識別符。

尋找網域

根據預設, domain 所有適用於能源的 Azure Data Manager 實例都是 dataservices.energy。

產生用戶端識別碼驗證令牌

將佔位元值取代為先前步驟稍早找到的對應值之後,請在 Azure Cloud Bash執行下列 curl 命令。 回應中的存取令牌是 client-id 驗證令牌。

要求格式

curl --location --request POST 'https://login.microsoftonline.com/<tenant-id>/oauth2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'scope=<client-id>.default' \
--data-urlencode 'client_id=<client-id>' \
--data-urlencode 'client_secret=<client-secret>' \
--data-urlencode 'resource=<client-id>'

範例回覆

    {
        "token_type": "Bearer",
        "expires_in": 86399,
        "ext_expires_in": 86399,
        "access_token": "abcdefgh123456............."
    }

產生使用者驗證令牌

產生使用者的驗證令牌是兩個步驟的程式。

取得 authorization-code

取得許多 OpenID 連線 (OIDC) 和 OAuth 2.0 流程存取令牌的第一個步驟是將使用者重新導向至 Microsoft 身分識別平台 /authorize 端點。 Microsoft Entra ID 會登入使用者,並要求他們同意您的應用程式要求的許可權。 在授權碼授與流程中,取得同意之後,Microsoft Entra ID 會將授權碼傳回至您的應用程式,以在 Microsoft 身分識別平台 /token 端點兌換存取令牌。

  1. 使用參數準備要求格式。

    https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize?client_id=<client-id>
    &response_type=code
    &redirect_uri=<redirect-uri>
    &response_mode=query
    &scope=<client-id>%2f.default&state=12345&sso_reload=true
    
  2. 取代參數之後,您可以在任何瀏覽器的 URL 中貼上要求,然後選取 Enter。

  3. 如果您尚未登入,請登入您的 Azure 入口網站。

  4. 您可能會看到 「Hmmm...在瀏覽器中無法連線到此頁面」錯誤訊息。 您可以忽略它。

    localhost 重新導向的螢幕快照。

  5. 瀏覽器會在驗證成功時重新導向至 http://localhost:8080/?code={authorization code}&state=...

  6. 從瀏覽器的 URL 列複製回應,並在 和 &state之間code=擷取文字。

    http://localhost:8080/?code=0.BRoAv4j5cvGGr0...au78f&state=12345&session....
    
  7. authorization-code將此保持方便,以供日後使用。

    參數 描述
    code 應用程式所要求的授權碼。 應用程式可以使用授權碼來要求目標資源的存取權杖。 授權碼的存留時間很短。 一般而言,它們會在大約 10 分鐘後到期。
    state 如果要求中包含 state 參數,則回應中應該會出現相同的值。 應用程式必須確認要求與回覆中的狀態值完全相同。 這項檢查有助於偵測 對用戶端的 CSRF 攻擊。
    session_state 識別目前用戶會話的唯一值。 此值是 GUID,但應該視為未經檢查而通過的不透明值。

警告

在 Postman 中執行 URL 將無法運作,因為它需要額外的設定來擷取令牌。

取得驗證令牌和重新整理令牌

第二個步驟是取得驗證令牌和重新整理令牌。 您的應用程式會使用上一個步驟中收到的授權碼,藉由將POST要求傳送至 /token 端點來要求存取令牌。

要求格式

  curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d 'client_id=<client-id>
  &scope=<client-id>%2f.default openid profile offline_access
  &code=<authorization-code>
  &redirect_uri=<redirect-uri>
  &grant_type=authorization_code
  &client_secret=<client-secret>' 'https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token'

範例回覆

{
  "token_type": "Bearer",
  "scope": "User.Read profile openid email",
  "expires_in": 4557,
  "access_token": "eyJ0eXAiOiJKV1QiLCJub25jZSI6IkJuUXdJd0ZFc...",
  "refresh_token": "0.ARoAv4j5cvGGr0GRqy180BHbR8lB8cvIWGtHpawGN..."
}
參數 描述
token_type 指出權杖類型的值。 Microsoft Entra ID 支援的唯一類型是 Bearer。
範圍 (scope) 存取令牌有效之 Microsoft Graph 許可權的空間分隔清單。
expires_in 存取權杖的有效時間 (以秒為單位)。
access_token 要求的存取權杖。 您的應用程式可以使用此令牌來呼叫 Microsoft Graph。
refresh_token OAuth 2.0 重新整理權杖。 您的應用程式可以在目前的存取令牌過期之後,使用此令牌來取得額外的存取令牌。 重新整理令牌會長期存在,可用來保留資源長時間的存取權。

如需產生使用者存取令牌和使用重新整理令牌來產生新存取令牌的詳細資訊,請參閱 產生重新整理令牌

OSDU® 是開放群組的商標。

下一步

若要深入瞭解如何使用產生的重新整理令牌,請參閱: