《Windows Azure Platform 系列文章目錄》
1.概述
1.我們在使用Azure 雲服務的時候,可以通過Azure Portal: https://portal.azure.com,輸入郵箱地址和密碼,然後通過交互式(鼠標點擊)的方式創建或者刪除微軟雲的資源
2.我們也可以通過API或者SDK的方式進行調用,集成到用戶自己的平臺:
(1)Azure API支持REST API調用
(2)也支持SDK集成,比如Java SDK,Python SDK等
(3)這樣就可以在用戶的自助式平臺裏,創建和管理微軟雲Azure上的資源
2.Azure Role
與AWS概念類似:https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios.html,Azure支持的Role有多種,我們以下面兩種爲例:
(1)Azure Entra ID,類似AWS IAM User。目前很多客戶都使用本地域控制器(Local Domain Controller),同步到微軟雲Azure上
(2)Azure Service Principal,類似AWS Application。是通過API或者SDK的方式,開發使用
3. API分類
Azure API主要分爲以下兩類:
3-1. Azure Management API
1.Azure Managment API主要是管理Azure資源的,比如說虛擬網絡(Virtual Network),虛擬機,MySQL數據庫,存儲賬戶(Azure Storage)等
2.我們可以通過Azure Management API來創建和管理Azure微軟雲上的資源
3-2.MS Graph API
1.MS Graph API主要是設置和Microsoft 365,Azure Entra ID相關的資源,比如
(1)新建登錄用戶
(2)新建用戶組
(3)新建Service Principal
(4)訪問用戶聯繫人、日曆等
4.創建
4-1.創建Azure Entra ID
Azure Entra ID一般是通過本地域控制,同步到Azure Entra ID的。
4-2.創建Azure Service Principal
具體創建步驟,可以參考:Azure REST API (5) Azure創建Service Principal設置Client Secret過期時間100年
5.授權
5-1.Azure Management 授權
如果我們需要管理Azure資源的,比如可以創建虛擬機,創建虛擬網絡等,需要進行授權操作。
注意:管理員可以針對Azure Entra ID或者Service Principal授權,普通用戶沒有授權相關權限。
5-1-1. Azure Entra ID授權
1.我們以Azure管理員身份登錄,步驟略。
2.選擇需要授權的對象,這裏我們以整個訂閱爲例。選擇某一個訂閱
3.點擊下圖的Access Control (IAM),然後點擊Add,點擊Add Role assignment
4.首先選擇需要授權的權限,我們這裏選擇Reader,只讀權限。剩下的步驟略。
5-1-2. Azure Service Principal授權
1.我們以Azure管理員身份登錄,步驟略
2.選擇需要授權的對象,這裏我們以整個訂閱爲例
3.點擊下圖的AccessControl (IAM),然後點擊Add,點擊Add Role Assignment
4.選擇需要授權的權限,我們這裏選擇Contributor,截圖略。
5.在Member裏,搜索需要授權的Service Principal名稱,截圖略。
6.剩下的步驟略。
5-2. MS Graph API權限
1.MS Graph API主要是設置和Microsoft 365, Azure Entra ID相關的資源,比如允許創建新的用戶,用戶組等
2.如果允許Graph API執行對應的操作,需要授權相關的API權限
3.我們以創建Entra ID用戶爲例,參考的鏈接爲:
https://learn.microsoft.com/en-us/graph/api/user-update?view=graph-rest-1.0&tabs=http
4.在上面的鏈接中,從正文中可以查看到Permission
5.如果是API或者SDK方式,調用MS Graph API,我們只要參考上面的Application Permission即可
6.我們找到之前創建的Service Principal,搜索Microsoft Entra ID
7.選中上面的Entra ID,頁面跳轉。選中下圖的App Regitrations,然後選擇之前創建的Service Principal。下圖是我的演示環境,我之前已經創建1個Service Principal,名稱爲leisso。
8.選擇下圖的API Permission,點擊Add a permission,在右側創建中,選擇Microsoft Graph
9.選擇下圖的Application Permission
10.在下圖中,搜索關鍵字:User.ReadWrite.All,然後勾選中,最後點擊下圖的Add Permissions
11.最後,點擊下圖中的Grant admin consent,允許授權操作
6.登錄
6-1.Azure Entra ID登錄
1.我們瀏覽器打開:https://portal.azure.com,直接輸入登錄的用戶、密碼,直接登錄即可
6-2.Azure Service Principal登錄
1.Azure Service Principal只能通過API或者SDK方式訪問Azure資源
2.Azure Service principal無法登錄Azure管理界面https://portal.azure.com
7.Python SDK for Azure Managment
7-1. Service Principal三要素
1.當我們創建完Service Principal後,會有三個主要參數:
(1)Tenant ID,即租戶ID
(2)Client ID,或者叫Application ID
(3)Client Secret,訪問祕鑰
請注意,上面這三個參數不能分享給其他人,會有安全風險。
另外如果我們有多個訂閱的情況下,還需要設置訂閱ID
7-2.Python SDK for Azure Management
我們可以參考官網的python sdk 樣例,比如:
7-3.Python SDK for MS Graph
我們可以參考:
https://github.com/microsoftgraph/msgraph-sdk-python/blob/main/docs/users_samples.md