tecnovix / azure-key-vault
允许在 Laravel 应用程序内部轻松地从 Azure Key Vault 获取机密
Requires
- php: ^7.4|^8.0|^8.1
- illuminate/cache: ^8||^9
- illuminate/http: ^8||^9
- illuminate/support: ^8|^9
Requires (Dev)
- guzzlehttp/guzzle: ^7.4
- orchestra/testbench: ^6.9
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-09-07 23:26:33 UTC
README
概述
此包允许从 Azure Key Vault 获取或设置机密,其接口类似于 env()
和 config()
。
安装
使用 composer 安装此包
composer require tecnovix/azure-key-vault
安装后,Laravel 应该能发现此包。
如果使用包的默认配置,必须设置以下环境变量
AZURE_AD_CLIENT_ID
将用于访问保管库的服务主体的 UUID。此服务主体需要在保管库上具有“获取机密”权限。AZURE_AD_CLIENT_SECRET
该服务主体的共享秘密。AZURE_AD_TENANT_ID
存在服务主体的租户的 UUID。AZURE_KEY_VAULT_NAME
保管库的名称(用作主机名的子域名;例如,fred
在fred.vault.azure.net
中)。
此包将配置发布到 vault.php
。可以使用以下方法完成此操作
php artisan vendor:publish --provider='InsitesConsulting\AzureKeyVault\ServiceProvider'
配置条目如下
tenant_id
租户 UUIDclient_id
服务主体 UUIDclient_secret
服务主体共享秘密vault
保管库名称
用法
此包提供了一个名为 Vault
的外观,具有三个方法 Vault::secret()
、Vault::setSecret()
和 Vault::setVault()
,以及一个全局辅助函数 secret()
。
要获取名为 'apikey' 的机密
$secret = Vault::secret('apikey');
如果机密不存在,将返回 null
,除非指定了不同的默认值,如下所示
$other_secret = Vault::secret('otherkey', 'default-value');
如果出现错误,将抛出 InsitesConsulting\AzureKeyVault\AzureKeyVaultException
。其消息将被设置为 Azure 错误响应的主体,其代码将被设置为该响应的 HTTP 状态。
全局辅助函数的行为与外观方法相同
$secret = secret('apikey'); $other_secret = secret('otherkey', 'default-key');
要将名为 'apikey' 的机密设置为值 'longsecretvalue'
Vault::setSecret('apikey', 'longsecretvalue');
此方法为空,但在出错时将以与 Vault::secret()
相同的方式抛出 InsitesConsulting\AzureKeyVault\AzureKeyVaultException
。
要处理多个保管库,请使用 Vault::setVault()
更改使用的保管库名称
$secret = secret('apikey'); Vault::setVault('other-vault'); $other_secret = secret('apikey');
这是持久的:新设置的保管库将保持到再次调用 Vault::setVault()
。
在不带参数的情况下调用 Vault::setVault()
将将保管库名称重置为配置文件中设置的保管库名称
$other_secret = secret('apikey'); Vault::setVault(); $secret = secret('apikey');