跳转到主要内容

一个KeyVault客户端包装器,帮助在ADAL(Active Directory身份验证库)和MSI(托管服务标识)之间切换作为令牌提供者

项目描述

keyvaultlib

一个KeyVault客户端包装器,帮助在ADAL(Active Directory身份验证库)和MSI(托管服务标识)之间切换作为令牌提供者。此外,该库还支持用户分配的标识(MSI)和非公共(例如,政府)Azure云。

什么是KeyVault ?

Key Vault是Azure托管的云服务,允许您以各种形式安全地存储机密

  • 凭证
  • 连接字符串
  • 各种格式的私钥和证书
  • ...

它提供审计功能,并易于与AAD(Azure-Active-Directory)集成,以实现基于用户或应用程序的授权。更多信息请参阅以下链接: https://docs.microsoft.com/en-us/azure/key-vault/key-vault-overview

什么是ADAL(Active Directory身份验证库) ?

ADAL是AAD(Azure-Active-Directory)团队在多种编程语言中提供的一系列库,允许您轻松与其云活动目录交互。例如,库可用于与Azure资源进行身份验证和授权

关于ADAL的更多信息,请参阅以下链接:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-authentication-libraries

什么是MSI(托管服务标识)?

MSI是为了简化Azure服务的身份验证流程,同时提供按虚拟机粒度的控制而创建的。一旦在您的虚拟机上启用MSI,您的虚拟机将被分配一个应用程序或用户客户端ID,您可以使用它轻松地接收对Azure资源的访问令牌,然后授权您的虚拟机使用这些资源。它还避免了在磁盘或更糟糕的是在代码库中存储您的服务主体信息的需求。

关于MSI的更多信息,请参阅以下链接:https://docs.microsoft.com/en-us/azure/active-directory/managed-service-identity/overview

如何有效地使用此包装器?

此KeyVault客户端是为了减少使用MSI或ADAL/服务主体凭证的代码重复而创建的。一个常见的用例是,您的代码的一部分在Azure虚拟机上运行,而另一部分在您的本地机器或虚拟机上运行,其中MSI不可用。

示例

首先,通过以下方式安装库:

$> pip install keyvaultlib

接下来,导入KeyVaultOAuthClient并选择您的身份验证策略;

当前支持:使用ADAL或MSI的服务主体凭证

from keyvaultlib.key_vault import KeyVaultOAuthClient

# MSI Example
client = KeyVaultOAuthClient(use_msi=True)
secret = client.get_secret_with_key_vault_name('my-key-vault', 'my-secret')

# MSI - User Assigned Identity example
client = KeyVaultOAuthClient(use_msi=True, client_id='my_user_assigned_client_id')
secret = client.get_secret_with_key_vault_name('my-key-vault', 'my-secret')

# ADAL / SPN Example
client = KeyVaultOAuthClient(
  client_id='my_user_or_app_client_id', 
  client_secret='my_user_or_app_client_secret', 
  tenant_id='my_AAD_tenant_id'
)
secret = client.get_secret_with_key_vault_name('my-key-vault', 'my-secret')

# Setting retry counts for request-throttling (Default is 5)
client = KeyVaultOAuthClient(
  client_id='my_user_or_app_client_id', 
  client_secret='my_user_or_app_client_secret', 
  tenant_id='my_AAD_tenant_id'
)
secret = client.get_secret_with_key_vault_name('my-key-vault', 'my-secret', throttling_retry_attempts=2)

# Using government / non-public Azure Clouds Example:
from msrestazure.azure_cloud import AZURE_US_GOV_CLOUD

client = KeyVaultOAuthClient(
  client_id='my_user_or_app_client_id', 
  client_secret='my_user_or_app_client_secret', 
  tenant_id='my_AAD_tenant_id',
  cloud=AZURE_US_GOV_CLOUD
)
secret = client.get_secret_with_key_vault_name('my-key-vault', 'my-secret')

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

keyvaultlib-1.1.4.tar.gz (4.8 kB 查看哈希值)

上传时间:

构建分发

keyvaultlib-1.1.4-py2.py3-none-any.whl (5.9 kB 查看哈希值)

上传时间: Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面