当前位置: 首页 > news >正文

AAD基础知识(identity/token/PRT)

简介

AAD(Azure Active Directory/Azure AD)是微软基于云身份验证和访问控制的解决方案,通过SSO登录其他o365应用(word/outlook/teams…)
微软在2023年7月把AAD重命名为Microsoft Entra ID,官网:https://www.microsoft.com/zh-cn/security/business/identity-access/microsoft-entra-id
在这里插入图片描述

  • 启用AAD: https://www.microsoft.com/zh-cn/security/business/identity-access/azure-active-directory-enable
  • license类型: free, Premium P1, Premium P2,大部分功能在P2中有:https://www.microsoft.com/zh-cn/security/business/microsoft-entra-pricing?rtc=1

基础

在这里插入图片描述

加入AAD

  1. 设备标识是 Microsoft Entra ID 中的一个对象,类似于用户、组或应用程序。 设备标识为管理员提供信息,供其在做出访问或配置决策时使用。
  2. 三种方法加入AAD来获取设备标识:
  • Microsoft Entra registration: 无需用企业帐户登录到设备即可注册到 Microsoft Entra ID, 使用本地帐户登录, 一般使用场景是在移动设备上访问azure上资源
  • Microsoft Entra join: 需要企业帐户登录到设备, 设备所有权属于企业,适合仅使用azure验证的企业,主要通过azure来管理设备
  • Microsoft Entra hybrid join: 需要有本地AD连接来进行登录验证,适用于已有本地AD的企业,经常作为过渡到Microsoft Entra join的临时阶段。使用本地AD组策略进行管理

SecurityToken

  1. Access token(OAuth2):
  • 简介: JWT格式,访问令牌使客户端可以安全地调用受保护的Web API, Web API使用访问令牌执行身份验证和授权。
    在这里插入图片描述
  • 存活时间: 默认时间可变,范围介于 60-90 分钟之间
  1. Refresh token:
  • 简介: JWT格式,当access token过期时,可以使用刷新令牌获取新的访问和刷新令牌。Refresh token在access token下发时一起获得
    刷新令牌可以因超时和吊销而随时撤销。 应用必须通过向用户发送交互式登录提示以再次登录来处理登录服务的吊销
  • 存活时间: 默认生存期24 小时
  1. ID Token:
  • 简介: JWT格式,包含有关用户的信息。 它们可以与访问令牌一起发送,也可以代替访问令牌发送。 使用 ID 令牌中的信息,客户端可以验证用户是否是其声称的身份
    在这里插入图片描述
  • 存活时间: 默认1小时

Claim

  • 简介: Claim是security token中的键值对部分,应用程序授权时必须验证access token中的某些键值对(Claim)
    在这里插入图片描述
  • Claim校验: 为了确保授权逻辑安全,必须验证claim以下信息
    (1)验证受众(目标app): 验证access token中的aud键值是否与Web API 匹配
    (2)验证租户(tenant): 验证令牌中的tid键值是否匹配用于通过应用程序存储数据的租户ID
    (3)验证使用者: 验证令牌使用者(如用户或仅应用令牌的应用程序本身)是否已获得授权,可以检查sub或oid键值,或可检查使用者是否属于具有roles、groups、wids 声明的相应角色或组。
    (4)验证参与者(客户端应用程序): 代表用户的客户端应用程序也必须获得授权。使用 scp键值(范围)来验证应用程序是否有权执行操作。

