dragonbe/connect-sdk-php

1Password Connect PHP SDK 允许您的 PHP 应用程序访问您基础设施上托管的 1Password Connect API,并利用 1Password Secrets Automation 的强大功能。

dev-main 2022-06-29 09:43 UTC

This package is auto-updated.

Last update: 2024-08-29 05:50:25 UTC


README

1Password Connect PHP SDK 允许您的 PHP 应用程序访问您基础设施上托管的 1Password Connect API,并利用 1Password Secrets Automation 的强大功能。

该库可用于 PHP 应用程序、工具和其他自动化,以访问和管理 1Password 保险库中的项目。

安装

您可以使用 composer 安装 SDK。

composer require dragonbe/connect-sdk-php

使用方法

要使用 1Password Connect SDK for PHP,需要两个组件:

  1. 1Password Connect SDK for PHP(本库)
  2. 1Password Connect 服务器

除了这些组件外,您还需要配置 1Password(管理员级别)以允许 "Secrets Automation"。此过程由 1Password 完全文档化,因此请首先访问 1Password Secrets Automation Workflow 文档。没有 1Password Connect 服务器,此库将无法工作。

本文档的其余部分假设您已配置 1Password Connect 服务器,并在本地主机的 8080 端口上监听。使用 cURL 可以验证此。

curl \                   
  -H "Accept: application/json" \
  -H "Authorization: Bearer $OP_API_TOKEN" \
  http://127.0.0.1:8080/v1/vaults

如果您从您的保险库中收到了带有数据的有效响应,则您已成功设置了 1Password Connect 服务器。如果没有,请查看文档以了解是否跳过了某个步骤。

[
  {
    "id": "xxxxxxxxxxxxxxxxxxxxxxxxxx",
    "name": "Shared Secrets",
    "content_version": 3,
    "description": "Shared secrets for APIs, online services, and more",
    "attribute_version": 1,
    "items": 2,
    "type": "USER_CREATED",
    "created_at": "2021-05-01T15:20:46Z",
    "updated_at": "2022-06-22T14:33:39Z"
  }
]

本文档的其余部分将侧重于 1Password Connect SDK for PHP 的使用。

1Password Connect SDK for PHP

环境变量

在当前版本中,我没有使用环境变量。

配置设置

对于 1Password Connect SDK for PHP 的配置,我使用目录 /config 中的 PHP 配置文件 local.php。此文件由源代码控制忽略,因此它不会意外地进入存储库,暴露出秘密访问令牌。

<?php
declare(strict_types=1);

return [
    '1password' => [
        'access_token' => '*******', // The access token you received from 1Password configuration
    ],
];

提示:确保此文件为只读,并且只能由将运行此 SDK 的用户帐户访问。

创建 API 客户端

对于 API 客户端(本库),我们需要使用此配置文件。您应该编写的最少代码如下:

<?php
declare(strict_types=1);

use OnePassword\Connect\OnePasswordConnectFactory;

require_once __DIR__ . '/../vendor/autoload.php';
$config = require_once __DIR__ . '/config/local.php';

$opc = OnePasswordConnectFactory::create($config['1password']['access_token']);

检索保险库

检索已分配给此访问令牌的保险库列表需要更多几行代码。

// List a list of vaults
$vaults = $opc->listVaults();
foreach ($vaults as $vault) {
    echo 'Vault: ' . $vault->getName() . ' (' . $vault->getId() . ')' .PHP_EOL;
}

这将返回以下输出

Vault: Shared Secrets (xxxxxxxxxxxxxxxxxxxxxxxxxx)
Shared Secrets contains 2 item(s)

要检索这些保险库中的项目,需要更多几行代码

$items = $opc->listItems('xxxxxxxxxxxxxxxxxxxxxxxxxx');
foreach ($items as $item) {
    echo 'Item title: ' . $item->getTitle() . PHP_EOL;
}

这将返回以下输出

Item title: Azure Test Access Token: PHP SDK Example v1.0.0
Item title: Azure API Manager

与项目交互

自定义 HTTPClient

使用 psr/log 进行日志记录

1Password Connect PHP 客户端使用 psr/log 库记录运行时信息。

开发

此项目是一个正在进行中的项目,因为生活中的其他优先事项已经暂停了一段时间。如果您关注此存储库以获取更新,则将出现更新。

运行测试

要执行单元测试,您可以使用 composer test,它将启动所有 PHPUnit 测试。

关于 1Password

1Password 是世界上最受欢迎的密码管理器。通过结合行业领先的安全性和获奖设计,该公司为全球企业和消费者提供私有、安全和用户友好的密码管理服务。超过 60,000 家企业客户将 1Password 信赖为他们的企业级密码管理器。

安全

如果您发现任何漏洞,1Password 要求您进行负责任披露。请通过 BugCrowd 提交发现。

有关安全实践的更多信息,请访问我们的 安全主页