首頁 後端開發 php教程 使用PHP 取得 Azure Active Directory 令牌 的方法

使用PHP 取得 Azure Active Directory 令牌 的方法

Sep 08, 2017 am 09:55 AM
active azure directory

在呼叫 Azure Rest API 時,如果是屬於 Azure Resource Manager 的 API,則需要使用 Azure Active Directory (Azure AD)認證取得令牌(Token),然後才能夠進行存取。

 以下是建立 Azure AD 應用,並授權其可以存取管理 Azure 的資源的步驟:

取得更好的閱讀體驗也可以點擊此處。

 Note

以下認證方式,只適用於 Azure Resource Manager 的 API。 即 endpoint 為 management.chinacloudapi.cn 的 API,不適用於 Azure Service Manager 的 API(endpoint 為 management.core.chinacloudapi.cn 的 API)。

 登入Azure 帳戶(PowerShell)



  1. # 記錄取得到的TenantID 以供後續程式使用。

  2. 選擇目前訂閱ID
  3. 設定目前訂閱,多訂閱環境下需要執行該步驟:

    Set-AzureRmContext -SubscriptionId <subscription ID>
    登入後複製
  4. 建立AD 應用程式

查看新建立的應用對象,屬性ApplicationId,在後續會用來建立服務憑證,角色設定和Access Token。

$azureAdApplication = New-AzureRmADApplication -DisplayName "exampleapp" -HomePage "https://www.contoso.org" -IdentifierUris "https://www.contoso.org/example" -Password "<Your_Password>"
登入後複製

建立服務憑證

    Azure AD 應用程式建立服務憑證:
  1. New-AzureRmADServicePrincipal -ApplicationId $azureAdApplication.ApplicationId
    登入後複製

  2. 當創建完成服務憑證後,初始是沒有任何權限的,我們需要為其設定權限範圍。

  3. 授權
  4. 為您的服務憑證新增角色設置,在該範例中,為您的服務憑證設定存取您訂閱下所有資源的讀取權限。 如果想了解更多內容,請參考:Azure Role-based Access Control。

    New-AzureRmRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $azureAdApplication.ApplicationId
    登入後複製
  5. 其中
RoleDefinitionName

有三種權限設定:

Reader 對Azure資源有讀取權限。

Contributor 對Azure資源有管理權限,但無法授權他人。

Owner 對Azure資源擁有管理權限,也可以授權他人管理。

######  #########呼叫Oauth2 API 取得Token######這樣Azure AD Application 就創建完成了,我們可以使用以下三個信息,來獲取認證的Token。 ############telent-id 對應訂閱資訊上使用的 telentID。 ############application-id 建立應用程式傳回的 ApplicationID。 ############app password 建立應用程式時填入的密碼。 ############取得 Token 的方式,使用 Azure login oauth2 的認證接口,如果想了解更多,請參考此文件:Using the Azure Resource Manager REST API。 ######請參考以下程式碼:###
$tenlent_id = &#39;Your Sub Tenlent ID&#39;;
$client_id = &#39;Application ID&#39;;
$client_secret = &#39;Application Password&#39;;

$auth_url = &#39;https://login.chinacloudapi.cn/&#39;.$tenlent_id.&#39;/oauth2/token?api-version=1.0&#39;;
$auth = curl_init($auth_url);
$post_data= &#39;grant_type=client_credentials&resource=https://management.chinacloudapi.cn/&client_id=&#39;.$client_id.&#39;&client_secret=&#39;.urlencode($client_secret);

curl_setopt_array($auth, array(
CURLOPT_VERBOSE => 1,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $post_data,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_HTTPHEADER => array(
&#39;Content-Type: application/x-www-form-urlencoded&#39;
)
));
curl_exec($atuh);
echo "\n";
登入後複製
###執行查詢後會得到 Token 數據, access_token 即為存取 Token。 ###
{
"token_type": "Bearer",
"expires_in": "3600",
"expires_on": "1455680701",
"not_before": "1455676801",
"resource": "https://management.azure.com/",
"access_token": "eyJ0eXAiOi…"
}
登入後複製
###然後將您要存取的API 請求頭上加上Authorization 的Header 設置,並將其值設為:###############Token 之前要加上Bearer。 ######呼叫範例:###
$token = &#39;eyJ0eXA…&#39;;
$host = &#39;management.chinacloudapi.cn&#39;;
$version = &#39;2015-09-01&#39;;
$url = &#39;https://&#39;.$host.&#39;/subscriptions/5bbf0cbb-647d-4bd8-b4e6-26629f109bd7/resourceGroups/Default-MySql-ChinaNorth/providers/Microsoft.MySql/servers/poddbtest/databases/kevintest?api-version=&#39;.$version;
$ch = curl_init($url);
$data = array(
&#39;properties&#39; => array(
&#39;charset&#39; => &#39;utf8&#39;,
&#39;collation&#39; => &#39;utf8_general_ci&#39;
),
);
$json = json_encode($data);

curl_setopt_array($ch, array(
CURLOPT_VERBOSE => 1,
CURLOPT_CUSTOMREQUEST => &#39;PUT&#39;,
CURLOPT_POSTFIELDS => $json,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_HTTPHEADER => array(
&#39;Content-type:application/json&#39;,
&#39;Authorization:Bearer &#39;.$token
)
));

