munge的python接口

pymunge的Python项目详细描述


pymunge是munge的c api的python包装器,名为 利布芒格。pymunge提供要创建的函数和类 使用munge验证凭证,并使用 咀嚼上下文。

Munge(Munge Ud'n'Gid商场,https://dun.github.io/munge/) 是用于创建和验证凭据的身份验证服务 设计为可在HPC群集环境中使用的高可扩展性。

pymunge官方存储库:https://github.com/nomadictype/pymunge

PYPI项目页面:https://pypi.python.org/pypi/pymunge

API引用:https://pymunge.readthedocs.io/en/latest/

安装说明

要求:

  • Python3.4或更高版本(或Python2.7中的'Enum34'包)。
  • 咀嚼0.5.x或更高。
  • 一个被屏蔽的守护进程必须在同一台计算机上运行 使pymunge能够创建和验证凭据。

确保满足上述所有要求。之后, 有几种可能的方法可以继续:

  • 要从pypi安装pymunge,请运行以下命令(最好是 在虚拟机中):

    python3 -m pip install pymunge
    
  • 或者,您的操作系统发行版可能包含pymunge作为包, 名称为pymunge、python3 pymunge或python pymunge。

  • pymunge也可以直接使用而无需安装。只要确保 python可以找到pymunge包(例如 pymunge包到pythonpath的父目录 环境变量)。

入门/教程

本快速教程介绍如何使用pymunge api。如果你愿意, 您可以在交互式python 3会话中继续;只需复制 前面有>;的所有代码。

首先,导入包:

>>> import pymunge

对凭证进行编码(创建)和解码(验证)的最简单方法 使用pymunge.encode()pymunge.decode()函数。 例如:

>>> cred = pymunge.encode(b"some payload")
>>> cred
b'MUNGE:AwQDAA...'

凭证cred现在可以发送到其他进程进行解码 (通过插座或其他IPC机制)-这是责任 在使用pymunge的程序中,pymunge不提供任何函数 做这个!出于测试的目的,您还可以将凭证导入 手工解谜程序。为了简化本教程,让我们 在同一过程中直接解码凭证:

>>> payload, uid, gid, ctx = pymunge.decode(cred)
>>> payload
b'some payload'

pymunge.decode()返回4个值:封装的负载 在凭证中,创建 凭证和咀嚼上下文。可以将此上下文检查为 获取有关凭据的其他信息:

>>> ctx.cipher_type
<CipherType.AES128: 4>
>>> ctx.encode_time
1514469923
>>> ctx.ttl
300
>>> ctx.uid_restriction
-1

(也可以尝试运行帮助(ctx)查看所有属性的列表 上下文可以有。)

可以在现有的MunGE中进行编码和解码。 上下文。这对于自定义用于 对凭证进行编码:

>>> with pymunge.MungeContext() as ctx:
>>>     ctx.uid_restriction = 0  # allow only root to decode the credential
>>>     cred = ctx.encode(b"some other payload")

类似地,mungecontext.decode()可用于 现有上下文。

基本教程到此结束。一组相似的例子 在与pymunge一起分发的文件pymunge_example.py中提供。

作者

pymunge是由nomadictype(https://github.com/nomadictype/)编写的。

许可证

版权所有(c)2017-2018 nomadictype<;nomadictype at tutanota.com>;

与libmunge一样,pymunge也拥有gpl-3和lgpl-3的双重许可。 有关详细信息,请参见license.txt。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
google chrome我在哪里可以下载Mac OSX Lion的Java 6?   java管道化hadoop映射减少作业   java避免在使用jsoup解析html时删除空格和换行符   java将arrayList中的元素相互比较   如何创建一个计算一组数字之和的程序(Java)?   java JavaFX 8 JVM在退出后保留   升华文本3升华文本3 Java交互控制台?   JAVAutil。扫描仪和维基百科   java Android在RecyclerView中更新TextClock的时间格式(12/24小时格式)   java集合,如果达到限制,则可以在添加新项之前删除旧项   hex Java将十六进制转换为带符号的8位代码   java如何使用SQL中其他列的数据?   java如何确保返回指定类型的列表?   列出如何在java中声明匿名arraylist?   在JavaSpringBoot中使用RESTXML文件   使用Java在ColdFusion中计算HMACSHA256摘要的加密