gluufederation / oxd-php-api
使用 oxd 保护您的应用程序,通过 OpenID Connect 和 UMA 实现单点登录和 API 访问管理。
此包的官方仓库似乎已丢失,因此已将其冻结。
3.1.2
2018-03-15 14:34 UTC
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2021-07-24 10:18:23 UTC
README
oxd-php 是 Gluu oxd 服务器的客户端库。
安装
来源
oxd-php 的源代码可在 Github 上找到
Composer: oxd-php-api
这是首选方法。如果您尚未安装,请访问 composer 网站,查看 安装说明。
要在项目中安装 oxd-php-api,请在项目根目录中执行以下命令
$ composer install `composer require "gluufederation/oxd-php-api": "3.0.1"`
注意:OpenID Connect 需要 https。如果您的网站只使用 http,则此库将无法工作。
配置
oxd-php 的配置文件位于 'oxd-rp-settings.json'。这里列出的值在注册时使用。有关支持的完整 oxd 配置参数列表,请参阅 oxd 文档。以下是一个典型的注册配置数据集
{
"oxd_host_port":8099,
"authorization_redirect_uri" : ["https://www.myapplication.com/welcome" ],
"post_logout_redirect_uri" : "https://www.myapplication.com/logout",
"scope" : ["openid", "profile"],
"acr_values" : ["u2f"]
}
- oxd_host_port - oxd 端口或套接字
API 描述
通过 class Client_Socket_OXD_RP 连接到 oxd 服务器
Client_Socket_OXD_RP.php
Client_Socket_OXD_RP 类是连接到 oxd 服务器的基类。它包含所有用于注册的参数,并保存到 Oxd_RP_config 类的静态值中。
Oxd_RP_config.php
class Oxd_RP_config
{
public static $op_host;
public static $oxd_host_port;
public static $authorization_redirect_uri;
public static $post_logout_redirect_uri;
public static $scope;
public static $application_type;
public static $response_types;
public static $grant_types;
public static $acr_values;
}
Client_OXD_RP.php 是所有类继承的基类。
- Client_OXD_RP.php
- Register_site.php
- Update_site_registration.php
- Get_authorization_url.php
- Get_tokens_by_code.php
- Get_user_info.php
- Logout.php
- Uma_rs_protect.php
- Uma_rs_check_access.php
- Uma_rp_get_rpt.php
- Uma_rp_authorize_rpt.php
- Uma_rp_get_gat.php
Client_OXD_RP.php
Client_OXD_RP 类是一个抽象类,它扩展了 Client_Socket_OXD_RP 类。
Register_site.php
示例
Register_site_test:
session_start();
session_destroy();
include_once '../Register_site.php';
$register_site = new Register_site();
$register_site->setRequestOpHost(Oxd_RP_config::$op_host);
$register_site->setRequestAcrValues(Oxd_RP_config::$acr_values);
$register_site->setRequestAuthorizationRedirectUri(Oxd_RP_config::$authorization_redirect_uri);
$register_site->setRequestPostLogoutRedirectUri(Oxd_RP_config::$post_logout_redirect_uri);
$register_site->setRequestContacts(["test@test.test"]);
$register_site->setRequestGrantTypes(Oxd_RP_config::$grant_types);
$register_site->setRequestResponseTypes(Oxd_RP_config::$response_types);
$register_site->setRequestScope(Oxd_RP_config::$scope);
$register_site->request();
$_SESSION['oxd_id'] = $register_site->getResponseOxdId();
print_r($register_site->getResponseObject());
Update_site_registration.php
示例
Update_site_registration_test:
session_start();
include_once '../Update_site_registration.php';
$update_site_registration = new Update_site_registration();
$update_site_registration->setRequestAcrValues(Oxd_RP_config::$acr_values);
$update_site_registration->setRequestOxdId($_SESSION['oxd_id']);
$update_site_registration->setRequestAuthorizationRedirectUri(Oxd_RP_config::$authorization_redirect_uri);
$update_site_registration->setRequestPostLogoutRedirectUri(Oxd_RP_config::$post_logout_redirect_uri);
$update_site_registration->setRequestContacts(["test@test.test"]);
$update_site_registration->setRequestGrantTypes(Oxd_RP_config::$grant_types);
$update_site_registration->setRequestResponseTypes(Oxd_RP_config::$response_types);
$update_site_registration->setRequestScope(Oxd_RP_config::$scope);
$update_site_registration->request();
print_r($update_site_registration->getResponseObject());
Get_authorization_url.php
示例
Get_authorization_url_test:
session_start();
require_once '../Get_authorization_url.php';
$get_authorization_url = new Get_authorization_url();
$get_authorization_url->setRequestOxdId($_SESSION['oxd_id']);
$get_authorization_url->setRequestAcrValues(Oxd_RP_config::$acr_values);
$get_authorization_url->request();
echo $get_authorization_url->getResponseAuthorizationUrl();
Get_tokens_by_code.php
示例
Get_tokens_by_code_test:
session_start();
require_once '../Get_tokens_by_code.php';
$get_tokens_by_code = new Get_tokens_by_code();
$get_tokens_by_code->setRequestOxdId($_SESSION['oxd_id']);
//getting code from redirecting url, when user allowed.
$get_tokens_by_code->setRequestCode($_GET['code']);
$get_tokens_by_code->setRequestState($_GET['state']);
$get_tokens_by_code->setRequestScopes($_GET['scope']);
$get_tokens_by_code->request();
$_SESSION['id_token'] = $get_tokens_by_code->getResponseIdToken();
$_SESSION['access_token'] = $get_tokens_by_code->getResponseAccessToken();
print_r($get_tokens_by_code->getResponseObject());
Get_user_info.php
示例
Get_user_info_test:
session_start();
require_once '../Get_user_info.php';
echo '<br/>Get_user_info <br/>';
$get_user_info = new Get_user_info();
$get_user_info->setRequestOxdId($_SESSION['oxd_id']);
$get_user_info->setRequestAccessToken($_SESSION['access_token']);
$get_user_info->request();
print_r($get_user_info->getResponseObject());
Logout.php
示例
Logout_test:
session_start();
require_once '../Logout.php';
$logout = new Logout();
$logout->setRequestOxdId($_SESSION['oxd_id']);
$logout->setRequestPostLogoutRedirectUri(Oxd_RP_config::$post_logout_redirect_uri);
$logout->setRequestIdToken($_SESSION['user_oxd_access_token']);
$logout->setRequestSessionState($_SESSION['session_states']);
$logout->setRequestState($_SESSION['states']);
$logout->request();
echo $logout->getResponseHtml();
Uma_rs_protect.php
示例
Uma_rs_protect_test:
$uma_rs_protect = new Uma_rs_protect();
$uma_rs_protect->setRequestOxdId($register_site->getResponseOxdId());
$uma_rs_protect->addConditionForPath(["GET"],["http://vlad.umatest.com/dev/actions/view"], ["http://vlad.umatest.com/dev/actions/view"]);
$uma_rs_protect->addConditionForPath(["POST"],[ "http://vlad.umatest.com/dev/actions/add"],[ "http://vlad.umatest.com/dev/actions/add"]);
$uma_rs_protect->addConditionForPath(["DELETE"],["http://vlad.umatest.com/dev/actions/remove"], ["http://vlad.umatest.com/dev/actions/remove"]);
$uma_rs_protect->addResource('/uma/testresource');
$uma_rs_protect->request();
var_dump($uma_rs_protect->getResponseObject());
Uma_rs_check_access.php
示例
Uma_rs_check_access_test:
session_start();
require_once '../Uma_rs_check_access.php';
$uma_rs_authorize_rpt = new Uma_rs_check_access();
$uma_rs_authorize_rpt->setRequestOxdId($_SESSION['oxd_id']);
$uma_rs_authorize_rpt->setRequestRpt($_SESSION['uma_rpt']);
$uma_rs_authorize_rpt->setRequestPath("/uma/testresource");
$uma_rs_authorize_rpt->setRequestHttpMethod("GET");
$uma_rs_authorize_rpt->request();
var_dump($uma_rs_authorize_rpt->getResponseObject());
$_SESSION['uma_ticket'] = $uma_rs_authorize_rpt->getResponseTicket();
Uma_rp_get_rpt.php
示例
Uma_rp_get_rpt_test:
$uma_rp_get_rpt = new Uma_rp_get_rpt();
$uma_rp_get_rpt->0setRequestOxdId($_SESSION['oxd_id']);
$uma_rp_get_rpt->request();
var_dump($uma_rp_get_rpt->getResponseObject());
$_SESSION['uma_rpt']= $uma_rp_get_rpt->getResponseRpt();
echo $uma_rp_get_rpt->getResponseRpt();
Uma_rp_authorize_rpt.php
示例
Uma_rp_authorize_rpt_test:
session_start();
require_once '../Uma_rp_authorize_rpt.php';
$uma_rp_authorize_rpt = new Uma_rp_authorize_rpt();
$uma_rp_authorize_rpt->setRequestOxdId($_SESSION['oxd_id']);
$uma_rp_authorize_rpt->setRequestRpt($_SESSION['uma_rpt']);
$uma_rp_authorize_rpt->setRequestTicket($_SESSION['uma_ticket']);
$uma_rp_authorize_rpt->request();
var_dump($uma_rp_authorize_rpt->getResponseObject());
Uma_rp_get_gat.php
示例
Uma_rp_get_gat_test:
$uma_rp_get_gat = new Uma_rp_get_gat();
$uma_rp_get_gat->setRequestOxdId($_SESSION['oxd_id']);
$uma_rp_get_gat->setRequestScopes(["http://photoz.example.com/dev/actions/add","http://photoz.example.com/dev/actions/view", "http://photoz.example.com/dev/actions/edit"]);
$uma_rp_get_gat->request();
var_dump($uma_rp_get_gat->getResponseObject());
$_SESSION['uma_gat']= $uma_rp_get_gat->getResponseGat();
echo $uma_rp_get_gat->getResponseGat();