Azure Lei Zhang的博客

weibo: LeiZhang的微博/QQ: 185165016/QQ群:319036205/邮箱:leizhang1984@outlook.com/TeL:139-161-22926

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  《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 样例,比如:

  https://github.com/Azure-Samples/azure-samples-python-management/blob/main/samples/compute/manage_virtual_machine.py

 

  7-3.Python SDK for MS Graph

  我们可以参考:

  https://github.com/microsoftgraph/msgraph-sdk-python/blob/main/docs/users_samples.md

 

posted on 2024-04-23 12:28  Lei Zhang的博客  阅读(26)  评论(0编辑  收藏  举报