首页 > 其他分享 >Azure REST API (0) 概述

Azure REST API (0) 概述

时间:2024-04-23 12:33:05浏览次数:16  
标签:Entra Service REST API Azure ID Principal

  《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

 

标签:Entra,Service,REST,API,Azure,ID,Principal
From: https://www.cnblogs.com/threestone/p/18152333

相关文章

  • .Net WebAPI程序集成CAS单点登录-API方式(不使用DotNetCasClient)
    以下是ashx一般处理程序的示例,且cas登录单独放到了一个按钮中:1、登录按钮(js)- console.log("cos登录");varoriginStr=window.location.origin;window.location.href="https://cas.your.com/cas/login?service="+originStr+"/WebUI/Admin......
  • 第19章 创建RESTful Web服务
    1准备工作2理解RESTfulWeb服务Web服务最常见的方法是采用具象状态传输(RepresentationalStateTransfer,REST)模式。REST指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或者设计就是RESTful,核心就是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的......
  • JMeter做WEB和API自动化测试
    一、软件安装1、下载安装OpenJDK,只要是大于等于8的版本就可以:下载地址2、下载安装JMeter,绿色包解压及可用,需要将bin目录加入到环境变量Path中:下载地址二、Web测试用例录制1、创建工作目录,启动JMeter。mkdir-pE:\code\JMeter-AutoTestcdE:\code\JMeter-AutoTestjmeter......
  • API Object Models
    APIObjectModelsAPI测试面临的问题API测试由于编写简单,以及较高的稳定性,许多公司都以不同工具和框架维护API自动化测试。我们基于seldom框架也积累了几千条自动化用例。简单的用例importseldomclassTestRequest(seldom.TestCase):deftest_post_method(self):......
  • 如何使用 Apifox 请求 gRPC 接口?
    使用Apifox发送gRPC接口Apifox支持基于.proto文件的gRPC调试,包括一元调用和流式调用。在创建项目时「选择gRPC项目」-->「导入.proto文件」,无需写代码即可直接调用gRPC接口。  创建gRPC在调试gRPC接口之前,也需要先导入作为API定义的.proto文件。如果......
  • ASP.NET Core Web API下基于Keycloak的多租户用户授权的实现
    在上文《Keycloak中授权的实现》中,以一个实际案例介绍了Keycloak中用户授权的设置方法。现在回顾一下这个案例:服务供应商(ServiceProvider)发布/WeatherForecastAPI供外部访问在企业应用(Client)里有三个用户:super,daxnet,nobody在企业应用里有两个用户组:administrators,users在企......
  • 再聊解除HiddenApi限制
    炒冷饭,再聊聊大家都知晓的隐藏接口的限制解除。说明由于我们容器产品的特性,需要将应用完整的运行起来,所以必须涉及一些隐藏接口的反射调用,而突破反射限制则成为我们实现的基础。现将我们的解决方案分享给大家,一起学习。Android9.0→首次启用这个大家都知道原理了,简单巴拉......
  • DRF之View和APIView
    【零】DRF在Django项目中的使用【1】导入#DRF需要使用pipinstall安装pipinstalldjangorestframeworkDRF(DjangoRestFramework)是一个用于构建WebAPI的工具包,它是基于Django框架的一个第三方应用(app)在Django项目中,一个应用(app)通常是一个具有特定功能的模块,它包......
  • DRF之View和APIView
    【零】DRF在Django项目中的使用【1】导入```shell#DRF需要使用pipinstall安装pipinstalldjangorestframework```DRF(DjangoRestFramework)是一个用于构建WebAPI的工具包,它是基于Django框架的一个第三方应用(app)在Django项目中,一个应用(app)通常是一个具有特定功......
  • 前端【uniapp】02-uniapp【全局文件】【组件【内置、扩展】】【声明周期】【API调用】
    一、uni-app基础知识uni-app是组合了Vue和微信小程序的相关技术知识,要求大家同时俱备Vue和原生小程序的开发基础。1、全局文件在小程序中有全局样式、全局配置等全局性的设置,为此在uni-app中也有一些与之相对应的全局性的文件。uni.scssuni-app项目在运......