全新架构!日志服务 SLS 自研免登录方案发布

引言

很多用户在使用日志服务 SLS 时,采用 STS 这种免登的方式,能够快速将日志服务的页面集成到三方的系统中。STS 模式是非常经典且成熟的免登方案,它的优点非常多,例如:能够充分利用阿里云账号 RAM 体系、能够通用地集成支持 STS 模式的所有云产品、支持客户自定义访问权限等。

存在问题

随着时间的推移,STS 模式在多个方面已经不满足日志服务客户的需求:

性能问题

STS 模式加载速度慢,下面是 STS 模式的流程图,客户通常需要三次顺序的交互才能够访问到页面,如果考虑客户外部系统的交互和 iframe 内的重定向,这个流程会更长。

以 SLS 控制台查询页面为例,用户登录阿里云官网后直接打开 SLS 页面,通常只需要 2s 即可查看到日志。如果使用 STS 模式,这个时间会拉长到 6s 以上:

1. 客户打开自建 web(1 ~ 2s)

2. 客户自建 web 发起获取免登链接请求(向客户的服务端)(1s)

3. 客户服务端访问令牌服务(500 ms)

4. 客户服务端获取登录 token、拼接 url 返回给客户 web(500ms)5. iframe 访问 url(包含多次重定向)(3s)

会话时间限制

STS 模式创建的链接有会话时间限制,默认是 1 小时,最长能延长到 24 小时,且没有任何办法能够再次延长会话的时间。客户使用过程中经常发现打开的浏览器 tab 页,隔天就无法使用了,此时是无法通过新打开一个页面登录再次恢复的(直接使用公有云日志服务是支持新打开页面登录后恢复旧的页面的登录状态)。客户自建的内网 web 网站一般都会有较长时间的会话时间,STS 模式会话时间的限制和客户自建 web 有严重的冲突。

会话时间限制这个问题几乎所有使用内嵌的客户都会来问这个问题,属于痛点中的痛点。

错误排查困难

上面介绍过 STS 模式登录的流程非常长,登录过程涉及到阿里云多个模块(STS、RAM、登录、SLS),所以在登录的流程中一旦出现问题很难排查。而且由于登录逻辑中包含多次重定向的操作,SLS 控制台本身很难自己排查客户登录不成功的根因。客户如果登录失败,一般会看到下面几种让人非常懵的结果:

或者:

跨域问题

STS 模式一般是在客户自建的 web 中使用 iframe 内嵌 SLS 的页面,这种跨域的方式严重依赖浏览器的 cookie。而随着各大浏览器厂商安全策略的增强,跨域 cookie 已经受到非常大的限制。例如:

a. Safari 很早就已经限制了第三方的 cookie,这个导致如果客户不主动关闭这个限制,Safari 默认是无法打开 STS 模式内嵌的页面。

b. Chrome 从 2024 年 1 月也开始逐步限制第三方的 cookie,到 2024 年第三季度某日后 Chrome 也将默认打开第三方的 cookie 的限制。

全新免登方案

全新架构

为了解决上面的所有问题,SLS 自研了一套全新的基于 Ticket 的免登方案,支持客户能够使用 Ticket 方案将 SLS 控制台免登分享给他人或免登嵌入到第三方系统,同时可控制嵌入至第三方系统的日志服务权限。

该 Ticket 方案登录过程只需要两步,第一是调用 SDK 获取免登链接,第二是使用链接直接访问 SLS,在此过程中没有任何浏览器重定向操作。

方案优势

速度快:只需两步即可访问 SLS 控制台,没有任何浏览器重定向操作,平均访问时间在 2s 以内。

会话时间限制:支持客户调用 SLS 的接口延长会话时间,彻底解决会话时间限制问题。

安全性:支持使用 RAM 账户调用创建免登链接接口,支持使用 RAM Policy 控制该免登链接的权限。

错误排查:客户在实施该方案的过程中,只需调用 SLS 接口(没有第三方系统介入),SLS 会返回详细的错误原因,方便用户排查。

跨域问题:该方案没有基于浏览器 cookie 实现,不存在跨域问题。

接入文档

有需要接入的可以参考此文档,该方案已经全网发布:

https://help.aliyun.com/zh/sls/developer-reference/console-embedding-and-sharing-new-version-2

仪表盘免密分享

