Azure active directory 获得访问的 token


prtyaa
prtyaa 2023-12-29 21:47:10 65485
分类专栏: 资讯

一直认为 Azure 的设计过于复杂,权限要求过多,就感觉是一群技术宅做的系统。相对 AWS 来说,更加喜欢 AWS 的功能设计。

但是因为工作需要又不得不使用 Azure,所以把使用过程中遇到的一些问题都记录下来,以期望能帮助有需要的人。

这篇文章主要用于介绍如何使用 postman 来获得 Azure active directory 的用户访问 token,这个步骤是使用 Azure 对用户鉴权使用的第一步。

确定 tenant

Azure 允许你有多个 tenant,你可以在 Azure 的控制台中对 tenant 进行切换,这个是你需要做的第一步。确定你希望使用的 teant。

如果你还没有 tenant 的话,你需要创建一个 tenant。

 

 

当找到你需要的 Tenant 以后,你会获得一个 tenant ID,这个非常重要。

因为这个表示的是你 AD 的唯一标识,所以你需要记录下来。

Tenant ID 在你界面中的的 Tenant Information 里面

 

 

注册 APP

不管你使用任何类型的应用,你都需要先注册一个 APP。

单击左侧的注册 APP 按钮。

 

 

可以单击界面的上侧,注册一个新的应用。

 

 

在弹出的界面中,输入注册需要的相关信息。

注册的名字你可以自行定义,需要注意的是,你需要选择:

  • Accounts in any organizational directory (Any Azure AD directory - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)

这个注册选项。

假设,我们这里注册的应用是 WEB。

 

 

获得基本参数

当你注册成功后,你可以单击你的注册名,然后你将会看到注册的应用信息界面。

在这个界面中,你会得到

  • Application (client) ID
  • Directory (tenant) ID
  • Object ID

这几个参数,这几个参数对你来说非常重要,你需要保存下来。

 

 

设置 secrets

单击左侧的 Certificates & secrets,你将会看到密钥生成的界面。

在这里,你可以单击生成一个新的 Secret。

你可以不用给这个 secret 进行命名,你也可以命名你希望的名字。请注意将 secret 进行保存,因为下次你访问的时候,secret 就不会再显示了。

 

 

API 赋权

你需要确定 Microsoft Graph 有用户读取的权限。

 

 

如果没有这个权限的话,你需要单击上面的添加权限来将权限添加进来。

 

 

选择 Microsoft Graph 的选项,然后将用户的权限添加进来。

 

 

暴露 API

你需要将你的 API 进行暴露,允许进行访问。

 

 

你需要添加一个新的 Scope,在这里我们假设你添加了一个叫做 user.read 的 scope。

在弹出的界面中你可以输入你需要的选项。

你可以选择 Admins and users

 

 

修改 Manifest

这个配置参数你需要手动修改。

主要修改参数是:oauth2AllowImplicitFlow 修改为 true

 

 

至此,Azure 的配置已经完成了,下一步就是配置你的客户端进行测试了。

Postman 测试

可以通过 Postman 进行测试获得 token。

你有 2 种方法进行测试,我们测试的是不通过授权,直接通过 secret 来获得 token。

另一种方法,我们在其他方式中再进行测试。

在 Postman 中添加一个 API 访问。

访问方法

使用 GET 进行访问

访问 URL

访问的 URL 是:login.microsoftonline.com ID/oauth2/v2.0/token

这里有一个参数要进行替换,就是 Tenant ID,这个 ID 在开始的时候就用于标识一个 AD,我们已经在前面的步骤保存了。

Headers

添加参数 Content-Type 为 application/x-www-form-urlencoded

 

 

Body

grant_type : client_credentials
client_id: 4ab1a0b7-da1d-423d-9fc3-e3a6fabd9
client_secret:SYk.HZT_jK6ZE1~3tle2Ha0MeV.9
scope: api://4ab1a0b7-da1d-423d-9fc3-e3a6fabd9/.default

这里参数有一根需要注意的地方。

client_id 是我们在最开始的时候 APP 创建成功后获得 client_id。

client_secret 是我们我们在 APP 注册成功后,创建的秘钥。

scope:是我们创建的的 scop,但是需要注意的是,我们创建的 scope 是以 user.read 结尾的,在我们获得 token 的时候,不能使用上面结尾的 scope,而需要将 user.read 修改为 .default

因此 scope 的配置就是 api://client_id/ .default.

请注意,你一定要这么配置,否则你拿不到 token

当一切配置好后,你可以发送请求,如果一切正确的话,你将会看到服务器返回给你的 token 字符串。

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=32292
赞同 0
评论 0 条
prtyaaL1
粉丝 1 发表 2554 + 关注 私信
上周热门
银河麒麟添加网络打印机时,出现“client-error-not-possible”错误提示  1487
银河麒麟打印带有图像的文档时出错  1405
银河麒麟添加打印机时,出现“server-error-internal-error”  1194
统信操作系统各版本介绍  1116
统信桌面专业版【如何查询系统安装时间】  1114
统信桌面专业版【全盘安装UOS系统】介绍  1068
麒麟系统也能完整体验微信啦!  1026
统信【启动盘制作工具】使用介绍  672
统信桌面专业版【一个U盘做多个系统启动盘】的方法  616
信刻全自动档案蓝光光盘检测一体机  526
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

添加我为好友,拉您入交流群!

请使用微信扫一扫!