insites-consulting / 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)
- ext-json: *
- 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-15 12:06:58 UTC
README
概述
此包允许从或设置Azure Key Vault中的秘密,接口类似于env()
和config()
。
安装
使用Composer要求此包
composer require insites-consulting/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');
此方法为空,但在出错时将抛出InsitesConsulting\AzureKeyVault\AzureKeyVaultException
,与Vault::secret()
相同。
要使用多个保险库,请使用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');