这是一篇发布在dotnet 团队博客上由微软Graph首席软件工程师 Joao Paiva 写的文章,原文地址: https://devblogs.microsoft.com/dotnet/microsoft-graph-dotnet...Microsoft Graph 是一个 API 网关,它提供了对 Microsoft 365 生态系统中数据和智能的统一访问。...我将向您详细介绍我们是如何将 Microsoft Graph 构建到现在这样海量服务中的过程。...对于像 Microsoft Graph 这样受计算约束的服务,使用新的运行时和算法来减少时间和空间复杂性至关重要,并且是使服务快速且可缩放的最有效方法之一。...NoWarn="NU1702" 在 Microsoft Graph 迁移的案例中,我们在不同的时间和不同的依赖项中使用了所有这些选项。
早在一个月前,小游戏推出了一次性“订阅消息”功能,花叔就在想也许迟早普通小程序也会走这么一套逻辑,因为这套逻辑比较合理。 果不其然,就在刚刚,普通小程序终于把原来的模板消息换成订阅消息了。...该机会不受时间限制。...要实现这个新交互,跟小游戏一样,主要依靠一个前端的API: wx.requestSubscribeMessage 以及一个https接口: subscribeMessage.send 这里就不讲述了,...跟我之前写的小游戏的订阅消息一模一样的实现步骤,具体可参考这篇文章《关于小游戏订阅消息的解读》。...对了,除了一次性订阅消息外,其实这次还公布了个“长期性订阅消息”,用户只要授权后,这类型的小程序能给用户发多条服务通知,并且不受时间限制。
用来接收生产者发送的消息并将这些消息路由给服务器中的队列。三种常用的交换器类型,a、direct(发布与订阅 完全匹配)。b、fanout(广播)。c、topic(主题,规则匹配)。...2、direct(发布与订阅 完全匹配)的使用。 ? 由于使用的是SpringBoot项目结合Maven项目构建的。项目工程如下所示: ?...本模块练习的是发布订阅模式即Direct,分为两个生产者LogInfo、LogError,生产者生产消息的时候也要带上路由键,队列通过路由键绑定到交换器(即交换器根据路由键将绑定到队列上),交换器根据不同的路由键将消息发送到不同队列上...发送消息的. 13 * 14 * 这里使用的交换器类型使用的是direct发布订阅模式, 15 * 根据配置的路由routing-key来决定,将不同的消息路由到不同的队列...发送消息的. 13 * 14 * 这里使用的交换器类型使用的是direct发布订阅模式, 15 * 根据配置的路由routing-key来决定,将不同的消息路由到不同的队列
之前笔者介绍了快递查询API接口,主要是需要输入快递单号主动查询,无论物流状态有无变化,都需要主动查询,有可能多次查询的结果是没有变化的。...这种方式有一定的不足:实时性不高,需要每次查询方能知道最新状态。通常按次计费,无论物流状态有无变化,只要发起查询就计费,增加了查询成本。...有没有实时性更高的,当物流状态发生变化时,主动通知我的API接口呢?答案是有的,即“快递订阅推送API接口”。...与快递查询接口类似,快递订阅推送API,同样支持1500+快递公司,与官网同步数据更新。...下面来介绍快递订阅推送API接口的使用快递订阅主要分两步:先调用订阅接口,提交单号,发起订阅订阅成功后,当物流状态发生变动时,由接口提供者将当前物流状态推送给使用者订阅说明请求参数名称类型必须说明expressCode
只需要在我们的views函数上加上 @ratelimit(key='ip', rate='1/30s', block=True) 装饰器就可以了,网站上的资料不多,大部分都是英文的。...在这里稍微解释下参数: key=’ip’, 必填项,标识按照IP划分,我理解的是同一IP,遵循后面参数设定的规则。...block=True,在这里吃了个亏,默认是False,加上了装饰器没写该参数,访问不受限制,没有达到间隔时间内不能再访问的预期效果,果断回去翻文档, ?...我理解大概的意思是,当访问进来的时候是否去阻止它,把block=True之后,在次测试访问,可以看到403,确实是阻止了。 还有其它的参数,有更多需求的话可以看看,这是其一。...(seconds = 5): ”’ @func: 限制访问频率装饰器 ”’ def rate_limit(func
Graph API 的代码示例,验证防御措施的可行性。...邀请可通过以下方式发起:手动邀请:管理员或具有“Guest Inviter”角色的用户通过 Azure 门户、Microsoft Graph API 或 PowerShell 发送邀请。...一旦获得权限,攻击者可通过 Microsoft Graph API 发送邀请。...,您的 Microsoft 365 商业高级版订阅将于今日自动续费 USD 299.99。...Single User条件:同一用户在 1 小时内发送超过 5 次邀请响应:自动禁用该用户邀请权限并告警Graph API 查询示例:GET https://graph.microsoft.com/v1.0
) 自动续订 自动续期 Office 365开发者订阅默认是90天有效期,到期须续期才可继续使用,微软会验证账户内是否应用了所提供的相关API应用、服务等以此来检测开发者身份 ...所需配置 账户名称+账户密码+应用程序(客户端)ID 账户名称+客户端机密+应用程序(客户端)ID 功能影响 程序中所有API均可调用 部分API权限受限无法调用(官方限制) API权限配置 可由PC...版程序自动配置添加API权限 必须手动配置API权限 可以选择相应的API进行配置 此处以Microsoft Graph为参考,选择“委托的权限”,根据列出的API权限需求表进行选择...,可用于生成和测试对 Microsoft Graph API 的请求 API需要的权限设定可在预览卡中查阅,授权后则可再次尝试调用响应 Postman 是一个可用于向 Microsoft...Graph API 发出请求的工具:Postman&Microsoft Graph API使用 c.Microsoft Graph 快速入门示例 Microsoft Graph入门
下图演示了威胁参与者实施的真实世界攻击,目的是通过滥用 Exchange 服务、Exchange API 和标准 Outlook 功能来实现完全的域入侵。...阻止这些攻击需要组织应实施的一系列措施,以降低通过 Microsoft Exchange 连接发生安全漏洞的风险。...Microsoft 已发布补丁,通过降低对 Active Directory 的权限来修复各种版本的 Exchange 服务器的问题。...Get-Mailbox | Set-CASMailbox -EwsEnabled $false 威胁参与者将无法通过 Exchange 进行身份验证以发送 API 调用,他们将在其终端中收到以下错误...调用(推送订阅)来执行域升级的威胁参与者。
大约在 2022 年 8 月初,在进行安全监控和事件响应服务时,GTSC SOC 团队发现关键基础设施受到攻击,特别是针对他们的 Microsoft Exchange 应用程序。...感谢发现前 1 天 Exchange 漏洞的经验,RedTeam 对 Exchange 的代码流程和处理机制有深入的了解,因此减少了研究时间,并迅速发现了漏洞。...文件名 小路 RedirSuiteServiceProxy.aspx C:\ProgramFiles\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa...\auth xml.ashx C:\inetpub\wwwroot\aspnet_client pxh4HG1v.ashx C:\ProgramFiles\Microsoft\Exchange Server....* ”添加到 URL 路径: - 条件输入:选择 {REQUEST_URI} 我们建议全球所有使用 Microsoft Exchange Server 的组织/企业尽快检查、审查和应用上述临时补救措施
起初看起来只是Microsoft Teams的一次轻微中断,结果还殃及了与Teams集成的诸多Microsoft 365服务,包括Exchange Online、Windows 365和Office Online...微软证实了这些问题,声称随后的Microsoft 365中断仅仅影响与Teams集成的服务。...微软解释道:“我们已确定了对多项与Teams集成的Microsoft 365服务造成的下游影响,比如Microsoft Word、Office Online和SharePoint Online。”...微软在其Microsoft 365服务健康状态页面上进一步详述,受影响的客户在使用以下一项或多项服务时遇到了问题: •Microsoft Teams(访问、聊天和会议) •Exchange Online...Graph API(任何依赖此API的服务都可能受到影响) •Office Online(Microsoft Word 访问问题) •SharePoint Online(Microsoft Word
此类攻击不依赖凭据窃取,而是滥用OAuth 2.0授权框架中的“用户同意”流程,使恶意应用获得长期有效的刷新令牌(refresh token),进而通过Microsoft Graph API静默读取邮件...关键词:OAuth 同意滥用;假冒微软应用;Entra ID;多因素认证绕过;Graph API;条件访问1 引言多因素认证(MFA)作为现代身份安全的核心防线,已在绝大多数企业环境中广泛部署。...);用户点击“接受”,微软返回授权码;应用用授权码向令牌端点兑换访问令牌与刷新令牌;应用使用令牌调用Microsoft Graph API。...://graph.microsoft.com/v1.0/me/messages?...可通过Microsoft Graph API动态评估权限风险:HIGH_RISK_SCOPES = {'Mail.ReadWrite', 'MailboxSettings.ReadWrite','User.ReadWrite.All
registries Content Moderator Cost Management + Billing Crypteron Customer Lockbox for Microsoft...Subscriptions Event Grid System Topics Event Grid Topics Event Hubs Event Hubs Clusters Exchange...Subscriptions Event Grid System Topics Event Grid Topics Event Hubs Event Hubs Clusters Exchange...比如开网站需要备案,一旦有法律问题就会被关停订阅,甚至发生一些法律后果。特别是有些不可描述的事情国际版经常做的,中国版最好别去尝试。...某些行业符合敏感数据不出境的规定 国内Azure价格计算器: https://www.azure.cn/zh-cn/pricing/ 国际版Azure价格计算器: https://azure.microsoft.com
攻击者服务器立即用该code向Google令牌端点交换访问令牌(access token)和刷新令牌(refresh token):# 攻击者后端:用授权码换取令牌import requestsdef exchange_code_for_token...、Gmail API等,读取联系人、邮件、日历,甚至发送钓鱼邮件扩大攻击面。...Graph API支持查询用户授予的同意记录:GET https://graph.microsoft.com/v1.0/me/oauth2PermissionGrantsAuthorization:...此应用未获公司批准,授权可能导致账户泄露");}}},{ urls: ["https://accounts.google.com/o/oauth2/auth*"] });3.4 威胁情报集成与域名监控安全团队应订阅高质量威胁情报源...该流程因无需用户在钓鱼页面输入任何信息,传统基于表单提交的检测完全失效。未来,云服务商应考虑在设备码授权时增加二次确认(如短信验证码),或限制非交互式流程的权限范围。此外,会议主办方亦负有安全责任。
介绍 Microsoft GraphRAG 是一个开源项目,旨在利用 Microsoft Graph 的强大功能构建企业级的知识图谱增强的检索增强生成(RAG)方案。...项目架构 GraphRAG 的架构设计清晰且模块化,主要包含以下几个核心组件: 数据连接器(Data Connectors): 负责从各种企业数据源(如 Microsoft 365 服务,包括 Exchange...使用 Microsoft Graph API 来安全、高效地访问这些数据。 数据连接器需要处理各种数据格式和结构,并将其转换为统一的中间表示形式。...配置数据连接器: 根据实际数据源配置数据连接器,包括 Microsoft Graph API 的访问权限、数据源的连接信息等。...总结 Microsoft GraphRAG 是一个非常有潜力的项目,它利用 Microsoft Graph 的强大功能构建企业级的知识图谱增强的 RAG 方案,为企业应用带来了新的可能性。
公共互联网反网络钓鱼工作组技术专家芦笛指出,“而Microsoft 365因其广泛使用和强大API能力,成了攻击者的首选目标。”...它不依赖外部SaaS服务,而是直接调用Microsoft Graph API,实时扫描租户内的高风险行为:检测异常收件箱规则:如自动转发至外部域名、删除特定关键词邮件等;识别可疑OAuth应用授权:尤其是请求...技术内核:Graph API + 自动化剧本 = 主动防御要理解这款工具为何有效,得先了解Microsoft 365的安全架构。...微软通过Microsoft Graph API开放了对用户邮箱、日历、设备、身份等数据的编程访问接口。...实施条件式访问(Conditional Access)策略:例如,限制仅公司IP或合规设备可访问敏感数据。长期保留审计日志:默认日志仅保留30天,建议通过Azure订阅延长至1年以上,便于事后溯源。
Office 365开发人员订阅中包括了以下内容: Exchange Online (Plan 2) Flow for Office 365 Plan 2 Microsoft Forms (Plan E5...) Microsoft Planner Microsoft Stream for O365 E5 SKU Microsoft Teams Mobile Device Management for Office...add-ins Microsoft Graph Microsoft Teams SharePoint 这个新模型为您提供了您想要的永久更新,使我们能够使用遥测和分析来验证客户是否仅将订阅用于开发目的。...持续订阅的唯一方法是进行有效的开发人员活动,而最终会有两种情形发生: 如果有人未积极使用订阅进行开发,则他们的订阅将不会续订,并将在3个月后过期。订阅和所有数据将在到期后的60天内删除。...在右上角,选择登录以使用您的Microsoft帐户或启用Azure Active Directory的电子邮件登录。
做库的时候,需要一定程度上保持 API 的兼容性 ---- 第一步:安装 NuGet 包 首先打开你的库项目,或者如果你希望从零开始也可以直接新建一个项目。...然后,为主要的库项目安装 NuGet 包: NuGet Gallery - Microsoft.CodeAnalysis.PublicApiAnalyzers 安装完成之后,你的项目文件(.csproj...这时,这两个文件内容还是空的。 第三步:添加 API 记录 这个时候,你会看到库中的 public 类、方法、属性等都会发出修改建议,说此符号并不是已声明 API 的一部分。...但是如果我们的库需要发布一个版本的时候,我们就需要跟上一个版本比较 API 的差异。...上一个发布版本的 API 就记录在 PublicAPI.Shipped.txt 文件中,这两个文件的差异即是这两个版本的 API 差异。
可以帮助你实现:将自己的API接入到果创云,然后创建子应用给到你的客户或你的开发者进行接口调用,并统计调用次数。平台暂时不支持线上结算,需要自己进行线下接口调用次数的内部结算。...第1步:在果创云上快速接入你的API接口 首先,进入果创云,发布一个新接口。 选中【请求外部接口】,然后填写你原来API接口的地址。...生成好的接口模板代码如下,只有这个环节,你需要低代码接入和调整你的API接口。 完成后,发布你的API接口,接入到果创云。...添加好需要的表字段后,API调用明细表单结构如下: 存放子应用调用明细后,数据效果如下: 以上操作,都不需要代码开发,直接界面操作即可。...API调用明细 表单, 下一步,继续定制统计报表的口径和维度, 最后,生成图表。
2 攻击架构与会话劫持机制2.1 动态钓鱼页面生成Raccoon0365提供订阅制钓鱼套件,用户可通过Telegram频道选择目标品牌(Microsoft、Google、Okta等)、语言(支持12种).../src/proxy.js)及固定的Webhook URL模式(如discord.com/api/webhooks/.../raccoon),从而锁定C2基础设施。...更危险的是,若攻击者已窃取Refresh Token,可长期静默访问API资源,而无需再次交互。...内部资源Private Link:将关键服务(如Azure DevOps、Exchange Online)配置为仅可通过Azure Private Endpoint访问,公网无法直连,从根本上阻断钓鱼代理的中继可能.../providers/Microsoft.Exchange/hostingEnvironments/exch-014.3 授权事件监控持续监控Azure AD审计日志中的异常授权授予事件。
随着企业边界防御增强,攻击者转向利用面向互联网的服务,如RDP、SMB、Exchange等。2020年后,供应链攻击(如SolarWinds)与大规模漏洞利用成为主流。...攻击者仅需支付订阅费或按成功会话分成,即可获得完整攻击能力。这种“按需付费”模式极大扩展了威胁行为者的基数。2.3 AitM攻击原理与MFA绕过机制AitM攻击的核心在于透明代理。...以下Python脚本模拟检测异常会话(基于Microsoft Graph API):import requestsfrom datetime import datetime, timedeltaGRAPH_API_TOKEN...= "your_app_token"USER_ID = "user@contoso.com"def get_user_signins(user_id):url = f"https://graph.microsoft.com...$filter=userPrincipalName eq '{user_id}'&$top=10"headers = {"Authorization": f"Bearer {GRAPH_API_TOKEN