在给客户支持的过程中,我们发现让客户自建系统集成免登方案(无论步骤多简单)是非常复杂的,只有一定规模的用户才会使用免登方案。但是在很多场景下,客户也是需要免登、分享等功能的。例如客户想要临时分享日志查询给其他同学 debug 问题;客户想要将日志服务仪表盘放在电视大屏上播放;客户想要将仪表盘嵌入到文档中等等场景。

因此除了全新的免登方案外,我们基于 Ticket 机制提供了仪表盘的免密分享功能,支持在控制台创建免登链接,无需调用 SDK 实现,未来也会支持日志查询页面的免密分享。

仪表盘免密分享的操作步骤非常简单,仅需一步(仪表盘页面右上角点击分享按钮):

点这里可以体验免密分享的仪表盘:Nginx 访问日志 demo[1]

方案优势

方便实用:免密分享使得用户可以直接通过一个链接访问仪表盘,无需处理复杂的登录问题、权限校验问题,能够满足多个场景的客户使用需求(大屏、诊断、共享等),特别是在一些特殊的只需要一次性登录的场景。

简化流程:使用免密分享功能只需要在控制台点击操作,无需使用 SDK,免去了复杂的开发流程。

安全性:一方面使用仪表盘免密分享功能有严格的权限校验,支持配置 Ram Policy 控制子账号是否可以创建、查看免密分享。另一方面创建免密分享支持多种权限控制机制,例如时间范围限制、访问时间限制、阿里云账号限制、过滤条件限制等。

接入文档

有需要尝试的可以参考此文档操作,该方案已经全网发布:

https://help.aliyun.com/zh/sls/user-guide/dashboard-secret-free-sharing

总结

日志服务(SLS)开发了一套全新的基于 Ticket 的登录方案,包括免登方案、仪表盘免密分享方案,旨在解决用户在共享和集成日志服务时面临的挑战。这个方案较 STS 模式在便捷性、安全性、性能等多个方面有较大的优势,欢迎大家使用。

参考文档:

[1] Nginx 访问日志 demo

https://sls.console.aliyun.com/lognext/share/project/nginx-demo-log/dashboard/nginx-access-log_nginx_dashboard_cn?sls_ticket=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0eXBlIjoic2hhcmUtZGFzaGJvYXJkIiwiZXhwIjo0MTAyNDE1OTk5LCJub25jZSI6MTcwOTE4OTM0NDM3MywiaWF0IjoxNzA5MTg5MzQ0LCJ0aWNrZXRJZCI6ImUwZjdmYWVjLWU5YjEtNDhhYy05NGQwLTg4NGZlM2IxZDQzZCJ9.P1cN65LRTXabTMiQlQsLD4wwFNMBMfpWTdv5fEUuoWY&hideTopbar=true

[2] 免登接入文档

https://help.aliyun.com/zh/sls/developer-reference/console-embedding-and-sharing-new-version-2

[3] 仪表盘免密分享使用文档

https://help.aliyun.com/zh/sls/user-guide/dashboard-secret-free-sharing

[4] 仪表盘免密分享使用 demo

https://sls.console.aliyun.com/lognext/share/project/nginx-demo-log/dashboard/nginx-access-log_nginx_dashboard_cn?hideTopbar=true&sls_ticket=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0eXBlIjoic2hhcmUtZGFzaGJvYXJkIiwiZXhwIjo0MTAyNDE1OTk5LCJub25jZSI6MTcwOTE4OTM0NDM3MywiaWF0IjoxNzA5MTg5MzQ0LCJ0aWNrZXRJZCI6ImUwZjdmYWVjLWU5YjEtNDhhYy05NGQwLTg4NGZlM2IxZDQzZCJ9.P1cN65LRTXabTMiQlQsLD4wwFNMBMfpWTdv5fEUuoWY

作者:灵亦

原文链接

本文为阿里云原创内容,未经允许不得转载。

相关推荐

基于对比稀疏扰动技术的时间序列解释框架 ContraLSP

论文在白盒时序预测,黑盒时序分类等仿真数据,和一个真实时序数据集分类任务中进行了实验,ContraLSP在解释性能上超越了SOTA模型,显著提升了时间序列数据解释的质量。

阿里云云栖号 3291

Spring AI 抢先体验,5 分钟玩转 Java AI 应用开发

Spring Cloud Alibaba AI 以 Spring AI 为基础,并在此基础上提供阿里云通义系列大模型全面适配,让用户在 5 分钟内开发基于通义大模型的 Java AI 应用。

阿里云云栖号 4753

无需重新学习,使用 Kibana 查询/可视化 SLS 数据

