背景

本文主要介绍如何获取如何获取Azure Rest API的访问token,所采用的是v2.0版本的Microsoft标识平台,关于1.0和2.0的区别可以参考 https://docs.azure.cn/zh-cn/active-directory/azuread-dev/azure-ad-endpoint-comparison 此文档

原理

采用的是OAuth2.0协议的客户端凭据授予的方式,即直接使用client id和secret获取令牌。

步骤

1.新建AAD应用、,导航到Azure门户的AAD界面,选择应用注册,点击新注册。

按照下图填写信息,如果选择多租户是允许访问其他租户的应用,由于我们不涉及到登陆的内容,所以重定向URI无需填写。

2.按照下图的方式,授予AAD应用访问Azure管理服务API权限:

3.接下来授予AAD 应用服务的访问权限,在相关服务的访问控制页面授予AAD应用参与者权限(建议赋予这更订阅的权限,这样可以操作所有应用)

4.收集AAD应用信息,需要租户id,client id,client secret。

进入AAD页面,按照下图方式生成密钥,并且保存密钥,该密钥为client secret

按照下图收集client id和租户id

5.发送token请求,标黄的部分需要填写上个步骤获取的信息:

curl --location --request POST 'https://login.partner.microsoftonline.cn/租户ID/oauth2/v2.0/token ' \

--form 'grant_type=client_credentials' \

--form 'client_id=client id \

--form 'client_secret=client secret' \

--form 'scope=https://management.chinacloudapi.cn/.default'

测试截图:

附:

也可以使用账户名和密码的方式获取token,但是极不推荐这种方式,因为这种方式是最不安全的,如果想要了解的话可以参考此博客 https://www.cnblogs.com/fenwan/p/7884202.html

参考文档:

https://docs.microsoft.com/zh-cn/rest/api/azure/#register-your-client-application-with-azure-ad

https://docs.azure.cn/zh-cn/active-directory/develop/v2-oauth2-client-creds-grant-flow#get-a-token

https://docs.azure.cn/zh-cn/active-directory/develop/v2-overview

http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

使用Azure Rest API获得Access Token介绍的更多相关文章

  1. REST API 基于ACCESS TOKEN

    REST API 基于ACCESS TOKEN 的权限解决方案   REST 设计原则是statelessness的,而且但客户端是APP时,从APP发起的请求,不是基于bowers,无法带相同的se ...

  2. REST API 基于ACCESS TOKEN 的权限解决方案

    REST 设计原则是statelessness的,而且但客户端是APP时,从APP发起的请求,不是基于bowers,无法带相同的sessionid,所以比较好的方案是每次请求都带一个accesstok ...

  3. SharePoint Online 使用 adal js 获取access token

    最近在写一些SharePoint 的sample code, 有兴趣的小伙伴可以查看我的GitHub. 今天给大家介绍SharePoint Framework (SPFx  )web part 当中怎 ...

  4. 怎样用Google APIs和Google的应用系统进行集成(4)----获得Access Token以通过一些Google APIs的OAuth2认证

    在上篇文章中: "怎样用Google APIs和Google的应用系统进行集成(3)----调用发现Google APIs的RESTful的服务"一文中,我们直接用jdk的java ...

  5. 【Azure Developer】Python 获取Micrisoft Graph API资源的Access Token, 并调用Microsoft Graph API servicePrincipals接口获取应用ID

    问题描述 在Azure开发中,我们时常面临获取Authorization问题,需要使用代码获取到Access Token后,在调用对应的API,如servicePrincipals接口. 如果是直接调 ...

  6. Azure AD, Endpoint Manger(Intune), SharePoint access token 的获取

    本章全是干货,干货,干货,重要的事情说三遍. 最近在研究Azure, Cloud相关的东西,项目中用的是Graph API(这个在下一章会相信介绍),可能是Graph API推出的时间比较晚,部分AP ...

  7. 【Azure Developer】使用 Microsoft Authentication Libraries (MSAL) 如何来获取Token呢 (通过用户名和密码方式获取Access Token)

    问题描述 在上一篇博文<[Azure Developer]使用 adal4j(Azure Active Directory authentication library for Java)如何来 ...

  8. 【Azure Developer】【Python 】使用 azure.identity 和 azure.common.credentials 获取Azure AD的Access Token的两种方式

    问题描述 使用Python代码,展示如何从Azure AD 中获取目标资源的 Access Token. 如要了解如何从AAD中获取 client id,client secret,tenant id ...

  9. 【Azure 环境】用 PowerShell 调用 AAD Token, 以及调用Azure REST API(如资源组列表)

    问题描述 PowerShell 脚本调用Azure REST API, 但是所有的API都需要进行权限验证.要在请求的Header部分带上Authorization参数,并用来对List Resour ...

随机推荐

  1. opt目录

    在linux环境测试时,会部署到/opt目录下,这是为何呢? 下面来详解Linux的/opt目录: /opt:用户级的程序目录 这里主要存放那些可选的程序. 比如,你想部署firefox测试版,那就装 ...

  2. 借助Redis完成延时任务

    背景 相信我们或多或少的会遇到类似下面这样的需求: 第三方给了一批数据给我们处理,我们处理好之后就通知他们处理结果. 大概就是下面这个图说的. 本来在处理完数据之后,我们就会马上把处理结果返回给对方, ...

  3. NoVNC API 文档翻译

    原文地址:https://github.com/novnc/noVNC/blob/master/docs/API.md 时间:2019-05-21     noVNC API The interfac ...

  4. C++ 选择排序的理解

    #include<stdio.h> #include <iostream> using namespace std; void swap(int *a, int *b) //元 ...

  5. Javaweb编程

    首先是题目要求: 1登录账号:要求由6到12位字母.数字.下划线组成,只有字母可以开头:(1分) 2登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母.数字组成.(1分) 3性别:要 ...

  6. 后端程序员不得不会的 Nginx 转发匹配规则

    整理了一些Java方面的架构.面试资料(微服务.集群.分布式.中间件等),有需要的小伙伴可以关注公众号[程序员内点事],无套路自行领取 一口气说出 9种 分布式ID生成方式,面试官有点懵了 面试总被问 ...

  7. 【简说Python WEB】Web应用部署

    目录 [简说Python WEB]Web应用部署 应用层 缓存层 数据层 Gunicorn 的应用 1.安装Gunicorn 2.Gunicorn的启动 Nginx 的应用 1.docker方式部署安 ...

  8. 小米官网轮播图js+css3+html实现

    官网轮播: 我的轮播: 重难点: 1.布局 2.图片和右下角小圆点的同步问题 3.setInterval定时器的使用 4.淡入淡出动画效果 5.左右箭头点击时,图片和小圆点的效果同步 6.另一种轮播思 ...

  9. Django模型层ORM学习笔记

    一. 铺垫 1. 连接Django自带数据库sqlite3 之前提到过Django自带一个叫做sqlite3的小型数据库,当我们做本地测试时,可以直接在sqlite3上测试.不过该数据库是小型的,在有 ...

  10. Redis底层函数详解

    Redis底层函数详解 serverCron 函数 它负责管理服务器的资源,并维持服务器的正常运行.在执行 serverCron 函数的过程中会调用相关的子函数,如 trackOperationsPe ...