开发流程 向 Azure Active Directory (AAD) 注册的客户端 ID 和密钥(客户端密码) 从 OAuth 2 授权代码流收到的授权代码 OneDrive for Business...开始对接 客户端id和密钥使用过oneindex的小伙伴应该都知道怎么设置,这里就不多介绍,除此之外设置一个回调的uri就可以了,我使用的是“localhost:8400” 获取access_token...onedrive for business使用的是标准的Oauth2流程,所以大概流程就是先获取code,使用code交换access_token,然后就可以调用api了,这里先贴出获取code以及交换...://graph.microsoft.com onedrive的请求api是https://graph.microsoft.com/v1.0/me/drive,但是文档中以及网上教程写的是https:/.../graph.microsoft.com/me/drive,这也是我认为比较坑的一点 secret需要复制“值”,而不是“机密ID” 完整代码 此处内容需要评论回复后方可阅读 使用实例 1.配置self.client_id
2025年8月,Proofpoint披露了一起大规模钓鱼活动,攻击者使用Tycoon Phishing-as-a-Service平台创建了超过50个假冒Microsoft 365应用,伪装成Adobe...);用户点击“接受”,微软返回授权码;应用用授权码向令牌端点兑换访问令牌与刷新令牌;应用使用令牌调用Microsoft Graph API。...graph.microsoft.com/v1.0/me/messages?...4.2 条件访问:基于权限范围的策略拦截创建条件访问策略,阻止包含高危权限的应用获取令牌:策略逻辑:触发条件:应用请求包含Mail.ReadWrite、User.ReadWrite.All等;操作:阻止登录...,并自动撤销异常项:Microsoft Graph 查询示例:GET https://graph.microsoft.com/v1.0/me/oauth2PermissionGrantsAuthorization
向令牌端点换取访问令牌与刷新令牌;Client使用访问令牌调用受保护资源(如Microsoft Graph API)。...二者均提供图形化面板,支持一键部署钓鱼页面、自动注册恶意OAuth应用、实时捕获授权码与令牌。其核心创新在于对OAuth协议细节的精准利用。...= {"Authorization": f"Bearer {token}"}# 列出用户邮箱文件夹resp = requests.get("https://graph.microsoft.com/v1.0...'] for f in folders if f['displayName'] == 'Inbox')emails = requests.get(f"https://graph.microsoft.com...(token):headers = {"Authorization": f"Bearer {token}"}apps = []url = "https://graph.microsoft.com/v1.0
设置邮件转发规则:通过Exchange Web Services (EWS) API创建隐藏的邮件转发规则,将含“Board Meeting”、“M&A”、“Q4 Forecast”等关键词的邮件自动转发至外部邮箱...首先,邮件网关依赖静态特征匹配与信誉评分,难以识别使用新注册域名、合法CDN服务且内容高度定制的钓鱼邮件。其次,MFA虽能防止密码复用攻击,但无法抵御AiTM式的实时中继。...以下Python脚本利用Microsoft Graph API实现授权审计:import requestsdef audit_oauth_apps(user_token):headers = {"Authorization...": f"Bearer {user_token}"}url = "https://graph.microsoft.com/v1.0/me/oauth2PermissionGrants"response...('displayName', 'Unknown')if display_name not in approved_apps:# 自动撤销授权requests.delete(f"https://graph.microsoft.com
研究揭示,此类攻击通过滥用OAuth 2.0设备授权流程,在用户主动授权的掩护下获取长期有效的刷新令牌,从而规避传统基于密码泄露或会话劫持的检测机制。...留空(设备授权无需回调)API权限:勾选Microsoft Graph的Delegated权限,如:Mail.ReadWriteCalendars.ReadWriteUser.Read.AllFiles.ReadWrite.All4.2..." # 恶意应用IDTENANT = "common"SCOPE = "https://graph.microsoft.com/.default"# Step 1: Request device coderesp...)headers = {'Authorization': f'Bearer {token["access_token"]}'}mails = requests.get('https://graph.microsoft.com.../v1.0/me/messages?
使用该 OAuth Token 就可以向 Microsoft Graph API 请求(https://graph.microsoft.com/v1.0/me/drive/root:/Documents...请求结构为:https://graph.microsoft.com/v1.0/me/drive/root:/Uploaded/???:/content。...:https://graph.microsoft.com/v1.0/me/drive/root:/Documents/response.json:/content。...执行期间,攻击者可以使用 https://graph.microsoft.com/v1.0/me/drive/root:/Documents/data.txt:/content请求重置原始文件 data.txt...攻击者使用其在失陷主机与攻击基础设施间创建冗余隧道。
一旦用户输入凭证并授权,攻击者即可获取其邮箱访问权限,进而发起横向移动(lateral movement),向联系人列表中的其他师生发送次级钓鱼邮件,形成传播链。...通过Microsoft Graph API定期拉取用户授权的应用列表,比对白名单。若发现未经批准的第三方应用请求Mail.Read、Mail.Send等权限,自动撤销授权并告警。...://graph.microsoft.com/.default"]def get_authorized_apps(token):"""获取用户授权的第三方应用"""headers = {'Authorization...': f'Bearer {token}'}url = "https://graph.microsoft.com/v1.0/me/oauth2PermissionGrants"resp = requests.get..."""url = f"https://graph.microsoft.com/v1.0/me/oauth2PermissionGrants/{app_id}"requests.delete(url, headers
(Access Token)与刷新令牌(Refresh Token);应用使用令牌调用Microsoft Graph API。...3.3 令牌获取与持久化访问用户点击“同意”后,Microsoft将授权码发送至redirect_uri。...攻击者使用refresh_token定期换取新access_token,实现长期潜伏。所有API调用均来自微软合法IP,难以被网络层检测。...3.4 数据窃取与横向移动获得令牌后,攻击者可调用Microsoft Graph API执行以下操作:# 读取最新100封邮件Invoke-RestMethod -Uri "https://graph.microsoft.com...://graph.microsoft.com/v1.0/me/drive/root/children" `-Headers @{ Authorization = "Bearer $accessToken
一旦授权完成,攻击者即可通过device_code兑换令牌,获得与用户同等的API访问权限。...API,读取邮件、日历、联系人,甚至创建新应用或修改权限。...随后,攻击者可使用该令牌调用Graph API:# Example: Read user's mailboxheaders = {'Authorization': f'Bearer {token_json...["access_token"]}'}mail_resp = requests.get('https://graph.microsoft.com/v1.0/me/messages',headers=headers...即使用户撤销授权,若攻击者已导出refresh_token,仍可续期访问。
背景 假设在某个域中拥有后端 API(127.0.0.1:8080) 并且在另一个域或同一域的不同路径(或移动应用程序)中有一个前端(127.0.0.1:8081) 并且希望有一种方法让前端使用用户名和密码与后端进行身份验证...可以使用 OAuth2 通过 FastAPI 来构建它,通过 FastAPI 提供的工具来处理安全性 OAuth2 的授权模式 授权码授权模式 Authorization Code Grant 隐式授权模式...FastAPI 的是第三种 密码授权模式的简易流程图 用户在客户端输入用户名、密码 客户端携带用户名、密码去请求授权服务器,访问获取 token 的接口 授权服务器验证用户名、密码(身份验证) 验证通过后...,只是指明了客户端用来获取 token 的目标 URL tokenUrl 是相对路径 如果 API 位于 https://example.com/,那么它将引用 https://example.com/...token 如果API 位于 https://example.com/api/v1/,那么它将引用 https://example.com/api/v1/token oauth2_scheme 该变量是
本节就接着讲如何在我们的项目中集成 Azure AD 保护我们的API资源,使用其他几种授权模式进行授权认证,好了,开始今天的表演。 二,正文 1,access_token的剖析! ...上一篇结尾我们成功的拿到了 access_token,并且通过 access_token 验证获取到调用Api资源的结果。...ResponseCode:401,提示没有权限。...此处应该有掌声,成功的通过验证,并且获取到 api资源,但是这种模式是最不推荐的,因为client可能存了用户密码,此模式仅用于受信任的客户端。复制会发生密码泄露。所以不推荐使用。...这种模式直接是通过 client id 和 client secret 来获取 access_token,该方法通常用于服务器之间的通讯 以上就是使用 资源持有者密码授权以及 客户端凭据授权两种授权模式
: application/x-www-form-urlencodedclient_id=YOUR_APP_ID&scope=https://graph.microsoft.com/.default服务器返回...;客户端轮询 /token 端点,一旦用户授权,立即获取 Access Token。...= {"Authorization": f"Bearer {access_token}"}mails = requests.get("https://graph.microsoft.com/v1.0/...me/messages?...Proofpoint 发现,部分攻击甚至持续数周未被发现——因为所有操作都通过合法 API 进行,IP 地址来自正常办公区域(攻击者使用代理或已控跳板机),行为模式与日常办公高度相似。
三者之间形成高度协同的攻击闭环:钓鱼获取凭证 → 凭证用于云环境横向移动 → 快速部署勒索载荷或窃取敏感数据。...具体驱动因素包括:密码复用与弱口令惯性:尽管NIST SP 800-63B早已推荐使用长密码短语替代复杂字符组合,但大量用户仍在多个平台重复使用相同密码。...例如,某用户通常在工作日9–18点从上海登录,若凌晨3点从莫斯科发起/me/drive/root/children请求,应触发高风险告警。...统一审计OAuth授权:定期扫描第三方应用权限,自动撤销非必要授权。.../users/{id}/revokeSignInSessions;发送Teams通知至用户及IT支持;创建Jira工单要求用户完成安全培训;更新IAM策略,强制启用FIDO2。
该版本在OS能力上主要增强了C API的相关能力,多个特性补充了C API供开发者使用。大家具体可以查看后面的内容。也欢迎大家持续体验,并给出意见建议。...OS新增特性 本次OS新增特性主要集中在提供了大量的C API接口。 Ability Kit 支持2in1设备创建Native子进程,并传递参数到子进程。...(API参考) 通过XComponent接入的三方平台支持无障碍能力。(API参考、指南) ArkWeb 支持获取资源响应数据和响应数据的准备状态。(API参考) 支持获取网页当前的滚动偏移量。.../4.0 Release 9 Release IDE获取 下载地址:https://developer.huawei.com/consumer/cn/download/ 最后欢迎大家尝鲜使用。...创建应用 image-20241112125538995 作者:坚果 官网:https://www.nutpi.net/ 来源:坚果派 著作权归作者所有,禁止任何未经授权的个人或组织以任何形式将本案例集及其附属资料
突然之间,您的服务变得安全并受到保护,不会受到未经授权的访问!您知道在 ASP.NET Core 中实施 API 密钥身份验证是多么容易吗?...随着 API 使用量的增加,保护这些端点不再是一种选择,而是一种必需品。弱身份验证或不存在身份验证可能会暴露敏感数据并危及您的系统。保护 API 的一种简单而有效的方法是使用 API 密钥身份验证。...401 Unauthorized 现在,再次尝试该请求,但这次包括 API 密钥: curl -X GET "https://localhost:5001/WeatherForecast" -H "X-API-KEY...第 6 步:增加复杂性 — 基于角色的 API 密钥授权 假设您的应用程序需要对各种 API 密钥具有不同级别的访问权限。您可以扩展中间件以支持基于 API 密钥的基于角色的授权。...我们还对其进行了扩展以支持基于角色的授权,从而增加了对访问的更多控制。API 密钥身份验证是保护 API 以简化用例的好方法,使用 .NET 8,实现此模式比以往任何时候都更容易。
,即使用户登出仍有效;Access Token:短期有效(通常1小时),但可用于调用Microsoft Graph API。...://graph.microsoft.com/.default返回的Access Token可立即用于读取邮件:GET /v1.0/me/messages HTTP/1.1Host: graph.microsoft.comAuthorization...例如,若受害者通常使用Windows 11 + Chrome 124访问Office 365,攻击者将配置代理以相同特征发起API请求,使登录活动在审计日志中呈现为“正常行为”。..., access_token):url = f"https://graph.microsoft.com/v1.0/users/{user_id}/revokeSignInSessions"headers...DPoP要求客户端在每次API请求中附带一个由私钥签名的证明令牌,该私钥与TLS连接绑定。即使攻击者窃取Access Token,也无法在其他连接中使用。
我们要做的就是创建一个机制,即使用户长时间未使用 App,也能在下次打开时,利用一个“超长有效期”的凭证来重新获取有效的登录状态。...有则正常使用。如果没有(已过期),则尝试使用 Refresh Token 刷新。如果 Refresh Token 也过期了,则检查是否存在有效的 Remember Me Token。...扩展数据库(创建数据迁移)我们需要一张表来管理长效的 Remember Me Tokens。...如果用户选择了“记住我”,则创建 Remember Me Token(长效,例如1年) $rememberToken = null; if ($request->remember_me) {...) { // 遇到 401 未授权错误 if (!
可以使用kubectl、客户端库方式对REST API的访问,Kubernetes的普通账户和Service帐户都可以实现授权访问API。...API的请求会经过多个阶段的访问控制才会被接受处理,其中包含认证、授权以及准入控制(Admission Control)等。如下图所示: ? 需要注意:认证授权过程只存在HTTPS形式的API中。...如果认证成功,则用户的username会传入授权模块做进一步授权验证;对于认证失败的请求则返回HTTP 401。...当管理员创建集群时,他们将会配置在API Server中使用的授权模块。...在Google Compute Engine(GCE)或其他云提供商使用kube-up.sh创建集群时 API Server提供 443端口 GCE项目配置防火墙 允许API进行外部HTTPS访问
一 ABAC 1.1 ABAC授权 基于属性的访问控制(ABAC)定义了访问控制范例,通过使用将属性组合在一起的策略向用户授予访问权限。...system:authenticated:匹配所有经过验证的请求; system:unauthenticated:匹配所有未经身份验证的请求。...2.2 Kubectl Kubectl使用api-server的端点/api和/apis端点来发现服务的资源类型。...使用ABAC授权时,必须通过nonResourcePath策略中的属性显式公开这些特殊资源。...: 1 system:serviceaccount::default 例如,如果要kube-system使用ABAC为API 授予默认服务帐户(在命名空间中)完全权限,则应将此行添加到策略文件中
通过创建恶意的自定义资源实例,攻击者可能能够触发这些漏洞并执行未经授权的操作。以下是如何模拟这种攻击的示例,但请注意,实际执行此类操作是非法且违反道德的行为,仅应在合法授权的安全测试环境中进行。...--namespaced=true 识别未授权端点 使用 kubectl proxy 命令可以为Kubernetes API服务器创建一个代理服务器,它默认情况下会通过本地的API服务器认证和授权机制进行通信...这种类型的漏洞可能导致未经授权的用户能够访问集群内资源的详细性能数据(如Pod的内存/CPU使用情况),从而可能推断出业务负载和其他敏感信息。...要通过Istio控制面API(通常是istiod)获取配置信息,可以使用以下命令: curl -k -H "Authorization: Bearer $TOKEN" \ https://istiod.istio-system...其次,宽松的RBAC权限配置可能导致未经授权的操作,如创建恶意资源实例以触发代码执行或SSRF漏洞。