#oauth2 #cgi #script #validation #tokens #web #wrapper

app chkoauth2

在调用另一个脚本之前,验证 OAuth2 令牌的 CGI

1 个不稳定版本

0.1.0 2024 年 1 月 28 日

#504身份验证

MIT 许可证

16KB
226

chkoauth2

chkoauth2 是一个基于 CGI 的包装器,它在执行另一个脚本之前将验证 OAuth2 携带令牌。

chkoauth2 还包括一个 IndieAuth 扩展,它将用户的配置文件 URL 传递给包装的脚本。有关更多信息,请参阅 IndieAuth 规范:[https://indieauth.spec.indieweb.org/#access-token-verification](https://indieauth.spec.indieweb.org/#access-token-verification)

安装

您需要 Rust 和 Cargo 来构建和安装此项目。

要在您的家目录中安装,请运行

cargo install --path .

要禁用 IndieAuth 扩展,请添加 --no-default-features 标志。要安装在其他位置,请使用 --root 标志。有关更多选项,请参阅 cargo install --help

用法

您需要一个可以运行 CGI 脚本的网络服务器,然后您需要一个运行 chkoauth2 的脚本,并带有适当的选项。例如

#!/bin/sh
OAUTH2_CLIENT_ID="<OAuth2 client id>" \
OAUTH2_CLIENT_SECRET="<OAuth2 client secret>" \
chkoauth2 \
  https://example.com/oauth/authorize \
  https://example.com/oauth/introspect \
  --scope create \
  another.cgi

示例脚本使用环境变量提供 OAuth2 客户端标识,以与位于 example.com 的 introspection 端点交互。chkoauth2 预期您的 web 服务器在 HTTP_AUTHORIZATION 环境变量中提供授权头。如果头包含有效的 Bearer 令牌,并且令牌授予所需的范围(在这种情况下为“创建”),则 chkoauth2 将调用 another.cgi。否则,将返回适当的错误。

授予的完整范围列表通过 OAUTH2_SCOPES 环境变量传递给应用程序,允许包装的 CGI 检查可选的范围。如果启用 IndieAuth 扩展,配置文件 URL 将传递到 INDIEAUTH_ME 环境变量中。

chkoauth2 可以将调试和警告信息记录到 stderr。日志级别通过将 RUST_LOG 环境变量添加到 errorwarninfodebugtrace 来设置。

贡献

请将反馈、问题或补丁发送到 [email protected]

许可证

本软件根据 MIT 许可证分发。有关更多信息,请参阅 LICENSE。

依赖项

~7–19MB
~299K SLoC