Python的Kerberos API绑定
项目描述
Python Kerberos 5库
本库提供了封装Kerberos 5 C API的Python函数。由于该API的复杂性,强烈建议使用类似 python-gssapi 的工具,该工具通过GSSAPI公开Kerberos身份验证细节。
要求
- Kerberos 5 API的实现 - 包括头文件
- MIT Kerberos - 至少1.17版本
- Heimdal
- C编译器,例如GCC
- Python 3.6以上
注意:macOS自带Heimdal的实现,并且如果通过wheel安装,该平台不需要编译器。
安装
只需运行
pip install krb5
要从源代码安装,请运行以下命令
git clone https://github.com/jborean93/pykrb5.git
python -m pip install build
python -m build
pip install dist/krb5-*.whl
编译代码应自动选择正确的KRB5头文件路径和位置。如果需要进一步自定义,可以在构建wheel时设置以下环境变量
KRB5_KRB5CONFIG
- 用于检测要链接的Kerberos库的krb5-config的路径
- 编译器和链接器参数是从该函数输出的内容派生的
- 默认为PATH中的krb5-config
- FreeBSD将默认为
/usr/local/bin/krb5-config
而不是/usr/bin/krb5-config
KRB5_MAIN_LIB
- 用于检查任何可选函数是否可用的libkrb5共享库的路径
KRB5_COMPILER_ARGS
- 在编译扩展时使用的编译器标志
- 如果未设置,则默认为
krb5-config --cflags krb5
的输出
KRB5_LINKER_ARGS
- 在编译扩展时使用的链接器标志
- 如果未设置,则默认为
krb5-config --libs krb5
的输出
KRB5_SKIP_MODULE_CHECK
- 跳过用于检测可选函数是否可用的检查 - 将它们全部视为可用
- 这仅在构建sdist时真正有用,因为没有实现提供所有这些函数
KRB5_CYTHON_TRACING
- 用于生成带有行跟踪的Cython扩展,以便收集覆盖率
KRB5_MACOS_HEIMDAL_DIR
- 在macOS上编译时用于指向Heimdal安装目录
- 用于查找Heimdal头文件,因为macOS不包括或提供获取这些头文件的方法,它们的Heimdal框架
- 默认为
{git_root}/build_helpers/heimdal
开发
要运行测试或修改此存储库,请运行以下命令
git clone https://github.com/jborean93/pykrb5.git
pip install -r requirements-dev.txt
pre-commit install
python -m pip install -e .
# Can compile the krb5 extensions on an adhoc basis
# python setup.py build_ext --inplace
然后可以使用VSCode等编辑器进行更改并运行测试套件。要更改后重新编译Cython文件,请运行build_ext --inplace
命令。
结构
此库只是Kerberos 5 API的包装器。在krb5命名空间下的函数与KRB5 API规范匹配,但去除了krb5_前缀。例如,krb5_init_context函数通过krb5.init_context()
调用。错误以Krb5Error
的形式抛出,其中包含由KRB5实现格式化的消息和该错误的错误代码。一些由这些函数返回的结构体由Python类表示,并在所有对该对象的引用被移除后释放。一些类公开了addr
属性,该属性返回封装的结构体的原始指针地址。这样做是为了使结构体可用于其他库,如python-gssapi
,但必须非常小心,以确保没有其他东西释放该结构体,因为这可能导致段错误。
此库中公开的所有函数并非在每个KRB5 API实现中均可用。要检查函数是否可用,请运行以下命令
import krb5
if not hasattr(krb5, "kt_dup"):
raise Exception("Current implementation does not support krb5_kt_dup")
不同实现之间可能存在一些行为、错误代码、错误信息上的差异。当需要时,由调用者来弥合这些差异。
项目详情
关闭
krb5-0.7.0.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6a308f2e17d151c395b24e6aec7bdff6a56fe3627a32042fc86d412398a92ddd |
|
MD5 | 2c707f2fd06826ab6680a92b889f8de6 |
|
BLAKE2b-256 | 429aa1eacfede9cb66fce3edb62ff62e8f296a64dabe1408a63e6666ceb4ced9 |
关闭
krb5-0.7.0-cp313-cp313-macosx_11_0_arm64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 691e2eafd0b16cb1b209b2bd36888526ea7df24ce69ba39e72ccad281ffdadb2 |
|
MD5 | 4cc5ab6b4d3ad1fe9105c78a5321626c |
|
BLAKE2b-256 | 7b34961960e224a51301b26a13171cea44b0fa30604fd02f225846d6974ed02e |
关闭
krb5-0.7.0-cp313-cp313-macosx_10_13_x86_64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 87a6d11bb182a289dd86086c19cba3f03a8108175e8e23292d3d2786ff3ecaeb |
|
MD5 | f9363f2315c5bcf880b7dae386ffc867 |
|
BLAKE2b-256 | d1c29aeeca5738f99735f9755c2ccd378573bcea02a72675a089a30ab26117be |
关闭
krb5-0.7.0-cp312-cp312-macosx_11_0_arm64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a33896483f6d415c4289e5cc108b0450a919bae0546a997f3352d982bd4e7c99 |
|
MD5 | bdb5125c6ca628889d71214fa8ae703c |
|
BLAKE2b-256 | 315e911ff98bcf57dd47abe17adfa22279ed17d23ea3baabb72b9f3bc29cf17f |
关闭
krb5-0.7.0-cp312-cp312-macosx_10_13_x86_64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fa4ea45629e585787c0bcc455c7fbed7e09176031a7f9e7c87b9deaad401da36 |
|
MD5 | 86a9368e67f6bbe479b38a58a631c20f |
|
BLAKE2b-256 | 2f09779082321824a9ebe0ee2d51f19a84c8f12425441572bda90d86674958c9 |
关闭
krb5-0.7.0-cp311-cp311-macosx_11_0_arm64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 66b286d9b4af42b4f5d2d561354cd44d891bee275768f1a2ac795ad4e8042dce |
|
MD5 | b7c3ed937d22fe621aae35b2cbda7df9 |
|
BLAKE2b-256 | abd45e7ccdeb2b1fa872daf03fbbd00476957bca3f388dfdf770122c2cbbb835 |
关闭
krb5-0.7.0-cp311-cp311-macosx_10_9_x86_64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 717e5b8b4d78268eefdba72a39cb0f93e5821a23e626ada3a45a583a2454d084 |
|
MD5 | 3f8f8c733dfdc71e8444317ff5de95a4 |
|
BLAKE2b-256 | 137070c871e2254a1337336e2f04004c8fd83694fee2b3de5ccefe5470402a9e |
关闭
哈希值 for krb5-0.7.0-cp310-cp310-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 69dc98084de5d693a97725f746d5af46299590bb9658c9fc32e4769a4a0f3079 |
|
MD5 | 455675514549aa7a8eda35f67ed2ec54 |
|
BLAKE2b-256 | cd60e8d6c83af41cdd3d75bf05da3e2cc949417d5de8d8f4b4a7eaf54776ffda |