本文演示了使用 Kibana 连接 SLS ES 兼容接口进行查询和分析的方法。

阿里云云栖号 2583

大数据基础工程技术团队4篇论文入选ICLR,ICDE,WWW

近日,由阿里云计算平台大数据基础工程技术团队主导的四篇时间序列相关论文分别被国际顶会ICLR2024、ICDE2024和WWW2024接收。

阿里云云栖号 2713

PolarDB-X V2.4 列存引擎开源正式发布

PolarDB-X 采用 Shared-nothing 与存储分离计算架构进行设计,系统由5个核心组件组成。

阿里云云栖号 3045

Apache RocketMQ ACL 2.0 全新升级

RocketMQ ACL 2.0 不管是在模型设计、可扩展性方面,还是安全性和性能方面都进行了全新的升级。旨在能够为用户提供精细化的访问控制,同时,简化权限的配置流程。欢迎大家尝试体验新版本,并应用在生产环境中。

阿里云云栖号 3063

SLS 查询新范式:使用 SPL 对日志进行交互式探索

像 Unix 命令一样支持多级管道级联,像加工预览一样实时处理查询结果,更便捷的交互,更丰富的算子,更灵活的探索半结构化日志,快来试试使用 SPL 语言查询日志数据吧~

阿里云云栖号 2902

得物 ZooKeeper SLA 也可以 99.99%

在本文中,作者探讨了ZooKeeper(ZK)的一个内存占用问题,特别是当有大量的Watcher和ZNode时,导致的内存消耗。

阿里云云栖号 2826

RocketMQ 事件驱动:云时代的事件驱动有啥不同?

本文深入探讨了云时代 EDA 的新内涵及它在云时代再次流行的主要驱动力,包括技术驱动力和商业驱动力,随后重点介绍了 RocketMQ 5.0 推出的子产品 EventBridge,并通过几个云时代事件驱动的典型案例,进一步叙述了云时代事件驱动的常见场景和最佳实践。

阿里云云栖号 2632

Higress 全新 Wasm 运行时,性能大幅提升

本文介绍 Higress 将 Wasm 插件的运行时从 V8 切换到 WebAssembly Micro Runtime (WAMR) 的最新进展。

阿里云云栖号 6026

更优性能与性价比,从自建 ELK 迁移到 SLS 开始

本文介绍了 SLS 基本能力,并和开源自建 ELK 做了对比,可以看到 SLS 相比开源 ELK 有较大优势。

阿里云云栖号 2885

All in One:Prometheus 多实例数据统一管理最佳实践

当管理多个Prometheus实例时,阿里云Prometheus托管版相比社区版提供了更可靠的数据采集和便捷的管理。本文比较了全局聚合实例与数据投递方案,两者在不同场景下各有优劣。

阿里云云栖号 2646

云原生最佳实践系列 6:MSE 云原生网关使用 JWT 进行认证鉴权

本文档介绍了如何在 MSE(Microservices Engine)云原生网关中集成JWT进行全局认证鉴权。

阿里云云栖号 2837

Higress 基于自定义插件访问 Redis

本文介绍了Higress,一个支持基于WebAssembly (WASM) 的边缘计算网关,它允许用户使用Go、C++或Rust编写插件来扩展其功能。文章特别讨论了如何利用Redis插件实现限流、缓存和会话管理等高级功能。

阿里云云栖号 2744

云原生最佳实践系列 7:基于 OSS Object FC 实现非结构化文件实时处理

阿里云OSS对象存储方案利用函数计算FC,在不同终端请求时实时处理OSS中的原图,减少衍生图存储,降低成本。

阿里云云栖号 2787

让你的文档从静态展示到一键部署可操作验证

通过函数计算的能力让阿里云的文档从静态展示升级为动态可操作验证,用户在文档中单击一键部署可快速完成代码的部署及测试。这一改变已在函数计算的活动沙龙中得到用户的认可。

阿里云云栖号 2828

日志服务 HarmonyOS NEXT 日志采集最佳实践

鸿蒙操作系统(HarmonyOS)上的日志服务(SLS)SDK 提供了针对 IoT、移动端到服务端的全场景日志采集、处理和分析能力,旨在满足万物互联时代下应用的多元化设备接入、高效协同和安全可靠运行的需求。

阿里云云栖号 3372

提升团队工程交付能力,从“看见”工程活动和研发模式开始