Primary refresh token(PRT)

  • 简介: 在加入AAD且注册的设备上,通过登录验证的会向win发放PRT(类似TGT),用于在这些设备上使用的应用程序之间实现SSO。PRT存储于win的lsass中
  • 组成:
    (1)设备 ID:PRT 将颁发给特定设备上的用户。设备 ID 声明用于根据设备状态或合规性来确定条件性访问的授权。
    (2)会话密钥:会话密钥是 Microsoft Entra 身份验证服务生成的加密对称密钥,作为PRT 的一部分颁发。 当使用 PRT 为其他应用程序获取令牌时,会话密钥将用作所有权证明。
  • 存活时间:默认14天,只要用户设备联网持续活跃,PRT会自动更新
  • PRT相关关键组件
    (1)云身份验证提供程序 (CloudAP):CloudAP 是 Windows 登录的新式身份验证提供程序,用于验证登录到 Windows 10 或更高版本设备的用户。 CloudAP 提供一个插件框架,可基于该框架构建标识提供者,以便使用该标识提供者的凭据完成 Windows 身份验证。
    (2)Web 帐户管理器 (WAM):WAM 是 Windows 10 或更高版本设备上的默认令牌代理。 WAM 也提供一个插件框架,可基于该框架构建标识提供者,并为依赖该标识提供者的应用程序启用 SSO。
    (3)Microsoft Entra CloudAP 插件(请求PRT组件):基于 CloudAP 框架构建的 Microsoft Entra 特定插件,用于在 Windows 登录期间使用 Microsoft Entra ID 验证用户凭据。当用户e,它还会缓存 PRT 以启用缓存的登录。
    (4)Microsoft Entra WAM 插件(请求access token组件):基于 WAM 框架构建的 Microsoft Entra 特定插件,支持对依赖 Microsoft Entra ID 进行身份验证的应用程序进行 SSO。
    (5)Dsreg:Windows 10 或更高版本上的 Microsoft Entra 特定组件,用于处理所有设备状态的设备注册过程。可通过dsreg /status命令查看加入azure和PRT情况
    在这里插入图片描述
    (6)受信任的平台模块 (TPM):TPM 是内置于设备的硬件组件,为用户和设备机密提供基于硬件的安全功能。
  • 获取场景:
    (1)Microsoft Entra joined或Microsoft Entra hybrid joined:当用户使用其组织凭据登录时,在Windows登录期间发出PRT(hybrid joined是异步发,joined是同步发)。在这个场景中,Microsoft Entra CloudAP插件是PRT的主要认证组件。Microsoft Entra CloudAP插件使用用户提供的凭据从Microsoft Entra ID请求PRT
    (2)Microsoft Entra registration:当用户在其Windows 10或更新的设备上添加辅助工作帐户时,会请求PRT
  • 获取过程:
    在这里插入图片描述

相关文章:

AAD基础知识(identity/token/PRT)

简介 AAD(Azure Active Directory/Azure AD)是微软基于云身份验证和访问控制的解决方案,通过SSO登录其他o365应用(word/outlook/teams…) 微软在2023年7月把AAD重命名为Microsoft Entra ID,官网:https://www.microsoft.com/zh-cn/security/b…...

基于SSM的视频点播系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...

React 知识点总结

本篇文章是我自己总结已经写过的react知识点,大框架已生成,知识持续更新中。仅供参考 生命周期 React 生命周期 组件基础 react中受控组件与非受控组件 React Portals 理解React页面渲染原理,如何优化React性能? 学习篇之R…...

ALSA project the C library refrerenc (ALSA工程 C库参考说明)

作者: Jaroslav Kysela perexperex.cz Abramo Bagnara abramoalsa-project.org Takashi Iwai tiwaisuse.de Frank van de Pol fvdpolcoil.demon.nl前言: 高级linux音频架构(ALSA)来自内核API和库的API.这个篇文章描述了应用层库API和内核层API对应是怎么的interfaces.API用法: …...

【Maven基础篇-黑马程序员】Maven项目管理从基础到高级,一次搞定!

文章目录 前言Maven简介Maven是什么Maven的作用 Maven的下载与安装Maven基础概念仓库坐标仓库配置全局setting与用户setting区别 第一个Maven程序(手工制作)第一个Maven程序(IDEA生成)使用模版(骨架)创建Ma…...

MySQL进阶 —— 超详细操作演示!!!(下)

MySQL进阶 —— 超详细操作演示!!!(下) 五、锁5.1 概述5.2 全局锁5.3 表级锁5.4 行级锁 六、InnoDB 引擎6.1 逻辑存储结构6.2 架构6.3 事务原理6.4 MVCC 七、MySQL 管理7.1 系统数据库7.2 常用工具 MySQL— 基础语法大…...

SVM(上):如何用一根棍子将蓝红两色球分开?

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据开发、数据分析等。 🐴欢迎小伙伴们点赞👍🏻、收藏⭐️、…...

libevent源码学习笔记

