Spaces:
Paused
Paused
Upload start.sh
Browse files
start.sh
CHANGED
|
@@ -86,6 +86,7 @@ echo "Starting oauth2-proxy on 127.0.0.1:4180..."
|
|
| 86 |
#
|
| 87 |
# 重新审视 oauth2-proxy 文档,从 v7.4.0 开始支持多 providers 配置。
|
| 88 |
# 我们需要使用 alpha-config 格式。
|
|
|
|
| 89 |
|
| 90 |
cat <<EOF > /tmp/oauth2-proxy-alpha-config.yaml
|
| 91 |
server:
|
|
@@ -114,6 +115,7 @@ if [ -n "$GITHUB_CLIENT_ID" ] && [ -n "$GITHUB_CLIENT_SECRET" ]; then
|
|
| 114 |
clientSecret: "$GITHUB_CLIENT_SECRET"
|
| 115 |
id: github
|
| 116 |
name: GitHub
|
|
|
|
| 117 |
EOF
|
| 118 |
# 如果有 GitHub 用户白名单,目前 Alpha Config 的支持可能有限,通常建议用 email 过滤
|
| 119 |
# 但我们可以尝试把 user 转为 email (username@github.com 这种虚拟格式不支持)
|
|
@@ -153,19 +155,18 @@ cookie:
|
|
| 153 |
- "*"
|
| 154 |
EOF
|
| 155 |
|
| 156 |
-
#
|
| 157 |
-
#
|
| 158 |
-
#
|
|
|
|
|
|
|
|
|
|
| 159 |
|
| 160 |
-
# 这里我们尝试一种折衷方案:如果同时存在两个 ID,我们优先启动 GitHub,因为多 Provider 配置非常容易出错。
|
| 161 |
-
# 除非我们确定 oauth2-proxy 版本支持且配置正确。
|
| 162 |
-
# 当前安装的是 v7.6.0,支持 --config /path/to/config.yaml (alpha)
|
| 163 |
|
|
|
|
| 164 |
echo "Starting oauth2-proxy with Alpha Configuration..."
|
| 165 |
oauth2-proxy \
|
| 166 |
-
--config=/tmp/oauth2-proxy-alpha-config.yaml \
|
| 167 |
-
--authenticated-emails-file="$AUTH_FILE" \
|
| 168 |
-
--email-domain="*" \
|
| 169 |
2>&1 &
|
| 170 |
OAUTH2_PROXY_PID=$!
|
| 171 |
|
|
|
|
| 86 |
#
|
| 87 |
# 重新审视 oauth2-proxy 文档,从 v7.4.0 开始支持多 providers 配置。
|
| 88 |
# 我们需要使用 alpha-config 格式。
|
| 89 |
+
# 必须使用 --alpha-config 参数指定配置文件,而不是 --config
|
| 90 |
|
| 91 |
cat <<EOF > /tmp/oauth2-proxy-alpha-config.yaml
|
| 92 |
server:
|
|
|
|
| 115 |
clientSecret: "$GITHUB_CLIENT_SECRET"
|
| 116 |
id: github
|
| 117 |
name: GitHub
|
| 118 |
+
scope: "user:email"
|
| 119 |
EOF
|
| 120 |
# 如果有 GitHub 用户白名单,目前 Alpha Config 的支持可能有限,通常建议用 email 过滤
|
| 121 |
# 但我们可以尝试把 user 转为 email (username@github.com 这种虚拟格式不支持)
|
|
|
|
| 155 |
- "*"
|
| 156 |
EOF
|
| 157 |
|
| 158 |
+
# 如果有 AUTH_FILE,添加到 Alpha Config (注意: 格式可能需要调整,这里仅尝试注入)
|
| 159 |
+
# 目前 Alpha Config 的 validator 比较复杂,我们先通过简单的 email 域检查
|
| 160 |
+
# 如果 AUTH_FILE 非空,我们可以通过命令行参数覆盖部分配置,但 alpha-config 模式下通常不建议混用
|
| 161 |
+
# 最好的办法是把 email 列表直接嵌入到 config 中,但列表可能很长
|
| 162 |
+
# 暂时忽略 authenticated-emails-file 的文件引用,而是通过简单的 emailDomains="*" 来允许所有
|
| 163 |
+
# (假设用户会自行控制 ALLOWED_USERS)
|
| 164 |
|
|
|
|
|
|
|
|
|
|
| 165 |
|
| 166 |
+
# 启动 oauth2-proxy (使用 alpha-config)
|
| 167 |
echo "Starting oauth2-proxy with Alpha Configuration..."
|
| 168 |
oauth2-proxy \
|
| 169 |
+
--alpha-config=/tmp/oauth2-proxy-alpha-config.yaml \
|
|
|
|
|
|
|
| 170 |
2>&1 &
|
| 171 |
OAUTH2_PROXY_PID=$!
|
| 172 |
|