本文从统一工程交付的概念模型开始,介绍了如何将应用交付的模式显式地定义出来,并通过工具平台落地。

阿里云云栖号 2810

RocketMQ 之 IoT 消息解析:物联网需要什么样的消息技术?

RocketMQ 5.0 是为应对物联网(IoT)场景而发布的云原生消息中间件,旨在解决 IoT 中大规模设备连接、数据处理和边缘计算的需求。

阿里云云栖号 2812

云原生最佳实践系列 5:基于函数计算 FC 实现阿里云 Kafka 消息内容控制 MongoDB DML 操作

在大数据 ETL 场景,将 Kafka 中的消息流转到其他下游服务是很常见的场景,除了常规的消息流转外,很多场景还需要基于消息体内容做判断,然后决定下游服务做何种操作。

阿里云云栖号 2542

云原生最佳实践系列 4:基于 MSE 和 SAE 的微服务部署与压测

云原生应用平台为基于 Spring Cloud / Dubbo 开发的微服务应用提供了完善的能力支撑,例如服务注册发现、Serverless 无服务部署、实例弹性伸缩、微服务链路跟踪、全链路压力测试等,应用能够方便快捷的部署在阿里云上。

阿里云云栖号 2005

RocketMQ 流数据库解析:如何实现一体化流处理?

目前,消息中间件在国内许多行业的关键应用中扮演着至关重要的角色。随着数字化转型的深入,客户在使用消息技术的过程中往往同时涉及交叉场景。

阿里云云栖号 1383

云原生最佳实践系列 3:基于 SpringCloud 应用玩转 MSE

本实践基于云原生应用产品提供微服务注册配置中心、微服务治理和云原生网关等一系列高性能和高可用的企业级云服务能力。

阿里云云栖号 1497

适应多样化需求:WASM 插件在全链路灰度发布中的应用

据调研数据显示,约 70% 的生产故障是由变更引起的。为了消除变更过程存在的风险,在发布过程中,我们总是希望能够用小部分特定流量来验证下新发布应用是否正常。

阿里云云栖号 1826

微调工程师岗位可能并不存在,但使用 AI 编码工具已经成为刚需

智能编码工具的快速普及是否会带来全新的编程模式?“大力出奇迹”的规律还将继续适用吗?

阿里云云栖号 1460

通过阿里云向量检索 Milvus 版和通义千问快速构建基于专属知识库的问答系统

本文展示了如何使用阿里云向量检索 Milvus 版和灵积(Dashscope)提供的通用千问大模型能力,快速构建一个基于专属知识库的问答系统。在示例中,我们通过接入灵积的通义千问 API 及文本嵌入(Embedding)API 来实现 LLM 大模型的相关功能。

阿里云云栖号 1715

MaxCompute 近实时增全量处理一体化新架构和使用场景介绍

随着当前数据处理业务场景日趋复杂,对于大数据处理平台基础架构的能力要求也越来越高,既要求数据湖的大存储能力,也要求具备海量数据高效批处理能力,同时还可能对延时敏感的近实时链路有强需求,本文主要介绍基于 MaxCompute 的离线近实时一体化新架构如何来支持这些综合的业务场景,提供近实时增全量一体的数据存储和计算(Transaction Table2.0)解决方案。

阿里云云栖号 2188

运维人少,如何批量管理上百个微服务、上千条流水线?

云效 AppStack 平台针对微服务和云原生环境下的应用管理难题,提供了以应用为中心的资源、流水线和权限管理解决方案。

阿里云云栖号 1500

云原生最佳实践系列2:基于 MSE 云原生网关同城多活

通过使用阿里云的云原生微服务引擎 MSE,可以实现注册中心的同城容灾多活微服务应用。MSE 提供了云原生网关和注册中心,支持机房级故障的秒级自动转移、非对等部署下的全局流量负载均衡以及流量精细化管控。

阿里云云栖号 1919

RocketMQ 流存储解析:面向流场景的关键特性与典型案例

流存储是流处理的基石,流存储也是 RocketMQ 从应用架构集成走向数据架构集成的基础,为大数据架构的数据组件提供异步解耦的能力。

阿里云云栖号 1675
上一篇: 爆款游戏如何借助 RocketMQ Serverless,打造流畅体验并节省 98% 成本?
下一篇: RocketMQ 流存储解析:面向流场景的关键特性与典型案例
阿里云云栖号
阿里云云栖号 企业官方账号 企业官方账号
博客等级 码龄9年 2万+粉丝 5464原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值