libevent源码学习笔记 libevent安装libevent源码解析(1)事件对象(2)事件操作(3)事件循环(4)事件处理 常用指令问题记录问题一:长连接的管理问题二:连接关闭问…...

C++ opencv设置视频的捕获方式为 MJPG设置失败

我有一款4k摄像头,在设置分辨率为4k的时候总是出现帧率不够的情况, 使用命令查看 v4l2-ctl --device/dev/video0 --list-formats-ext发现 v4l2-ctl --device/dev/video0 --list-formats-ext ioctl: VIDIOC_ENUM_FMTType: Video Capture[0]: MJPG (Moti…...

计算机网络两位伟人

克劳德艾尔伍德香农 克劳德艾尔伍德香农(Claude Elwood Shannon)是一位美国数学家、电子工程师和计算机科学家,被誉为“信息论之父”。他于1916年生于密歇根州,于2001年去世。以下是一些关于他的详细介绍: 信息论的奠…...

机器学习 不均衡数据采样方法:imblearn 库的使用

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…...

MySQL系统与内建函数

在游戏开发、特别是像《三国志》这样的大型策略游戏中,数据分析是不可或缺的。从玩家行为到游戏内的战役结果,都需要通过高效的数据分析来优化游戏体验。MySQL的系统和内建函数为这样的分析提供了强大的工具。 本文将详细介绍MySQL中常用的系统与内建函数,并通过《三国志》…...

STM32CubeMX学习笔记-USB接口使用(CDC虚拟串口)

STM32CubeMX学习笔记-USB接口使用(CDC虚拟串口) 一、USB简介二、新建工程1. 打开 STM32CubeMX 软件,点击“新建工程”2. 选择 MCU 和封装3. 配置时钟4. 配置调试模式 三、USB3.1 参数配置3.3 配置时钟3.4 USB Device 四、生成代码五、查看端口…...

腾讯云 Cloud Studio 实战训练营结营活动获奖公示

点击链接了解详情 “腾讯云 Cloud Studio 实战训练营” 是由腾讯云联合 CSDN 推出的系列开发者技术实践活动,通过技术分享直播、动手实验项目、优秀代码评选、有奖征文活动等,让广大开发者沉浸式体验腾讯云开发者工具 Cloud Studio 的同时,实…...

使用晶体管做布尔逻辑和逻辑门

目录 二进制,三进制,五进制 true,false表示0,1 早期计算机采用进制 布尔逻辑 三个基本操作:NOT,AND,OR 基础“真值表” NOT 如何实现? AND如何实现? OR如何实现? 图标表示…...

Linux系统编程系列之线程的信号处理

一、为什么要有线程的信号处理 由于多线程程序中线程的执行状态是并发的,因此当一个进程收到一个信号时,那么究竟由进程中的哪条线程响应这个信号就是不确定的,只能取决于哪条线程刚好在信号达到的瞬间被调度,这种不确定性在程序逻…...

【C语言】青蛙跳台阶 —— 详解

一、问题描述 跳台阶_牛客题霸_牛客网 (nowcoder.com) LCR 127. 跳跃训练 - 力扣(LeetCode) 二、解题思路 1、当 n 1 时,一共只有一级台阶,那么显然青蛙这时就只有一种跳法 2、当 n 2 时,一共有两级台阶&#xff…...

Java - 基本数据类型和封装类型

基本类型有默认值,而包装类型初始为null。然后再根据这两个特性进行分业务使用,在阿里巴巴的规范里所有的POJO类必须使用包装类型,而在本地变量推荐使用基本类型。 Java语言提供了八种基本类型。六种数字类型(四个整数型&#xff…...

day-63 代码随想录算法训练营(19) 图论 part 02

1020.飞地的数量 分析:求不跟边界接壤的陆地的数量 思路一:深度优先遍历 先从四个侧边找陆地,然后进行深度优先遍历,把所有接壤的陆地(1)全部转换成海洋(0) 深度优先遍历&#xf…...

SpringBoot的全局异常拦截

在 Spring Boot 中,可以通过使用 ControllerAdvice 注解和 ExceptionHandler 注解来实现全局异常拦截。 RestControllerAdvice RestControllerAdvice 是 Spring Framework 提供的注解,用于定义全局异常处理类,并且结合 ExceptionHandler 注…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...