$ret =curl_exec($ch);
if (empty($ret)) {
    // some kind of an error happened
    echo &#39;Curl error: &#39; . curl_error($ch);
} else {
    $info = curl_getinfo($ch);
}
echo "\n";
登入後複製

以上是使用PHP 取得 Azure Active Directory 令牌 的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

錯誤代碼 801c03ed:如何在 Windows 11 上修復它 錯誤代碼 801c03ed:如何在 Windows 11 上修復它 Oct 04, 2023 pm 06:05 PM

錯誤801c03ed通常附帶以下訊息:管理員策略不允許此使用者加入設備。這個錯誤訊息將阻止你安裝Windows並加入網絡,從而阻止你使用電腦,因此盡快解決此問題非常重要。什麼是錯誤代碼801c03ed?這是Windows安裝錯誤,由於以下原因而發生:Azure設定不允許新用戶加入。 Azure上未啟用裝置物件。 Azure面板中的硬體雜湊發生故障。如何修復Windows801上的錯誤代碼03c11ed? 1.檢查Intune設定登入Azure入口網站。導航至“設備”,然後選擇“設備設定”。將「用戶可以將

Active Directory 使用者和電腦遺失 [以 3 種方式修復] Active Directory 使用者和電腦遺失 [以 3 種方式修復] Apr 20, 2023 pm 01:25 PM

ActiveDirectory使用者和電腦(ADUC)遺失是許多WindowsPro使用者報告的最令人沮喪的問題之一。 ADUC是一個令人難以置信的MMC管理單元,它使管理員能夠管理MicrosoftActiveDirectory。但是,由於某種原因,它在Windows伺服器或Enterprise/Pro版本中缺失。讓我們深入了解它丟失的原因以及我們如何修復它。 Windows11是否有ActiveDirectory? ActiveDirectory是任何想要管理遠端

利用Azure語意搜尋與OpenAI,打造認知搜尋系統 利用Azure語意搜尋與OpenAI,打造認知搜尋系統 Oct 12, 2023 am 10:18 AM

旨在簡化文件搜索,多種服務和平台的結合都是獲得無與倫比性能的關鍵。在本文中,我們將探索一種將 Azure 認知服務的強大功能與 OpenAI 的功能結合的整體方法。透過深入研究意圖識別、文件過濾、特定領域的演算法和文字摘要,您將學習創建一個不僅可以理解用戶意圖而且可以有效處理和呈現資訊的系統。

微軟 Azure OpenAI 服務現已支援 GPT-4 Turbo with Vision 微軟 Azure OpenAI 服務現已支援 GPT-4 Turbo with Vision Dec 18, 2023 am 08:18 AM

本站12月17日訊息,AzureOpenAI服務提供對OpenAI強大語言模型的RESTAPI訪問,這些模型包括GPT-4、GPT-3.5-Turbo和嵌入模型系列。微軟宣布進一步加強AzureOpenAI服務的功能,並為客戶提供了最新的GPT-4TurbowithVision的公開預覽版本這個先進的多模態AI模型繼承了GPT-4Turbo的所有強大功能,並且還加入了圖像處理和分析的能力。這樣一來,我們就有了利用GPT-4處理更多任務的機會,例如改善無障礙輔助功能、解釋和分析視覺化數據,以及進行

微軟 Azure 將從 10 月開始推行強制多因素身份驗證功能 微軟 Azure 將從 10 月開始推行強制多因素身份驗證功能 Aug 17, 2024 am 07:40 AM

本站8月16日消息,微軟昨天發布了一則公告,宣布將從10月開始強制實施多因素身分驗證(MFA)功能,以協助降低帳號被入侵的可能性。微軟表示,MFA可以阻止99.2%以上的此類帳戶入侵攻擊,因此該措施是強制性的。根據介紹,這個過程將分為兩個階段逐步實施,本站總結如下:第1階段:從10月開始,登入Azure入口網站、MicrosoftEntra管理中心和Intune管理中心都將需要MFA,但不會影響其他Azure客戶端。第2階段:從2025年初開始,MFA要求將逐步拓展到其他Azure客戶端,例如Azur

微軟在應對3.47 Tbps DDoS攻擊中創下防禦紀錄 微軟在應對3.47 Tbps DDoS攻擊中創下防禦紀錄 Apr 22, 2023 am 08:52 AM

微軟去年11月,它緩解了3.47TbpsDDoS(分散式阻斷服務)攻擊,無意中創造了新記錄。在一篇部落格文章中,這家Redmond巨頭分享了2021年第三季的AzureDDoS保護資料。該公司指出,2021年下半年DDoS攻擊數量增加。由於攻擊服務價格低廉,DDoS是任何人都可以使用的流行攻擊方法。 2021年下半年,微軟平均每天緩解1,955次攻擊,比上半年增加40%。然而,與2021年8月10日緩解的4,296次攻擊相比,這相形見絀。總體而言,

Windows Server VNext Preview 內部版 25099 現已推出 Windows Server VNext Preview 內部版 25099 現已推出 Apr 14, 2023 pm 01:55 PM

微軟已發布 Windows Server Insider Preview 的新版本。本週的 build 25099 現在可以從Windows Server Insider 網站下載 ISO和 VHDX,但按照慣例,沒有完整的變更日誌可言,因此不清楚有什麼新內容。微軟再次表示品牌尚未更新,在預覽版中仍為 Windows Server 2022。此外,微軟鼓勵內部人員在Azure

See all articles