dragonbe / connect-sdk-php
1Password Connect PHP SDK 允许您的 PHP 应用程序访问您基础设施上托管的 1Password Connect API,并利用 1Password Secrets Automation 的强大功能。
Requires
- php: ^8.0||^8.1
- ext-json: *
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/log: ^1.1
Requires (Dev)
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^1.8
- infection/infection: ^0.22.1
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.6
- vimeo/psalm: ^4.7
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,需要两个组件:
- 1Password Connect SDK for PHP(本库)
- 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 提交发现。
有关安全实践的更多信息,请访问我们的 安全主页。