跳转到主要内容

未提供项目描述

项目描述

globus身份映射器

《globus身份映射器》Python库提供了两个映射类,它们实现了将globus Auth Identity资源映射到应用程序或上下文特定用户名的可配置钩子

  • ExpressionIdentityMapping
  • ExternalIdentityMapping

此外,该库还提供了一个实现自定义身份映射逻辑的协议

  • IdentityMappingProtocol

大多数此库的使用者将使用映射配置文档,通过.from_mapping_document()方法实例化适当的类,然后调用.map_identity().map_identities()。这使管理员可以动态指定他们所需的映射配置,而无需编写Python代码。例如,一个简单的映射配置,使用ExpressionIdentityMapping逻辑,遵循在globus连接服务器,身份映射中记录的规则,可能是

{
  "DATA_TYPE": "expression_identity_mapping#1.0.0",
  "mappings": [
    {
      "source": "{email}", "match": "(.*)@example\\.org", "output": "{0}"
    }
  ]
}

硬编码的类实例化可能如下所示

>>> import json
>>> from globus_identity_mapping import ExpressionIdentityMapping
>>> fdata = open("example_configuration.json").read()
>>> mapping_document = json.loads(fdata)
>>> connector_id = "..."  # see the Identity Mapping Guide, linked above
>>> storage_gateway = "application-specific-identifier"
>>> mapper = ExpressionIdentityMapping.from_mapping_document(
...   mapping_document, storage_gateway=storage_gateway, connector_id=connector_id
... )

之后,可以使用mapper通过正则表达式逻辑将来自globus Auth Identity记录的email的源字段映射,以找到上下文感知的用户名。(在上面的示例中,主机名被剥离以确定特定于应用程序的用户名。)示例

>>> gair = {"id": "...", "sub": "...", "email": "billy@example.org", "name": "..."}
>>> mapper.map_identity(gair)
'billy'

对于更严重的库使用,实现者可能需要查看globus_identity_mapping.loader.load_mappers

开发

高级功能

  • 使用Poetry (pyproject.toml)
  • 使用tox
    • tox - 足以运行所有测试
    • tox -e mypy 以运行mypy
  • 首次检出时安装pre-commit的提醒:pre-commit --install

项目详情


下载文件

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

源代码分发

globus_identity_mapping-0.3.0.tar.gz (21.3 kB 查看哈希值)

上传时间 源代码

构建分发

globus_identity_mapping-0.3.0-py3-none-any.whl (26.3 kB 查看哈希值)

上传时间 Python 3

支持者