它提供了以下核心优势: 轻量级、超快速的代码托管和持续集成服务 支持 Docker 容器化部署 可以在本地环境中构建和运行系统,无需依赖 Docker 容器 提供完整的用户界面用于与系统交互,并支持 Swagger...可通过负载均衡方式访问不同渠道,并支持流式传输实现打字机效果。 支持多机部署,在令牌管理中设置过期时间和额度,并且可以进行兑换码管理批量生成与导出充值功能。...它使用行业标准的 OAuth2 和 OpenID Connect,支持获取安全令牌来访问受保护的 API,并且还提供了对 Azure AD B2C 的支持。...强大而灵活:通过 MSAL.NET 可以轻松地实现用户登录并获得所需权限,从而调用各类受保护的服务或资源。...官方文档齐备:详细介绍了如何在不同平台上使用 MSAL.NET 进行快速入门,并提供相关示例代码进行参考。
在仪表板中撤销应用程序的访问权限时,您正在终止其刷新令牌。这使您能够强制客户端轮换机密。您正在做的是使用刷新令牌获取新的访问令牌,并且访问令牌通过网络访问所有 API 资源。...反向通道是直接从客户端应用程序到资源服务器的 HTTP 调用,用于交换令牌的授权许可。这些通道用于不同的流,具体取决于您拥有的设备功能。...这是我们在本文中讨论最多的内容。客户端应用程序使用前端通道流来获取授权码授予。客户端应用程序使用反向通道将授权代码授予交换访问令牌(以及可选的刷新令牌)。...该断言用于从令牌端点获取访问令牌。这对于投资 SAML 或 SAML 相关技术并允许他们与 OAuth 集成的公司来说非常有用。...用户代码是从授权请求返回的,必须通过访问带有浏览器的设备上的 URL 来兑换授权。客户端应用程序使用反向通道流来轮询访问令牌和可选的刷新令牌的授权批准。也很受 CLI 客户端的欢迎。
OTP 至真实登录站点,完成账户接管;而 InboxPrime AI 能基于目标语言、地域和品牌特征自动生成语义连贯、视觉逼真的登录表单,并同步窃取浏览器中存储的身份令牌。...更危险的是,该套件集成浏览器扩展式脚本,可在用户访问真实网站时注入恶意代码,窃取 document.cookie 或 localStorage 中的认证令牌。...即使攻击者获取用户名和密码,也无法在其他设备上完成认证。三、基于流量与行为的钓鱼活动检测模型为应对上述威胁,组织需在认证前、中、后三个阶段部署检测能力。...例如,检测 localStorage 中是否存在异常键名(如 msal.idtoken 被非 Microsoft 域读取),或 fetch 请求是否指向非常规 C2 域名。...本文论证,唯有通过技术范式转型——从知识型 MFA 向基于硬件绑定的无密码认证迁移,并辅以网络层检测、条件访问与情报共享,方能构建具备抗钓鱼韧性的身份基础设施。
与从服务器获取所有内容不同,应用程序在浏览器中运行JavaScript,从后端API获取数据,并相应地更新web应用程序呈现。 为了保护数据访问,组织应该采用OAuth 2.0。...当前的最佳实践建议通过“授权码流”这一方式来获取访问令牌: 授权码流是一个两步流程,首先从用户那里收集一个授权许可——授权码,然后应用程序在后台通道中用授权码交换访问令牌。...请注意,本地存储中的数据会永久存储,这意味着存储在其中的任何令牌会驻留在用户的设备(笔记本电脑、电脑、手机或其他设备)的文件系统上,即使浏览器关闭后也可以被其他应用程序访问。...被盗的访问令牌可能会造成严重损害,XSS仍然是Web应用程序的主要问题。因此,避免在客户端代码可以访问的地方存储访问令牌。相反,将访问令牌存储在cookie中。...令牌处理程序是一个后端组件,例如可以驻留在API网关中。它由两部分组成: OAuth代理,它处理OAuth流以从授权服务器获取令牌。
设备流(Device Flow): 场景: 用于设备无法直接与授权服务器进行交互的情况,例如智能电视、IoT设备等。 流程: 用户访问应用,应用提供设备代码(Device Code)给用户。...用户在另一设备上打开浏览器,输入设备代码,确认授权。 客户端通过轮询方式获取访问令牌。 优点: 适用于无法直接输入用户名和密码的设备。 不依赖用户代理(User Agent)。 2....刷新令牌流(Refresh Token Grant): 场景: 用于在访问令牌过期时,客户端能够自动获取新的访问令牌。 流程: 客户端使用刷新令牌向授权服务器请求新的访问令牌。...授权服务器验证刷新令牌,颁发新的访问令牌。 优点: 在访问令牌过期时不需要用户的干预。 提高用户体验,避免频繁的重新登录。 选择合适的授权方式: 设备流: 适用于无法输入用户名和密码的设备。...刷新令牌流: 适用于需要自动获取新访问令牌的场景,提高用户体验。 在选择授权方式时,需要根据具体场景的需求和安全要求来决定。不同的授权流程有不同的优势和适用条件,开发者应根据实际情况进行选择。
本文将探讨在此类受限环境下,如何通过替代方法获取刷新令牌,以确保在信标失效时仍能维持对被攻陷身份的访问。...它存储在已加入域或 Azure AD 的设备上,允许用户无缝访问 Entra 资源。然而,未加入域的 BYOD 设备通常不存储 PRT,或者存储方式使得传统提取方法失效。...该 BOF 利用已通过浏览器向 Entra 进行身份验证的用户会话,通过以下步骤获取访问和刷新令牌: 启动新的浏览器窗口,针对指定的 Entra 客户端 ID 和范围启动授权码流程。...在本地启动 “监听器”,捕获浏览器重定向时返回的授权码。 使用捕获的授权码向 Entra 服务请求访问令牌和刷新令牌。 将获取的令牌展示给操作员。...和范围) 从窗口标题中提取返回的代码 使用代码请求并获取令牌 beacon> entra-authcode-flow
研究揭示,此类攻击通过滥用OAuth 2.0设备授权流程,在用户主动授权的掩护下获取长期有效的刷新令牌,从而规避传统基于密码泄露或会话劫持的检测机制。...文章详细还原攻击链路,提供关键代码示例说明恶意应用注册、设备代码请求与令牌轮询过程,并评估其在不同MFA配置下的有效性。...研究表明,仅依赖MFA已无法抵御利用合法认证界面的授权型攻击,企业必须重构身份验证策略,从协议层消除设备代码授权流的非必要暴露,方能有效应对跨阵营协同演化的云身份威胁。...5 防御策略体系构建5.1 禁用非必要的设备授权流程最直接的缓解措施是在Azure AD中禁用设备代码授权服务主体。...企业应重新评估设备代码授权流的必要性,优先推广FIDO2等无密码认证方式,并通过日志监控与策略自动化实现动态防护。唯有如此,方能在攻击者不断融合演进的威胁环境中守住身份这一数字边界。
MFA多因素验证或者其他无密码身份验证访问策略,我们则无法使用已获取的用户名密码与AzureHound进行身份验证,在这种情况下,我们可在Powershell命令行中执行如下命令调用AzureAPI来获取租户的刷新令牌...1)手动执行如下PowerShell脚本,来执行AzureAD设备代码流并生成刷新令牌,执行结果如图1-4所示。...图1-4通过AzureAD设备代码流生成刷新令牌2)使用浏览器访问https://microsoft.com/devicelogin,如图1-5所示,在此输入图...应用程序中进行了身份验证,并允许了设备代码流的登录请求。...该脚本主要的作用是在没有浏览器的情况下,使用设备代码授权流程进行AzureAD身份验证,并通过"设备代码授权"的方式获取访问令牌。
更令人不安的是,这种攻击对多因素认证(MFA)几乎免疫——即使你启用了短信或 Authenticator 验证,只要在微软官网输入了那串“设备代码”,攻击者就能绕过所有防线,直接获取访问令牌(Access...消息中附带一个标准微软短链:**https://aka.ms/devicelogin**(真实有效的微软设备登录入口),并提供一组8位字母数字混合的“设备代码”,例如 XK92-MPQ7。...四、企业自救指南:三步堵住“合法后门”面对如此高阶的攻击,企业不能坐以待毙。芦笛与安全社区共同提出以下防御策略:1. 禁用不必要的设备代码授权在 Azure AD 中,默认所有租户都启用了设备代码流。...部署条件访问(Conditional Access)策略限制高风险操作(如令牌颁发)仅允许从受信任设备、网络或地理位置发起。...芦笛总结道,“企业必须从‘被动防御’转向‘主动狩猎’。”五、行业反思:便利与安全的天平该如何摆?设备代码钓鱼的流行,暴露出一个深层矛盾:现代身份协议在追求用户体验的同时,是否牺牲了安全可见性?
隐式授权类型是单页 JavaScript 应用程序无需中间代码交换步骤即可获取访问令牌的一种方式。它最初是为 JavaScript 应用程序(无法安全存储机密)而创建的,但仅在特定情况下才推荐使用。...在 OAuth 2.0 中,术语“授权类型”是指应用程序获取访问令牌的方式。OAuth 2.0 定义了几种授权类型,包括授权代码流。OAuth 2.0 扩展还可以定义新的授权类型。...通过这样做,服务器确保应用程序能够从 URL 访问该值,但浏览器不会将 HTTP 请求中的访问令牌发送回服务器。 状态值将与应用程序最初在请求中设置的值相同。...但是,Okta 授权代码授予需要客户端密码,因此我们采用了下面提到的不同方法。 隐式授权类型的主要缺点是访问令牌直接在 URL 中返回,而不是像授权代码中那样通过受信任的反向通道返回流动。...访问令牌本身将记录在浏览器的历史记录中,因此大多数服务器都会发布短期访问令牌以降低访问令牌泄露的风险。因为没有反向通道,隐式流也不返回刷新令牌。
此类攻击利用OAuth2协议中合法但易被滥用的功能,通过社会工程手段诱导开发者在官方验证页面输入一次性设备码,从而窃取具备高权限的访问令牌。...关键词:GitHub;OAuth2;设备授权流;钓鱼攻击;访问令牌;社会工程;供应链安全1 引言GitHub作为全球最大的开源代码托管平台,承载了数千万开发者的项目协作与持续集成(CI/CD)流程。...首先解析GitHub设备授权流的标准实现;其次还原攻击者构造恶意授权请求、实施社会工程及提取令牌的全过程;继而通过代码复现实验验证攻击可行性;最后提出涵盖平台侧、组织侧与个体开发者层面的多层次缓解策略。...其核心思想是将授权请求与用户认证解耦:设备生成一个短时效的验证码,用户在具备完整浏览器的设备上输入该码完成授权,设备随后轮询获取访问令牌。...Secrets访问;禁用高风险授权流:在组织策略中关闭设备授权流(若非必要);开展针对性红队演练:模拟设备码钓鱼,评估员工安全意识。
虽然代码示例和资源适用于 Python 开发人员,但每种身份验证方法的实际说明适用于所有 Web 开发人员。 身份验证与授权 身份验证是验证尝试访问受限系统的用户或设备的凭据的过程。...流程 实施OTP的传统方式: 客户端发送用户名和密码 凭据验证后,服务器生成随机代码,将其存储在服务器端,并将代码发送到受信任的系统 用户在受信任的系统上获取代码,然后将其输入回 Web 应用 服务器根据存储的代码验证代码...,并相应地授予访问权限 TOTP的工作原理: 客户端发送用户名和密码 凭据验证后,服务器使用随机生成的种子生成随机代码,将种子存储在服务器端,并将代码发送到受信任的系统 用户在受信任的系统上获取代码,然后将其输入回...,并在 Web 应用上输入该代码 服务器验证代码并相应地授予访问权限 优点 添加额外的保护层。...对于 RESTful API,基于令牌的身份验证是推荐的方法,因为它是无状态的。 如果必须处理高度敏感的数据,则可能需要将 OTP 添加到身份验证流中。 最后,请记住,显示的示例只是触及表面。
它支持访问令牌,但未指定这些令牌的格式。使用 OIDC,定义了许多特定的范围名称,每个名称都会产生不同的结果。OIDC 同时具有访问令牌和 ID 令牌。...OIDC 的一项重大改进是元数据机制,用于从提供者处发现端点。 什么是范围? 范围是以空格分隔的标识符列表,用于指定请求的访问权限。有效范围标识符在RFC 6749中指定。...使用 OIDC 时,您会听到各种“流”的说法。这些流程用于描述不同的常见身份验证和授权场景。...共有三个主要流程:授权代码、隐式和混合。response_type这些流由请求中的查询参数控制/authorization。在考虑使用哪种流程时,请考虑前台渠道与后台渠道的要求。...反向通道是指与 OP 交互的中间层客户端(例如 Spring Boot 或 Express)。当需要反向通道通信时,授权代码流是一个不错的选择。 授权代码流使用response_type=code.
在此基础上,通过构建实验环境复现攻击过程,并提供关键代码示例以说明令牌交换与权限提升机制。随后,从身份治理、条件访问策略、日志监控及用户教育四个维度提出系统性防御框架。...该流程允许用户在另一台具备浏览器的设备上完成授权,从而获取访问令牌。...更严重的是,即使组织启用了短信或电话MFA,攻击者仍可在用户完成授权后直接获取长期有效的刷新令牌(Refresh Token),实现持久化访问。...4 防御策略体系构建4.1 禁用非必要设备授权流程最直接的缓解措施是在Azure AD中禁用设备代码授权流程。...例如:阻止从非托管设备或异常地理位置发起的设备代码授权;要求所有OAuth令牌请求必须来自合规设备;对包含敏感权限(如Mail.ReadWrite)的令牌请求强制二次审批。
API调用,以从资源服务器中获取相关数据 OAuth 2.0授权范围 对于任何OAuth授权类型,客户端应用程序都必须指定其要访问的数据以及要执行的操作类型,它使用scope发送到OAuth服务的授权请求的参数来执行此操作...API call 现在客户端应用程序有了访问代码,它最终可以从资源服务器获取用户的数据,为此它对OAuth服务的/userinfo端点进行API调用,访问令牌在Authorization:Bearer报头中提交...API调用,与授权代码流不同,这也会通过浏览器进行 GET /userinfo HTTP/1.1 Host: oauth-resource-server.com Authorization: Bearer...接收访问令牌后,客户端应用程序通常从专用/userinfo端点向资源服务器请求此数据 接收到数据后,客户端应用程序将使用它代替用户名来登录用户,从授权服务器接收到的访问令牌通常用于代替传统密码 在下面的实验中...在授权代码流的情况下,攻击者可能会在使用受害者的代码之前窃取该代码,然后,他们可以将此代码发送到客户端应用程序的合法/回调端点(原始的重定向uri)以访问用户的帐户,在这种情况下,攻击者甚至不需要知道客户机机密或由此产生的访问令牌
什么是“流”? 二、授权流因用例不同而异 三、获取令牌 四、令牌管理 五、为什么区分OAuth流很重要 (注:本文的原文,包括部分参考内容需要以不可描述的方式访问。)...第二版OAuth 2.0,已经成为保障API安全的事实标准。 二、授权流因用例不同而异 OAuth规范接受多种获取和验证令牌的方法,但并不是所有流对所有类型的客户端都是普适的。...三、获取令牌 在相关规范中定义的许多授权流中,有四种基本流程用于获取OAuth中的令牌。在这里,我将就这几个基本流程和其他我认为比较重要的流程进行一些描述。...通常,代码流还将允许您接收刷新令牌,在访问令牌过期之后,允许客户端在不需要用户确认的情况下获得新的访问令牌。代码流只应由私人客户端使用。...这意味着只有让用户参与才能接收新的访问令牌。 白小白: 实际上隐式流在很多文档中也称为简化流,相对于认证码授权流,少了第一个获取CODE的过程。
恶意代码片段检测:扫描工作流文件中的 Base64 编码可疑载荷,识别潜在的隐蔽后门或信息窃取脚本。...CxGithub2msScan - 工作流日志密钥泄露扫描自动化日志收集:通过 GitHub API 批量获取指定时间范围内(如最近 7 天)的 GitHub Actions 工作流运行记录。.../logs参数说明--owner:仓库所属的组织名或用户名。--repo:仓库名称。--days:要扫描的日志天数范围(从当前时间向前推)。--token:GitHub 个人访问令牌。...核心代码CxGithubActionsScan - 核心扫描逻辑 (片段)# 递归扫描仓库中的指定路径,检测风险 Actions 和恶意代码def scan_path(owner, repo, path...处理目录的逻辑CxGithub2msScan - 日志扫描核心逻辑 (片段)# 获取指定时间范围内的所有工作流运行记录def get_workflow_runs(owner, repo, days, token
授权代码授权类型可能是您将遇到的最常见的 OAuth 2.0 授权类型。Web 应用程序和本机应用程序都使用它在用户授权应用程序后获取访问令牌。...在 OAuth 2.0 中,术语“授权类型”是指应用程序获取访问令牌的方式。OAuth 2.0 定义了几种授权类型,包括授权代码流。OAuth 2.0 扩展还可以定义新的授权类型。...此代码的生命周期相对较短,通常会持续 1 到 10 分钟,具体取决于 OAuth 服务。 将授权码交换为访问令牌 我们即将结束流程。现在应用程序有了授权代码,它可以使用它来获取访问令牌。...令牌端点将验证请求中的所有参数,确保代码没有过期并且客户端 ID 和密码匹配。如果一切正常,它将生成一个访问令牌并在响应中返回它!...由于授权代码授予具有为访问令牌交换授权代码的额外步骤,因此它提供了隐式授权类型中不存在的附加安全层。
我们是如何做到的 Netflix最初是一个允许会员管理其DVD队列的网站。该网站后来提供了流内容,流设备稍晚一些,但是这些初始设备的功能受到了限制。...随着时间的推移,流设备的功能越来越强大,曾经只能通过网站访问的功能也拓展到了流设备上。Netflix服务的扩展非常快速,目前已经支持多达2000种设备类型。...做个总结,在大规模场景下,发现我们使用了一个复杂且低效的方案来处理认证和身份令牌。我们有多种身份令牌类型和资源,每种身份令牌又需要不同的处理,各个处理逻辑被复制到了多个系统中。...边缘认证服务 边缘认证服务(EAS)是一个架构理念,包含将设备和用户的认证和身份验证从栈转移到云边缘,以及用于处理令牌类型而开发的服务套件。...在我们的Passport结构中为信任分配了不同的级别,意味着,需要授权决策的系统可以围绕Passport编写合理的规则,而无需在很多服务的代码中重复信任规则。