首页
/ OpenObserve单节点Docker环境下SSO集成实践

OpenObserve单节点Docker环境下SSO集成实践

2025-05-15 09:00:48作者:曹令琨Iris

背景介绍

OpenObserve是一个开源的日志分析平台,支持单节点和集群部署。在企业环境中,通常需要将OpenObserve与现有的身份认证系统集成,实现单点登录(SSO)功能。本文主要介绍如何在单节点Docker环境下配置OpenObserve与Dex身份管理服务的集成方案。

核心组件

  1. OpenObserve企业版:提供日志收集、存储和分析功能
  2. Dex身份管理:作为OpenID Connect(OIDC)提供商,连接上游身份提供商(如Okta)
  3. Docker Compose:用于编排容器化部署

配置详解

1. OpenObserve容器配置

OpenObserve容器需要配置以下关键环境变量:

environment:
  ZO_ROOT_USER_EMAIL: "root@example.com"  # 管理员账户
  ZO_ROOT_USER_PASSWORD: "a password"     # 管理员密码
  enterprise: true                        # 启用企业版功能
  O2_DEX_ENABLED: true                    # 启用Dex集成
  O2_DEX_CLIENT_ID: "o2-client"           # Dex客户端ID
  O2_DEX_CLIENT_SECRET: "base64..."       # Base64编码的客户端密钥
  O2_DEX_BASE_URL: "https://dex.example.com/dex"  # Dex服务地址
  O2_DEX_REDIRECT_URL: "https://logs.example.com/config/callback" # 回调地址
  O2_CALLBACK_URL: "https://logs.example.com/web/cb" # 认证后跳转地址
  O2_DEX_SCOPES: "openid profile email groups offline_access" # 请求的权限范围
  O2_DEX_GROUP_ATTRIBUTE: "css"           # 组织映射属性
  O2_DEX_ROLE_ATTRIBUTE: "cn"             # 角色属性
  O2_DEX_DEFAULT_ORG: "default"           # 默认组织

2. Dex容器配置

Dex作为身份管理,需要配置上游身份提供商(如Okta):

issuer: https://dex.example.com/dex
staticClients:
  - id: o2-client
    secret: dex_client_secret
    name: o2-client
    redirectURIs:
      - 'https://logs.example.com/config/callback'

oauth2:
  responseTypes: ["code"]
  skipApprovalScreen: true

connectors:
- type: oidc
  id: okta
  name: okta
  config:
    insecureSkipEmailVerified: true
    issuer: https://myorg.okta.com
    clientID: okta_client_id
    clientSecret: okta_client_secret
    redirectURI: https://dex.example.com/dex/callback
    scopes: ["email", "profile", "openid"]
    claimMapping:
      email: email
      name: name

认证流程解析

  1. 用户访问OpenObserve登录页面
  2. OpenObserve重定向到Dex认证端点
  3. Dex根据配置重定向到上游身份提供商(如Okta)
  4. 用户在上游提供商完成认证后,返回Dex
  5. Dex验证令牌后重定向到OpenObserve的回调地址
  6. OpenObserve验证令牌并创建会话
  7. 用户被重定向到应用首页

常见问题与解决方案

  1. 404错误:确保回调地址配置正确,包括:

    • Dex中的redirectURIs
    • OpenObserve中的O2_DEX_REDIRECT_URL
    • 上游身份提供商中的回调地址
  2. 令牌验证失败:检查:

    • 客户端ID和密钥是否匹配
    • Base64编码是否正确
    • 令牌有效期配置
  3. 组织映射问题:确认:

    • O2_DEX_GROUP_ATTRIBUTE设置正确
    • 上游身份提供商返回的声明包含相应属性

最佳实践建议

  1. 在生产环境中使用HTTPS协议
  2. 定期轮换客户端密钥
  3. 配置适当的令牌有效期
  4. 监控认证日志
  5. 测试不同组织/角色的映射关系

总结

通过Docker Compose部署OpenObserve和Dex的单节点SSO解决方案,可以快速实现企业级身份认证集成。关键在于正确配置各组件间的通信参数和回调地址,并确保令牌的生成和验证流程顺畅。本文提供的配置示例和问题排查方法,可帮助管理员快速搭建和调试系统。

登录后查看全文
热门项目推荐

热门内容推荐

最新内容推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
262
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
863
511
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
259
300
kernelkernel
deepin linux kernel
C
22
5
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
596
57
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
398
371
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
332
1.08 K