afrp.net

AFRP OIDC 认证中心 · 使用文档

OIDC 认证配置说明

  本站采用 OIDC(Client Credentials)认证:frpc 启动时用 clientID / clientSecret 向认证中心换取 JWT,再凭 JWT 连接 frps,认证通过后建立隧道。


一、完整配置示例

# frpc.toml

serverAddr = "frps服务器IP或域名"

serverPort = 7000

user = "注册用户名"

auth.method = "oidc"

auth.oidc.clientID = "注册用户名"

auth.oidc.clientSecret = "注册时保存的ClientSecret"

auth.oidc.tokenEndpointURL = "https://www.afrp.net/oidc/token.php"

auth.oidc.audience = "afrp.net"

auth.oidc.scope = "afrp"

# ===== 隧道示例:把本机 22 端口映射为 frps 的 6000 端口 =====

[[proxies]]

name = "ssh-demo"

type = "tcp"

localIP = "127.0.0.1"

localPort = 22

remotePort = 6000

二、字段说明

字段 说明 是否必填
serverAddr frps 服务器的 IP 或域名,按你选的服务器填写 必填
serverPort frps 监听端口,与服务器的连接端口一致(本站默认 7000) 必填
user 登录标识,认证用户名、客户端 必填
auth.method 固定为 "oidc" 必填
auth.oidc.clientID 认证网站注册的用户名 必填
auth.oidc.clientSecret 注册时一次性展示的 Client Secret 必填
auth.oidc.tokenEndpointURL 认证中心 Token 端点,固定 https://www.afrp.net/oidc/token.php 必填
auth.oidc.audience 必须与 frps 的 auth.oidc.audience、认证中心 OIDC_AUDIENCE 三处一致(afrp.net 必填
auth.oidc.scope 与认证中心 OIDC_SCOPE 一致(afrp 必填
[[proxies]] 隧道定义,可多个 至少一个

三处联动校验关系

认证中心 config.php frps.toml frpc.toml
issuer OIDC_ISSUER=https://www.afrp.net auth.oidc.issuer auth.oidc.tokenEndpointURL
audience OIDC_AUDIENCE=afrp.net auth.oidc.audience auth.oidc.audience
scope OIDC_SCOPE=afrp auth.oidc.scope

任何一处不一致,frps 都会拒绝认证。


三、获取客户端凭据

  1. 浏览器打开 https://www.afrp.net/register.php 注册账号;

  2. 注册成功页面一次性展示 Client Secret,立即保存(系统只存哈希,无法找回);

  3. 登录 https://www.afrp.net/login.php 进入控制台,可查看自己的 Client ID(用户名)、复制 frpc.toml 配置片段;

  4. Secret 遗失或泄露:控制台点「重新生成 Client Secret」,旧值立即失效,需同步更新所有 frpc 配置。


四、隧道类型速查

# TCP 隧道(最常用)

[[proxies]]

name = "ssh"

type = "tcp"

localIP = "127.0.0.1"

localPort = 22

remotePort = 6000

# UDP 隧道

[[proxies]]

name = "dns"

type = "udp"

localIP = "127.0.0.1"

localPort = 53

remotePort = 6053

# HTTP 虚拟主机

[[proxies]]

name = "web"

type = "http"

localIP = "127.0.0.1"

localPort = 8080

customDomains = ["web.example.com"]

五、常见问题排查

现象 原因与处理
日志无输出 / 立即退出 frpc -c frpc.toml 配置路径错误;TOML 语法错误(检查引号、缩进)
login to server success 认证通过,隧道建立成功
token in login doesn't match token from configuration 确认 frpc.toml 为 auth.method = "oidc" 且已重启或 oidc 三处不一致
invalid_client clientID/clientSecret 错误、账号被管理员停用、或 Secret 已被重置
oidc: token validation failed audience 三处不一致,按上文联动表核对
cannot fetch token: 401 账号被停用(管理员关闭认证),或 Secret 错误
隧道建立但连不通 检查 frps 防火墙 / 云安全组是否放行 remotePort

六、安全提醒

  1. Client Secret 等同隧道钥匙,妥善保管,不要提交到公开仓库;

  2. 泄露后立即在控制台重置(旧值马上失效);

  3. 违规内容会关闭认证,严重的、限期不整改的将删除账号,对应 frpc 立即失去连接资格。