跳到主要内容

OmniAUSF

OmniAUSF 实现了 5G 核心的认证服务器功能 (AUSF)。它在 AMF(通过 N12 接口)和 UDM(通过 N13 接口)之间协调主要认证,执行 TS 33.501 中定义的 5G-AKA 认证方法。AUSF 向 UDM 请求认证向量,将 RAND/AUTN 挑战(以及预期响应的哈希)返回给 AMF,验证 UE 最终产生的响应,派生服务网络的锚密钥 K_SEAF,并将认证结果记录回 UDM。

每次认证交换都通过一个内存中的 UE 认证上下文进行跟踪,该上下文由生成的 authCtxId(UUID)键控。该上下文在交换的生命周期内保存向量材料(RAND, XRES*, HXRES*, K_AUSF, K_SEAF),并在完成(成功或失败)、明确注销或进程重启时删除。此外,监督上下文回收器定期垃圾收集空闲或被遗弃的上下文,一旦它们超过可配置的 TTL,因此 AMF 发起但从未确认的上下文不会无限期存在。向 UDM 的出站 SBI 调用针对从 NRF (Nnrf_NFDiscovery) 发现的 UDM,当发现没有结果时回退到静态 udm_uri;AUSF 还向 NRF 注册并发送心跳。OmniAUSF 提供 nausf-auth 服务 (nausf-auth/v1) 并消费 UDM 的 nudm-ueau 服务 (nudm-ueau/v1)。

文档

  • 操作 - 3GPP 参考、接口和 SBI 端点,以及关键认证程序及其时序图。
  • 配置 - 完整的配置参考,包括参数表、管理/OAM API 端点和日志记录说明。
  • 指标 - AUSF 暴露的 Prometheus 指标和示例 PromQL 查询。
  • 故障排除 - 常见故障症状及其解决方法。

架构概述

功能概述

  • 5G-AKA 主要认证 (TS 33.501 6.1.3) 端到端:向量检索、挑战中继、响应验证和结果报��。
  • K_SEAF 派生 (TS 33.501 A.6) 绑定到服务网络名称,在成功认证时返回给 AMF。
  • HXRES* 计算 (TS 33.501 A.5) 在初始化响应中返回给 AMF。
  • 认证结果报告 给 UDM (auth-events),无论成功还是失败。
  • SQN 重新同步处理:检测、验证并中继 resynchronizationInfo(RAND + AUTS)到 UDM;格式错误的重新同步输入将被丢弃。
  • UE 安全上下文移除 - deregister 和每个上下文删除端点。
  • 防御性向量/响应解码 - 格式错误的 UDM 向量和格式错误的 resStar 被处理为干净的错误,绝不会崩溃。
  • NRF 注册和心跳。
  • 运行时 OAM - 检查会话/统计信息,调整配置和日志级别,并通过 HTTPS 管理 API 强制 NRF 重新注册。
  • Prometheus 指标 用于认证结果(包括 SQN 重新同步)、NRF 状态和 BEAM VM 健康。实时飞行上下文计数可通过 OAM API 获得。

快速开始

配置从应用程序环境键 :omniausf 中读取,填充自 config/runtime.exs。每个运行时键都由在启动时读取的操作系统环境变量支持。

config :omniausf,
udm_uri: "http://127.0.0.12:7777",
sbi_scheme: "http",
sbi_addr: "127.0.0.19",
sbi_port: 7777,
nrf_uri: "http://127.0.0.1:7777",
mcc: "999",
mnc: "70",
prometheus_metrics_port: 9568,
heartbeat_interval: 10_000

config :logger, :default_formatter,
format: {OmniLogger.JsonFormatter, :format},
metadata: :all

完整的参数文档,包括类型、默认值和环境变量,详见 configuration.md