microsec / passbyme2fa-client-php

PassBy[ME] 移动 ID SDK

v2.0.7 2017-08-31 08:40 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:54:44 UTC


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

特此免费授予任何获得此软件及其相关文档文件(“软件”)副本的人以处理软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供的人这样做,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论此类索赔、损害或其他责任是基于合同、侵权或其他方式,是否与软件或其使用或其他方式有关。