microsec / passbyme2fa-client-php
PassBy[ME] 移动 ID SDK
Requires
- php: >=5.5.12
README
此库为您提供了处理 PassBy[ME] REST API 方法的功能。
有关 PassBy[ME] 的更多信息,请访问:www.passbyme.com 并注册一个免费账户。
要求
- PHP 5.5.12+
- libcurl
安装
PassBy[ME] 2FA 客户端可通过 Composer/Packagist 获取。
在您的 composer.json
{ "require": { "microsec/passbyme2fa-client-php": "[version number]" } }
通过命令行
composer require microsec/passbyme2fa-client-php
或者,将“PassByME”文件夹的内容复制到您的 PHP include_path
设置中,或者只需点击 GitHub 页面顶部的‘zip’按钮下载存档。
在您的代码中需要 passbyme2fa-client
如果您使用 composer,请加载 composer 自动加载器
require_once 'vendor/autoload.php';
不使用 composer,请使用内置的自动加载器
require '/path/to/PassByME/Autoloader.php';
开始使用
您需要一个 PassBy[ME] 账户 和一个 证书 来允许访问 PassBy[ME] API。
1. 登录您的账户
如果您之前未注册,请注册一个新的组织或登录到您的管理界面。请注意,注册过程需要一个已安装 PassBy[ME] 应用的 Android、Windows Phone 或 iOS 设备。
2. 下载证书
登录到您的 PassBy[ME] 管理界面以下载所需的证书文件。
下载应用程序证书
在“应用程序”菜单下点击“新建应用程序”按钮,创建一个新的应用程序(及其应用程序 ID)。创建的应用程序(及其应用程序 ID)将显示在表格视图中。点击“锁”图标以下载您的应用程序证书文件(PEM 格式)。此证书是执行 API 消息 功能所必需的。
下载组织证书
点击“账户设置”菜单下的“密钥详情”按钮,下载组织证书(PEM 格式)。此证书是执行 API 管理 功能所必需的。
PEM 文件受密码保护,该密码打印在管理网站上。请注意,您设置证书文件时需要此密码。
在 配置库 部分,您可以了解如何正确设置 PEM 文件以与 PassBy[ME] 系统通信。我们建议您在继续集成之前阅读可用的 管理 API 用户指南。
3. 配置客户端
要开始与 PassBy[ME] API 通信,您首先必须配置客户端。为此,有一个 Config.php 类。您可以直接使用该类来存储您的配置,或者像以下那样在您的代码中设置配置设置。
use PassByME\TwoFactor\Config;
Config::set('aut_api_url', 'https://auth-sp.passbyme.com/frontend');
Config::set('curl_debug', true);
...
您必须正确设置的最重要的配置设置如下
- auth_cert : 应用程序证书文件的路径。 (消息传递所必需。)
- auth_pwd : 应用程序证书文件的密码。
- mng_cert : 组织证书文件的路径。 (管理所必需。)
- mng_pwd : 管理证书文件的密码。
- auth_url : 要使用的 PassBy[ME] 认证服务的地址。默认情况下,SDK 将连接到 https://auth-sp.passbyme.com/frontend URL。
- mng_url : 要使用的 PassBy[ME] 管理服务的地址。默认情况下,SDK 将连接到 https://api.passbyme.com/register URL。
- ca_cert: 用于与 API 建立连接的 CA 证书路径。CA 证书可以在 ca_bundle 文件夹中找到,这是此属性的默认设置。
其他可选配置参数
- curl_timeout: 允许 cURL 函数执行的秒数最大值。默认值为 30 秒。
- curl_maxredirs: 要跟随的 HTTP 重定向的最大数量。默认值为 10。
- curl_connecttimeout: 尝试连接时等待的秒数。默认值为 120 秒。
- curl_useragent: 在 HTTP 请求中使用的 "User-Agent:" 头的内容。默认值为空。
- curl_debug: 将 cURL 输出信息写入日志文件。可选值是 true 或 false。默认值是 false。
- curl_debug_log_path: cURL 调试日志文件路径。留空以使用系统临时目录。
- curl_follow_location: 跟随服务器在 3xx 响应中作为 HTTP 头部分发送的任何 Location: 头。默认值 false。
- curl_proxytype: cURL 代理类型。默认值是 HTTP。
- curl_proxy: 用于隧道请求的 HTTP 代理。
- curl_proxyport: 要连接的代理端口号。
- curl_proxyuserpwd: 格式为 "[用户名]:[密码]" 的用户名和密码,用于连接到代理。
按需记录日志
默认情况下,日志是禁用的。您可以通过创建自己的 logger 类并实现 ILogger 接口来启用日志记录。该接口为您提供以下日志级别
- info
- warning
- error
- debug
示例
namespace YourLogger; class Logger implements PassByME\Log\ILogger { public function __construct() { openlog('PassByME', LOG_PERROR, LOG_SYSLOG); } public function info($message) { syslog(LOG_INFO, $message); } ...
然后您可以将您的日志类添加到 PassBy[ME] 客户端,如下所示
$logger = new YourLogger\Logger(); $pbm = new PassByME\Methods\Messaging($logger);
捕获错误
在失败时,应用程序抛出 PBMErrorException。
函数
以下部分包含所有可用函数的详细描述。
消息传递
PassBy[ME] 可以向已注册用户设备发送三种不同类型的消息。以下消息类型是
authorizationMessage
$pbm->authorizationMessage([userIdentifier], [subject], [body], [availability]);
generalMessage
$pbm->generalMessage([userIdentifier], [subject], [body], [availability]);
eSignMessage
$pbm->eSignMessage([userIdentifier], [subject], [body], [availability]);
所有三个函数都有以下参数
在成功的情况下,返回一个 JSON 对象,其中包含有关正在进行的过程的各种信息。
示例 JSON 对象
{ "messageId":"@pbmcore1-1.3.6.1.4.1.21528.3.3.2.9045.2.10111-lUzWHbKe", "expirationDate":"2016-08-15T09:11:32.585Z", "recipients":[ { "userId":"john.doe@passbyme.com", "status":"DOWNLOADED" } ], "secureId":"5cRFBm" }
所有消息响应都包含一个名为 messageId 的特定标识符。
示例 messageId
@pbmcore1-1.3.6.1.4.1.21528.3.3.2.9045.2.10111-vaPiky4b
trackMessage
$pbm->trackMessage([messageId]);
此函数需要一个 messageId 参数。该 messageId 可以通过调用上面提到的三个消息方法之一来获取。
cancelMessage
$pbm->cancelMessage([messageId]);
此功能取消由给定的 messageId 标识的现有身份验证会话。
管理
PassBy[ME] 管理方法通过 Management 类提供。
$logger = new YourLogger\Logger(); $pbm = new PassByME\Methods\Management($logger);
createUser
$pbm->createUser([userId], [email], [fullName], [phoneNumber]);
创建新的 PassBy[ME] 用户。
getListOfUsers
$pbm->getListOfUsers();
返回 PassBy[ME] 用户列表。
getUsersNumber
$pbm->getUsersNumber();
获取账户中的用户数量。
getUser
$pbm->getUser([oid]);
根据 OID 查找用户。
deleteUser
$pbm->deleteUser([oid]);
删除具有给定 OID 的用户。
modifyUser
$pbm->modifyUser([oid], [modifiedUserObj]);
修改具有给定 OID 的用户。
createEnrollment
$pbm->createEnrollment([oid]);
为给定用户创建新的注册。
getListOfEnrollments
$pbm->getListOfEnrollments([oid]);
返回给定用户的活跃注册。
downloadEnrollmentPdf
$pbm->downloadEnrollmentPdf([oid], [enrollmentId]);
下载 pdf 格式的注册。
sendEnrollmentInEmail
$pbm->sendEnrollmentInEmail([oid], [enrollmentId]);
通过电子邮件将指定的注册 pdf 文档发送给用户。
deleteEnrollment
$pbm->deleteEnrollment([oid], [enrollmentId]);
删除由 OID 指定的用户指定的 enrollmentId 指定的注册。
createAlias
$pbm->createAlias([oid], [alias]);
为指定的PassBy[ME]用户添加新的userId(别名)。
getListOfAliases
$pbm->getListOfAliases([oid]);
返回指定PassBy[ME]用户的userId列表(别名)。
getUserByAlias
$pbm->getUserByAlias([userId]);
查找具有给定userId的用户。
deleteAlias
$pbm->deleteAlias([oid], [userId]);
删除指定PassBy[ME]用户的指定userId(别名)。
getListOfAdministrators
$pbm->getListOfAdministrators();
返回管理员列表。
createInvitation
$pbm->createInvitation();
创建新的邀请。完成邀请过程将创建新的管理员。
getListOfInvitations
$pbm->getListOfInvitations();
返回活动邀请列表。
createAdminEnrollment
$pbm->createAdminEnrollment([userId]);
为指定的管理员创建新的注册。
getAdminEnrollments
$pbm->getAdminEnrollments([userId]);
返回指定管理员的活跃注册。
downloadAdminEnrollmentPdf
$pbm->downloadAdminEnrollmentPdf([userId], [enrollmentId]);
下载 pdf 格式的注册。
sendAdminEnrollmentInEmail
$pbm->sendAdminEnrollmentInEmail([userId], [enrollmentId]);
通过电子邮件将指定的注册pdf文档发送给管理员所有者。
deleteAdminEnrollment
$pbm->deleteAdminEnrollment([userId], [enrollmentId]);
删除由userId指定的管理员的enrollmentId指定的注册。
createApplication
$pbm->createApplication([name]);
创建新的应用程序注册。
getListOfApplication
$pbm->getListOfApplication();
返回在PassBy[ME]系统中注册的应用程序列表。
getApplication
$pbm->getApplication([appId]);
查找具有给定应用程序标识符的应用程序。
deleteApplication
$pbm->deleteApplication([appId]);
删除具有给定应用程序标识符的PassBy[ME]系统中的应用程序。
modifyApplication
$pbm->modifyApplication([appId], [name]);
修改具有给定应用程序标识符的应用程序。
getListOfUsersDevices
$pbm->getListOfUsersDevices([appId], [name]);
返回所有设备。
getUserDevices
$pbm->getUserDevices([oid]);
返回指定用户的设备。
getListOfAdminDevices
$pbm->getListOfAdminDevices([adminId]);
返回指定管理员的设备。
sendDeactivationPassword
$pbm->sendDeactivationPassword([vendorId]);
通过电子邮件重新发送停用密码。
deleteDevice
$pbm->deleteDevice([deactivationPassword]);
删除用户设备。
getOrganization
$pbm->getOrganization();
返回组织详情。
updateOrganization
$pbm->updateOrganization([modifiedOrgObj]);
更新组织详情。
getAccountLimitations
$pbm->getAccountLimitations();
获取组织的当前账户限制(定价)。
activityLog
$pbm->activityLog([search], [start], [length]);
返回二次因素认证日志条目列表。
License
MIT许可证
版权(c)2015 Microsec Ltd. development@passbyme.com
特此免费授予任何获得此软件及其相关文档文件(“软件”)副本的人以处理软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供的人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论此类索赔、损害或其他责任是基于合同、侵权或其他方式,是否与软件或其使用或其他方式有关。