organization 参数,这个需要换成当前应用程序所在的租户的Id。...5)测试 1)统一验证,获取token tenant:应用程序计划对其进行操作的目录租户。参数必传 client_id:分配给应用的应用程序ID,可以在注册应用的门户中找到。...1)统一验证,获取token,需要额外注意此处的租户Id,以及scope tenant:应用程序计划对其进行操作的目录租户。...://graph.microsoft.com/.default。...此值告知 Microsoft 标识平台终结点:在为应用配置的所有直接应用程序权限中,终结点应该为与要使用的资源关联的权限颁发令牌 使用共享机密访问令牌请求:https://docs.microsoft.com
此类攻击不依赖凭据窃取,而是滥用OAuth 2.0授权框架中的“用户同意”流程,使恶意应用获得长期有效的刷新令牌(refresh token),进而通过Microsoft Graph API静默读取邮件...一旦同意,攻击者即获得授权码,兑换为访问令牌(access token)与长期有效的刷新令牌,从而无需再次触发MFA即可持续访问用户邮箱与文件。...;应用使用令牌调用Microsoft Graph API。...可通过Microsoft Graph API动态评估权限风险:HIGH_RISK_SCOPES = {'Mail.ReadWrite', 'MailboxSettings.ReadWrite','User.ReadWrite.All...5 实验验证在测试租户中模拟攻击流程:注册假冒应用,请求Mail.Read + offline_access;使用普通用户账户完成同意;通过脚本每小时读取100封邮件,持续72小时。
当应用程序被授予了对租户中资源的访问权限时(根据注册或许可),将创建一个服务主体对象。 Microsoft Graph ServicePrincipal 实体定义服务主体对象属性的架构。...必须在将使用应用程序的每个租户中创建服务主体,让它能够建立用于登录和/或访问受租户保护的资源的标识。 单租户应用程序只有一个服务主体(在其宿主租户中),在应用程序注册期间创建并被允许使用。...多租户 Web 应用程序/API 还会在租户中的某个用户已同意使用它的每个租户中创建服务主体。...此示例方案中有三个 Azure AD 租户: Adatum -开发HR 应用的公司使用的租户 Contoso -contoso 组织使用的租户,即HR 应用的使用者 Fabrikam -fabrikam...当然了,上面我创建服务主体的时候给的 scope 是整个订阅,也就是我们可以通过这个服务主体去访问azure的任何资源。
一旦用户完成授权,攻击者即获得长期有效的刷新令牌(Refresh Token),可在数月内持续访问敏感数据,且难以被常规安全监控发现。...(Access Token)与刷新令牌(Refresh Token);应用使用令牌调用Microsoft Graph API。...一旦用户授权,即使账户启用了MFA,攻击者仍可通过令牌直接访问资源。3 攻击技术路径分析3.1 恶意OAuth应用注册与伪装攻击者首先在Microsoft Entra ID公共租户中注册一个新应用。...注册后,攻击者配置所需API权限。...3.4 数据窃取与横向移动获得令牌后,攻击者可调用Microsoft Graph API执行以下操作:# 读取最新100封邮件Invoke-RestMethod -Uri "https://graph.microsoft.com
,它通过自动调用API的方式加强开发者账户的活跃度,以此来自动续期E5。...委托的权限(用户登录) 应用程序权限(非用户登录) 官方释义 应用程序必须以登录用户身份访问API 应用程序在用户未登录的情况下作为后台服务或守护程序运行 所需配置 账户名称+账户密码+应用程序(客户端... 确认完成在列表处可以看到生成的记录,点击选择复制值(即客户端密码) b.API调用工具 Microsoft Graph 浏览器是一种基于 Web 的工具,可用于生成和测试对 Microsoft...Graph API 的请求 API需要的权限设定可在预览卡中查阅,授权后则可再次尝试调用响应 Postman 是一个可用于向 Microsoft Graph API 发出请求的工具...:Postman&Microsoft Graph API使用 c.Microsoft Graph 快速入门示例 Microsoft Graph入门: a.选择语言或平台 b.获取应用
Entra Connect快速保护Entra ID清单用户默认配置默认情况下,用户能够注册应用程序和创建新租户。...用户默认操作:将"用户可以注册应用程序"从"是"设置为"否"将"限制非管理员用户创建租户"从"否"设置为"是"用户设备设置默认值用户默认具有Entra加入设备的能力,无需MFA。...用户设备设置操作:将"用户可以将设备加入Microsoft Entra"设置为"选定",并添加一个允许将设备加入Entra的组配置条件访问策略,要求在将设备加入Entra时需MFA,或将配置"注册或加入...还有一个应用程序权限(Graph:RoleManagement.ReadWrite.Directory)也提供管理权限。Entra ID租户中最多有500个角色可分配组(创建最大值)。...AppRoleAssignment.ReadWrite.All允许应用程序代表登录用户管理对任何API的应用程序权限授予和任何应用程序的应用程序分配。
本文系统分析了以Tycoon、EvilProxy为代表的新型钓鱼即服务(Phishing-as-a-Service, PhaaS)工具如何利用OAuth协议设计中的信任假设与实现缺陷,通过伪造合法应用、...向令牌端点换取访问令牌与刷新令牌;Client使用访问令牌调用受保护资源(如Microsoft Graph API)。...前者有效期通常为1小时,后者可达90天(取决于租户策略)。攻击者利用刷新令牌可无限续期访问令牌,实现长期潜伏。...获得令牌后,攻击者通过Microsoft Graph API执行侦察:import requeststoken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.xxxxx"headers...以下Python脚本利用Microsoft Graph API实现自动化审计:import requestsfrom datetime import datetime, timedeltadef audit_shadow_apps
客户使用其首选的社交,企业或者本地账户标识对应用程序和API进行单一登录访问。 Azure AD B2C 是一种贴牌式身份验证解决方案。...2.2 账户 用户可以通过使用者帐户登录到通过 Azure AD B2C 保护的应用程序。 但是,具有使用者帐户的用户无法访问 Azure 资源(例如 Azure 门户)。...具有使用者帐户的用户可以通过多个标识(例如用户名、电子邮件、员工 ID、政府 ID 等)登录。 单个账户可以有多个本地和社交标识。...通过这些令牌,可以访问用于验证标识以及允许访问安全资源的声明。...单个应用程序可以使用多个用户流或自定义策略。例如,若要登录到某个应用程序,该应用程序将使用注册或登录用户流。
芦笛解释道,“但攻击者注册了一个伪装成‘Microsoft Security Scanner’或‘Enterprise Compliance Tool’的 OAuth 应用,通过 Azure AD 注册后...向 Azure AD 请求设备代码client_id = "ATTACKER_APP_ID" # 攻击者注册的恶意应用IDscope = "https://graph.microsoft.com/.default"resp...print("❌ 授权失败:", token_resp.text)break一旦拿到 access_token,攻击者即可调用 Microsoft Graph API 执行任意操作:# 示例:读取受害者最近...Proofpoint 发现,部分攻击甚至持续数周未被发现——因为所有操作都通过合法 API 进行,IP 地址来自正常办公区域(攻击者使用代理或已控跳板机),行为模式与日常办公高度相似。...推荐策略:对包含 offline_access(即请求 Refresh Token)的授权请求强制执行 MFA;阻止从未知国家/地区的登录尝试;对非托管设备(如个人手机)限制访问敏感数据。4.
https://docs.microsoft.com/zh-cn/azure/sql-database/saas-tenancy-app-design-patterns 多租户应用程序需要什么?...租户应用程序配置 根据加载的租户上下文,可能会对应用程序进行不同的配置,例如OAuth提供程序的身份验证密钥,连接字符串等。 租户数据隔离 租户将需要能够访问他们的数据,以及仅仅访问他们自己的数据。...这可以通过在单个数据存储中对数据进行分区或通过使用每个租户的数据存储来实现。无论我们使用哪种模式,我们都应该使开发人员在跨租户场景中难以公开数据以避免编码错误。...租户解析 对于任何多租户应用程序,我们都需要能够识别请求在哪个租户下运行,但是在我们太兴奋之前,我们需要确定查找租户所需的数据。在此阶段,我们实际上只需要一个信息,即租户标识符。...现在,您可以通过将服务注入控制器来访问当前租户 /// /// A controller that returns a value /// [Route("api
这一举措通过提供与Microsoft 365 Copilot类似的能力,即对存储在SharePoint Online和OneDrive for Business中的文件进行推理分析,直接向Microsoft...访问通过针对Entra ID的OAuth认证授予,并且仅限于用户可访问的信息,就像任何其他使用Graph API与SharePoint Online和OneDrive for Business交互的应用一样...SharePoint连接器总体而言,新版本的ChatGPT连接器似乎使用应用程序权限(如Sites.Read.All和Files.Read.All)来访问SharePoint和OneDrive内容并将其同步到...自Microsoft 365 Copilot推出以来,一个显而易见的问题是Microsoft 365租户在SharePoint Online中存储了一些完全无用的内容。...除了避免购买Microsoft 365 Copilot许可证外,我始终无法理解为什么Microsoft 365租户允许人们将企业信息上传到ChatGPT进行处理。
更严重的是,若攻击者获取IdP管理员权限,可直接修改条件访问策略或注册恶意应用,造成全租户级风险。...,即使用户登出仍有效;Access Token:短期有效(通常1小时),但可用于调用Microsoft Graph API。...攻击者利用这些令牌可直接通过API访问用户邮箱、OneDrive文件、Teams聊天记录等,完全绕过前端UI与MFA提示。...Microsoft Entra ID已支持此功能,可通过条件访问策略强制:# Azure AD PowerShell: 要求FIDO2且禁止非托管设备New-AzureADMSConditionalAccessPolicy...Microsoft Graph提供/revokeSignInSessions API,可编程终止可疑会话:import requestsdef revoke_suspicious_sessions(user_id
术语 Tenant: 对于Dynamics 365(在线),租户是您在Microsoft在线服务环境中注册一个Dynamics 365(在线)订阅时创建的帐户。...单个客户租户的所有实例都将在最初为其帐户注册的地理位置中设置。对客户租户的所有实例进行汇总和跟踪存储消耗。 您可以为所有实例设置单独的安全组。...授权的Dynamics 365(在线)用户可以潜在地访问与租户关联的所有Dynamics 365(在线)实例。访问由实例安全组成员控制。 您可以通过附加实例附加组件购买其他实例。...如果管理员具有访问权限,则可以从Dynamics 365(在线)界面中看到租户中的多个实例。 您无法在租户注册之间重新分配许可。...跨租户协作将仅限于Lync联合和Exchange联合功能。 跨租户访问SharePoint可能是不可能的。虽然这可以通过合作伙伴访问来解决,但是用户体验会受到干扰,并应用许可方面。
Graph API 的代码示例,验证防御措施的可行性。...邀请可通过以下方式发起:手动邀请:管理员或具有“Guest Inviter”角色的用户通过 Azure 门户、Microsoft Graph API 或 PowerShell 发送邀请。...一旦获得权限,攻击者可通过 Microsoft Graph API 发送邀请。...Single User条件:同一用户在 1 小时内发送超过 5 次邀请响应:自动禁用该用户邀请权限并告警Graph API 查询示例:GET https://graph.microsoft.com/v1.0...此外,通过 Graph API 监控,我们能在 5 分钟内检测到异常邀请模式并自动响应。6 讨论本攻击揭示了现代 IAM 系统的一个根本矛盾:便利性与安全性之间的张力。
一,引言 上次关于Azure AD B2C 讲到一些概念,有介绍到,Azure AD B2C 也是一种身份验证的解决方案,但是它运行客户使用其首选的社交,企业或者本地账户标识对应用程序和API进行单一登录访问...应用程序可以使用 Azure AD B2C 通过开放式标准协议对社交帐户、企业帐户和 Azure Active Directory 帐户进行身份验证。...2.2,注册应用程序 在门户工具栏中选择“目录 + 订阅”图标,然后选择包含 Azure AD B2C 租户的目录,切换成功后,在Azure Portal的左侧菜单上选择 ”Azure AD B2C“...选择运行流,选择前面已注册的名为 WebApp 的 Web 应用程序。 此时,我们可以看到一个标准模板的登录注册的页面,点击 ”Sign up now“,进行注册。 ...四,结尾 今天的文章大概介绍了如果在我们的Web项目中集成Azure AD B2C,通过使用第三方的社交账号 “邮箱”进行注册,登陆。
我们可以通过Azure的标识平台生成应用程序,采用微软表示登录,以及获取令牌来调用受保护的API资源。也就是说这一切功能也是基于包含Oauth 2.0和Open ID Connect的身份验证服务。...2,安装 nuget: Microsoft.AspNetCore.Authentication.AzureAD.UI 3,需要注册验证服务,整个地方默认的是 “AzureADJwtBearer”,AddAzureADBearer...) (2)ClientId:选择刚刚注册好的应用程序,进入应用程序页面后,找到对象Id 进行复制操作。 ...若要在应用程序中与Azure AD进行集成,需要在每个特定环境的Azure门户中单独注册应用程序。 ...,下一篇继续介绍如何使用其他类型的授权访问模式来访问由Azure AD受保护的API资源。
它不依赖外部SaaS服务,而是直接调用Microsoft Graph API,实时扫描租户内的高风险行为:检测异常收件箱规则:如自动转发至外部域名、删除特定关键词邮件等;识别可疑OAuth应用授权:尤其是请求...技术内核:Graph API + 自动化剧本 = 主动防御要理解这款工具为何有效,得先了解Microsoft 365的安全架构。...微软通过Microsoft Graph API开放了对用户邮箱、日历、设备、身份等数据的编程访问接口。...而CyberDrain的工具,本质上是一组自动化剧本(Playbooks),通过合法API权限主动“体检”整个租户。...实施条件式访问(Conditional Access)策略:例如,限制仅公司IP或合规设备可访问敏感数据。长期保留审计日志:默认日志仅保留30天,建议通过Azure订阅延长至1年以上,便于事后溯源。
验证通过后,点击下方Go to subscription跳转到订阅页面 自动续费 注册Key 登录进入Azure ,登录账号使用E5账户,即xxx@xxx.onmicrosoft.com 搜索应用注册,...进入后点击左侧新注册,注册一个应用程序。...此处注册后需要记录应用程序(客户端)ID 名称任意 账户类型选择最后一个 重定向URI选择Web,填写:https://e5.qyi.io/outlook/auth2/receive ?...配置API 前面的应用程序(客户端)ID和客户端密码的值都记录好后,下面进行API的配置 点击左侧API权限,添加权限然后选择Microsoft Graph ?...续订程序,点击Github图标进行登陆并授权 此处只能获取你在Github中的用户id、用户名等基础信息(邮箱获取不了),其他的任何信息也获取不到 然后自动跳转到授权页面,填入信息 client_id:即前面记录的应用程序
microsoft graph的api,一次调用10个api,5个onedrive的api还有4个outlook的api,剩下一个是组的api,调用一次后延时等待五分钟再重复调用。...,获取应用id、secret 首先去E5应用注册注册一个应用 先用e5管理员账号登录网站,然后在主页找到Azure Active Directory点进去 再在左侧目录找到点击应用注册 再点上方的新注册就会跳出一个新建应用的界面...,应用名字随意填写,然后选择任何组织目录(任何 Azure AD 目录 – 多租户)中的帐户,重定向url选web,填入http://localhost:53682/,最后点注册即可 复制应用程序(客户端...记录ID 下面会用到 点击左边管理的证书和密码,点击+新客户端密码,点击添加,复制新客户端密码的值 记录这个值 下面会用到 点击左边管理的API权限,点击+添加权限,点击常用Microsoft API...里的Microsoft Graph(就是那个蓝色水晶), 点击委托的权限,然后在下面的条例搜索以下12个 最后点击底部添加权限 Calendars.ReadWrite 、 Contacts.ReadWrite
攻击者通过伪造IT部门通知、安全警报或软件更新提示,诱使用户访问看似合法的指令页面,并要求其在https://microsoft.com/devicelogin 输入一串六位字母数字组合的设备代码。...一旦授权完成,攻击者即可通过device_code兑换令牌,获得与用户同等的API访问权限。...Graph API,读取邮件、日历、联系人,甚至创建新应用或修改权限。...假设攻击者已注册一个Azure AD应用,client_id为“a1b2c3d4-5678-90ef-ghij-klmnopqrstuv”,并申请了以下API权限:Microsoft Graph: Mail.ReadWrite...随后,攻击者可使用该令牌调用Graph API:# Example: Read user's mailboxheaders = {'Authorization': f'Bearer {token_json