使用PHP 获取 Azure Active 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)
记录获取到的 TenantID 以供后续程序使用。
选择当前订阅 ID
设置当前订阅,多订阅环境下需要执行该步骤 :
Set-AzureRmContext -SubscriptionId <subscription ID>
创建 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 应用创建服务凭证:
New-AzureRmADServicePrincipal -ApplicationId $azureAdApplication.ApplicationId
当创建完成服务凭证后,初始是没有任何权限的,我们需要为其设置权限范围。
授权
为您的服务凭证添加角色设置,在该例中,为您的服务凭证设置访问您订阅下所有资源的读权限。 如果想了解更多内容,请参考:Azure Role-based Access Control。
New-AzureRmRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $azureAdApplication.ApplicationId
其中 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 = 'Your Sub Tenlent ID'; $client_id = 'Application ID'; $client_secret = 'Application Password'; $auth_url = 'https://login.chinacloudapi.cn/'.$tenlent_id.'/oauth2/token?api-version=1.0'; $auth = curl_init($auth_url); $post_data= 'grant_type=client_credentials&resource=https://management.chinacloudapi.cn/&client_id='.$client_id.'&client_secret='.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( 'Content-Type: application/x-www-form-urlencoded' ) )); 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 = 'eyJ0eXA…'; $host = 'management.chinacloudapi.cn'; $version = '2015-09-01'; $url = 'https://'.$host.'/subscriptions/5bbf0cbb-647d-4bd8-b4e6-26629f109bd7/resourceGroups/Default-MySql-ChinaNorth/providers/Microsoft.MySql/servers/poddbtest/databases/kevintest?api-version='.$version; $ch = curl_init($url); $data = array( 'properties' => array( 'charset' => 'utf8', 'collation' => 'utf8_general_ci' ), ); $json = json_encode($data); curl_setopt_array($ch, array( CURLOPT_VERBOSE => 1, CURLOPT_CUSTOMREQUEST => 'PUT', CURLOPT_POSTFIELDS => $json, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HTTPHEADER => array( 'Content-type:application/json', 'Authorization:Bearer '.$token ) )); $ret =curl_exec($ch); if (empty($ret)) { // some kind of an error happened echo 'Curl error: ' . curl_error($ch); } else { $info = curl_getinfo($ch); } echo "\n";
Atas ialah kandungan terperinci 使用PHP 获取 Azure Active Directory 令牌 的方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Ralat 801c03ed biasanya disertakan dengan mesej berikut: Dasar pentadbir tidak membenarkan pengguna ini menyertai peranti. Mesej ralat ini akan menghalang anda daripada memasang Windows dan menyertai rangkaian, dengan itu menghalang anda daripada menggunakan komputer anda, jadi adalah penting untuk menyelesaikan isu ini secepat mungkin. Apakah kod ralat 801c03ed? Ini ialah ralat pemasangan Windows yang berlaku atas sebab berikut: Persediaan Azure tidak membenarkan pengguna baharu untuk menyertai. Objek peranti tidak didayakan pada Azure. Kegagalan cincang perkakasan dalam panel Azure. Bagaimana untuk membetulkan kod ralat 03c11ed pada Windows 801? 1. Semak tetapan Intune Log masuk ke portal Azure. Navigasi ke Peranti dan pilih Tetapan Peranti. Tukar "Pengguna boleh
![Pengguna dan Komputer Direktori Aktif Tiada [Diperbaiki dalam 3 Cara]](https://img.php.cn/upload/article/000/465/014/168196830849131.png?x-oss-process=image/resize,m_fill,h_207,w_330)
Kehilangan Pengguna dan Komputer Direktori Aktif (ADUC) adalah salah satu isu paling mengecewakan yang dilaporkan oleh ramai pengguna Windows Pro. ADUC ialah snap-in MMC yang luar biasa yang membolehkan pentadbir mengurus Microsoft Active Directory. Walau bagaimanapun, atas sebab tertentu ia tiada dalam edisi Windows Server atau Enterprise/Pro. Mari kita lihat dengan lebih dekat mengapa ia hilang dan cara kita boleh membetulkannya. Adakah Windows 11 mempunyai Active Directory? Active Directory berguna untuk sesiapa sahaja yang ingin mengurus jauh

Direka bentuk untuk memudahkan carian dokumen, gabungan perkhidmatan dan platform adalah kunci kepada prestasi yang tiada tandingan. Dalam artikel ini, kami akan meneroka pendekatan holistik yang menggabungkan kuasa Perkhidmatan Kognitif Azure dengan keupayaan OpenAI. Dengan mendalami pengecaman niat, penapisan dokumen, algoritma khusus domain dan ringkasan teks, anda akan belajar untuk mencipta sistem yang bukan sahaja memahami niat pengguna tetapi juga memproses dan mempersembahkan maklumat dengan cekap.


Menurut berita dari tapak ini pada 17 Disember, perkhidmatan Azure OpenAI menyediakan akses API REST kepada model bahasa OpenAI yang berkuasa, termasuk GPT-4, GPT-3.5-Turbo dan siri model terbenam. Microsoft mengumumkan peningkatan lanjut pada perkhidmatan Azure OpenAI dan menyediakan pelanggan versi pratonton awam GPT-4 Turbo dengan Vision Model AI berbilang mod termaju ini mewarisi semua ciri berkuasa GPT-4 Turbo dan juga menambah pemprosesan imej dan kebolehan. Ini membuka peluang untuk memanfaatkan GPT-4 untuk lebih banyak tugas, seperti meningkatkan kebolehcapaian, mentafsir dan menganalisis visualisasi data, dan

Menurut berita dari laman web ini pada 16 Ogos, Microsoft telah mengeluarkan pengumuman semalam, mengumumkan bahawa ia akan menguatkuasakan fungsi pengesahan berbilang faktor (MFA) mulai Oktober untuk membantu mengurangkan kemungkinan penggodaman akaun. Microsoft berkata MFA boleh menghalang lebih daripada 99.2% daripada serangan kompromi akaun sedemikian, jadi langkah itu adalah wajib. Menurut laporan, proses ini akan dilaksanakan secara beransur-ansur dalam dua fasa Tapak ini meringkaskannya seperti berikut: Fasa 1: Bermula dari Oktober, MFA akan diperlukan untuk log masuk ke portal Azure, Pusat Pengurusan Microsoft Entra dan Pusat Pengurusan Intune, tetapi. ia tidak akan menjejaskan pelanggan Azure yang lain. Fasa 2: Bermula pada awal 2025, keperluan MFA akan berkembang secara beransur-ansur kepada pelanggan Azure yang lain, seperti Azure

Microsoft secara tidak sengaja menetapkan rekod baharu pada November lalu apabila ia mengurangkan serangan DDoS (penafian perkhidmatan teragih) 3.47Tbps. Dalam catatan blog, gergasi Redmond berkongsi data perlindungan Azure DDoS untuk suku ketiga 2021. Syarikat itu menyatakan bahawa bilangan serangan DDoS meningkat pada separuh kedua 2021. DDoS ialah kaedah serangan popular yang boleh digunakan oleh sesiapa sahaja kerana harga perkhidmatan serangan yang rendah. Pada separuh kedua 2021, Microsoft mengurangkan purata 1,955 serangan setiap hari, peningkatan sebanyak 40% daripada separuh pertama tahun itu. Walau bagaimanapun, ini tidak begitu baik berbanding dengan 4,296 serangan yang dikurangkan pada 10 Ogos 2021. secara keseluruhan,

Microsoft telah mengeluarkan versi baharu Windows Server Insider Preview. Binaan 25099 minggu ini kini tersedia untuk dimuat turun dalam ISO dan VHDX daripada tapak web Windows Server Insider, tetapi seperti biasa, tiada log perubahan penuh untuk diperkatakan, jadi tidak jelas apa yang baharu. Microsoft sekali lagi berkata bahawa jenama itu belum dikemas kini dan masih Windows Server 2022 dalam pratonton. Selain itu, Microsoft menggalakkan orang dalam bekerja pada Azure
