sgomez/simplesamlphp-module-oauth2

此包已被废弃且不再维护。作者建议使用rediris-es/simplesamlphp-module-oidc包代替。

这是一个为SimpleSAMLphp添加OAuth2协议支持的模块。

安装次数: 21,212

依赖项: 0

建议者: 0

安全性: 0

星标: 24

关注者: 5

分支: 9

开放问题: 4

类型:simplesamlphp-module

2.2.1 2018-01-18 10:35 UTC

README

有什么新功能?

从版本1.2.x和2.2.x开始,此模块支持通过客户端支持不同的AuthSources,而不是所有都使用一个。如果您来自版本<1.2和<2.2,您必须更新模式。请参阅“创建或更新模式”部分。

安装

此包通过SimpleSAMLphp模块添加对OAuth2协议的支持,该模块可以通过Composer安装。安装可以通过执行以下命令来完成:

composer.phar require sgomez/simplesamlphp-module-oauth2 1.0.0 # for SSP < 1.14
composer.phar require sgomez/simplesamlphp-module-oauth2 ~1.0 # for SSP >= 1.14
composer.phar require sgomez/simplesamlphp-module-oauth2 ~2.0 # for SSP >= 2.0|master

配置

此模块需要配置sgomez/simplesamlphp-module-dbal模块。它作为依赖项安装,但您需要阅读模块信息并配置它。

创建或更新模式

您需要运行以下命令以使用DBAL存储模块创建模式:

bash$ vendor/bin/dbalschema

配置模块

将模板文件复制到配置目录

cp modules/oauth2/config-template/module_oauth2.php config/

并编辑它。选项是自我解释的。

创建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.php

现在您需要请求访问令牌。请参阅第二部分

访问令牌服务器的地址为:{{baseurlpath}}/module.php/oauth2/access_token.php

隐式令牌

要请求隐式令牌,请查阅隐式授权帮助页面,了解您需要发送的参数。

授权服务器的地址是:{{baseurlpath}}/module.php/oauth2/authorize.php

获取属性

为了恢复用户属性,您需要在包含访问令牌的Authorization头中将访问令牌作为Bearer Token发送到用户信息页面:{{baseurlpath}}/module.php/oauth2/userinfo.php

示例

curl --request GET \
  --url http://server.com/simplesaml/module.php/oauth2/userinfo.php \
  --header 'authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1Ni...'