《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