Custodia的FreeIPA Vault插件
项目描述
警告 custodia.ipa是一个技术预览版,具有临时API。
custodia.ipa是Custodia的一组插件集合。它提供了与Custodia的集成。它提供了与FreeIPA的集成。IPAVault插件是FreeIPA保险库的接口。机密信息被加密并存储在Dogtag的密钥恢复代理中。《IPACertRequest》插件按需创建私钥和签名证书。最后,《IPAInterface》插件是一个辅助插件,它封装了ipalib和GSSAPI身份验证。
要求
安装
pip
setuptools >= 18.0
运行时
custodia >= 0.5.0
ipalib >= 4.5.0
ipaclient >= 4.5.0
Python 2.7 (Python 3在IPA保险库中的支持不稳定。)
custodia.ipa需要一个IPA注册的主机和一个Kerberos TGT进行身份验证。建议使用密钥表文件或GSS-Proxy提供凭据。此外,《IPAVault》依赖于密钥恢复代理服务(ipa-kra-install)。
测试和开发
wheel
tox
虚拟环境需求
custodia.ipa依赖于几个二进制扩展和共享库,例如python-cryptography,python-gssapi,python-ldap和python-nss。在虚拟环境中安装时,需要C编译器和几个开发包。
$ virtualenv venv $ venv/bin/pip install --upgrade custodia.ipa
Fedora
$ sudo dnf install python2 python-pip python-virtualenv python-devel \ gcc redhat-rpm-config krb5-workstation krb5-devel libffi-devel \ nss-devel openldap-devel cyrus-sasl-devel openssl-devel
Debian / Ubuntu
$ sudo apt-get update $ sudo apt-get install -y python2.7 python-pip python-virtualenv python-dev \ gcc krb5-user libkrb5-dev libffi-dev libnss3-dev libldap2-dev \ libsasl2-dev libssl-dev
示例配置
创建目录
$ sudo mkdir /etc/custodia /var/lib/custodia /var/log/custodia /var/run/custodia $ sudo chown USER:GROUP /var/lib/custodia /var/log/custodia /var/run/custodia $ sudo chmod 750 /var/lib/custodia /var/log/custodia
创建服务帐户和密钥表
$ kinit admin $ ipa service-add custodia/$HOSTNAME $ ipa service-allow-create-keytab custodia/$HOSTNAME --users=admin $ mkdir -p /etc/custodia $ ipa-getkeytab -p custodia/$HOSTNAME -k /etc/custodia/ipa.keytab $ chown custodia:custodia /etc/custodia/ipa.keytab
IPAcert请求插件需要额外的权限
$ ipa privilege-add \ --desc="Create and request service certs with Custodia" \ "Custodia Service Certs" $ ipa privilege-add-permission \ --permissions="Retrieve Certificates from the CA" \ --permissions="Request Certificate" \ --permissions="Revoke Certificate" \ --permissions="System: Modify Services" \ "Custodia Service Certs" # for add_principal=True $ ipa privilege-add-permission \ --permissions="System: Add Services" \ "Custodia Service Certs" $ ipa role-add \ --desc="Create and request service certs with Custodia" \ "Custodia Service Cert Adminstrator" $ ipa role-add-privilege \ --privileges="Custodia Service Certs" \ "Custodia Service Cert Adminstrator" $ ipa role-add-member \ --services="custodia/$HOSTNAME" \ "Custodia Service Cert Adminstrator"
创建/etc/custodia/ipa.conf
# /etc/custodia/ipa.conf [global] debug = true makedirs = true [auth:ipa] handler = IPAInterface keytab = ${configdir}/${instance}.keytab ccache = FILE:${rundir}/ccache [auth:creds] handler = SimpleCredsAuth uid = root gid = root [authz:paths] handler = SimplePathAuthz paths = /. /secrets [store:vault] handler = IPAVault [store:cert] handler = IPACertRequest backing_store = vault [/] handler = Root [/secrets] handler = Secrets store = vault [/secrets/certs] handler = Secrets store = cert
运行Custodia服务器
$ systemctl start custodia@ipa.socket
IPA证书请求
《IPACertRequest》存储插件可以即时生成或撤销证书。它使用后端存储来缓存证书和私钥。插件可以自动创建服务主体。然而,主机必须已经存在。《IPACertRequest》不会按需创建主机条目。
像GET /path/to/store/HTTP/client1.ipa.example这样的请求为服务HTTP/client1.ipa.example生成私钥和CSR,DNS主题备用名称为client1.ipa.example。然后,CSR被转发到IPA并由Dogtag签名。生成的证书及其信任链与私钥一起作为PEM包返回。
$ export CUSTODIA_INSTANCE=ipa $ custodia-cli get /certs/HTTP/client1.ipa.example -----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY----- Issuer: organizationName=IPA.EXAMPLE, commonName=Certificate Authority Subject: organizationName=IPA.EXAMPLE, commonName=client1.ipa.example Serial Number: 22 Validity: Not Before: 2017-04-27 09:44:20 Not After: 2019-04-28 09:44:20 -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- Issuer: organizationName=IPA.EXAMPLE, commonName=Certificate Authority Issuer: organizationName=IPA.EXAMPLE, commonName=Certificate Authority Serial Number: 1 Validity: Not Before: 2017-04-26 08:24:11 Not After: 2037-04-26 08:24:11 -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----
DELETE请求将从后端存储中删除证书/密钥对,并撤销证书。
尚未实现撤销或过期证书的自动续订。
FreeIPA 4.4支持
默认设置和权限针对FreeIPA >= 4.5进行优化。对于4.4,必须使用chain=False配置插件。还需要额外的权限“带有SubjectAltName的请求证书”。
ipa privilege-add-permission \ --permissions="Request Certificate with SubjectAltName" \ "Custodia Service Certs"
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
构建分布
custodia.ipa-0.4.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c4ede27b40bd863769bdf0e8e540551bce9c00571fe51142f65318e9e1098feb |
|
MD5 | 0882f1ca477541a00833152dc4e721f2 |
|
BLAKE2b-256 | f98726f25ae5b9b44698aa349012ce7d025ef936dc2923dbd81b0c77ae5137fd |
custodia.ipa-0.4.2-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 78e7d963d4923f8565d8c73781f29e756bf815642e1a42342dcd5b27d4311ca7 |
|
MD5 | bbcf8c2db821913897f3723ad4c79b2c |
|
BLAKE2b-256 | 0e6eecfe5a2b12e5dd7285b4ed0ad0f021850ae17261edce6664040255375740 |