本卡屬 FR-114 資安修正(母卡 CM-2019),第 5 批「信任鏈與客戶層級設定」卡 5A-3,修 SUMMARY #22/#19/#134(出自 M22-1/M09-1/M22-3)。高。修法規格來自內化卡 CM-1985(M22 部分)與 CM-1987(M09 部分),計畫在 docs/features/FR-114-2609-security-fix-dispatch/batches/plan-b5A.md「卡 5A-3」段。

問題是什麼(白話)

#22:任何一家客戶的子公司管理員都能改「全公司共用」的登入規則或 LDAP(企業內部帳號目錄)設定,等於子公司可以接管整個客戶集團的登入行為。

#19:同樣的問題發生在日誌轉送設定——子公司管理員可以把公司共用的日誌轉送目標地址改掉,等於能把全公司的操作日誌轉送到自己指定的地方。

#134:儲存設定頁把共用密鑰明文回傳給前端畫面,同樣是「遮罩名單漏登記」的病。

首腦核對:

工作區

在哪裡

jedi-system-jedi-system-core/jedi_system_core/app/service/system_config_service.py:54    create,#22 第一支寫入路徑
jedi-system-jedi-system-core/jedi_system_core/app/service/system_config_service.py:80    update,#22 第二支寫入路徑
jedi-system-jedi-system-core/jedi_system_core/app/service/system_config_service.py:165    update_config_by_group_key,#22 第三支寫入路徑
jedi-system-jedi-system-core/jedi_system_core/api/routes/system_config_route.py:64    put,對應第二支寫入路徑
jedi-system-jedi-system-core/jedi_system_core/api/routes/system_config_route.py:98    post,對應第一支寫入路徑
core/plugins/system_core.py:62-75    _GROUP_CAPABILITY_RESOURCE,能力對照表
core/plugins/system_core.py:93    assert_config_capability,掛新判斷的正確位置
infra/system_config/system_config_root_reader.py:60,96,122    SET LOCAL is_super_admin,繞過隔離段
infra/system_config/system_config_root_reader.py:136    write_root_config_value
app/system_config/service/shared_config_app_service.py:38-41    SHARED_ROOT_CONFIGS 白名單
app/system_config/service/shared_config_app_service.py:68-78    write_shared_config
app/system_config/service/security_policy_app_service.py:108,162    三支寫入 BE 側落點之一
app/system_config/service/guarded_system_config_service.py:458,585,597,636,651    三支寫入 BE 側落點
jedi-iam/jedi_iam/domain/service/org_unit_domain_service.py:194    parent_id 取子節點,判斷「是否總部」可能可用
common/authz/license.py:16    is_root_tenant 旗標,需先 grep 確認能否直接 reuse
jedi-log/jedi_api_log/forwarding/api/routes/log_forwarding_route.py:57    put,#19 寫入路徑
jedi-log/jedi_api_log/forwarding/api/routes/log_forwarding_route.py:73    post 測試發送
jedi-log/jedi_api_log/forwarding/api/routes/log_forwarding_route.py:9    檔頭 adapters 說明
jedi-log/jedi_api_log/forwarding/plugin/contract.py:64-90    LogForwardingAdapters 契約,read/update 兩欄分開刻意
core/plugins/api_log.py:263    import
core/plugins/api_log.py:272    _forwarding_guard
core/plugins/api_log.py:288    forwarding_read_required
core/plugins/api_log.py:289    forwarding_update_required,要補判斷處
core/plugins/api_log.py:37-38    port 對照
jedi-log/jedi_api_log/forwarding/infra/model/log_forwarding_setting.py    設定落地
jedi-system-jedi-system-core/jedi_system_core/plugin/contract.py:61    DEFAULT_SECRET_MASKED_GROUPS,#134:少 STORAGE_CONFIG
jedi-system-jedi-system-core/jedi_system_core/plugin/contract.py:65    DEFAULT_SECRET_VALUE_KEYS,#134:少帳密欄位名
jedi-system-jedi-system-core/jedi_system_core/plugin/contract.py:113-114    相關設定
jedi-system-jedi-system-core/jedi_system_core/api/routes/system_config_route.py:20,42-44,57,73,104    遮蓋機制掛載點
jedi-system-jedi-system-core/jedi_system_core/api/__init__.py:9    遮蓋機制註冊
jedi-system-jedi-system-core/jedi_system_core/app/service/guarded_system_config_service.py:113    _AI_PROVIDER_SECRET_KEYS,現成 pattern
jedi-system-jedi-system-core/jedi_system_core/app/service/guarded_system_config_service.py:116    _CLEAR_FLAG
jedi-system-jedi-system-core/jedi_system_core/app/service/guarded_system_config_service.py:300-320    merge 邏輯,「不回密碼沒帶就沿用」的現成範本
jedi-system-jedi-system-core/jedi_system_core/app/service/guarded_system_config_service.py:119    _DRIVE_APP_GROUP
jedi-system-jedi-system-core/jedi_system_core/app/service/guarded_system_config_service.py:106    _HIDDEN_GROUP=STORAGE_CONFIG,既有隱藏處理(CM-1333),別弄壞
jedi-system-jedi-system-core/jedi_system_core/app/service/guarded_system_config_service.py:8    CM-1333 相關註解
jedi-system-jedi-system-core/jedi_system_core/infra/model/tenant_storage_config_seeder.py:42-43,53    group/key 常數

怎麼修