exeba / simplesamlphp-module-oauth2
一个为 SimpleSAMLphp 添加 OAuth2 协议支持的模块。
4.0.1
2024-04-16 08:30 UTC
Requires
- php: >=7.1
- ext-json: *
- ext-pdo: *
- doctrine/orm: ^2.10
- laminas/laminas-diactoros: ^2.4
- league/oauth2-server: ^8.1
- nette/forms: ~3.0
- psr/http-server-middleware: ^1.0
- simplesamlphp/composer-module-installer: ~1.0
- symfony/psr-http-message-bridge: ^2.0
Requires (Dev)
- dama/doctrine-test-bundle: ^7.1
- doctrine/data-fixtures: ^1.5
- phpunit/phpunit: ^9.0
- simplesamlphp/simplesamlphp: ^2.0.0
This package is auto-updated.
Last update: 2024-09-18 13:14:50 UTC
README
安装
此包通过安装 SimpleSAMLphp 模块添加对 OAuth2 协议的支持。安装可以通过执行以下命令完成:
composer.phar require exeba/simplesamlphp-module-oauth2 ~3.0
配置
配置模块
将模板文件复制到配置目录
cp modules/oauth2/config-template/module_oauth2.php config/
并编辑它。选项是自我解释的。
创建或修改模式
模式是通过位于以下位置的 doctrine 命令行工具维护的:
path/to/simplesaml/modules/oauth2/bin/doctrine
创建 OAuth2 客户端
要添加和删除 OAuth2 客户端,您需要使用管理员账户登录到 SimpleSAML。打开“联合”选项卡,您将看到“OAuth2 客户端注册”选项。
您可以指定任意多的重定向地址。
使用模块
此模块基于 PHP League 的 OAuth2 服务器,并支持以下授权类型:
- 授权代码授权
- 客户端凭证授权
- 刷新授权
创建 OAuth2 密钥
使用的 OAuth2 库生成 JSON Web Tokens 以创建访问令牌,因此您需要创建公钥和私钥证书
在终端运行以下命令以生成私钥:
openssl genrsa -out cert/oauth2_module.pem 1024
如果您想为您的私钥提供密码短语,则运行此命令代替
openssl genrsa -passout pass:_passphrase_ -out cert/oauth2_module.pem 1024
然后从私钥中提取公钥
openssl rsa -in cert/oauth2_module.pem -pubout -out cert/oauth2_module.crt
或使用提供的密码短语(如果生成私钥时提供了密码短语)
openssl rsa -in cert/oauth2_module.pem -passin pass:_passphrase_ -pubout -out cert/oauth2_module.crt
如果您使用密码短语,请记住在 module_oauth2.php 配置文件中配置它。
端点
- 授权端点:{{baseurlpath}}/module.php/oauth2/authorize
- 令牌端点:{{baseurlpath}}/module.php/oauth2/access_token
- 令牌声明端点:{{baseurlpath}}/module.php/oauth2/userinfo