未提供项目描述
项目描述
ckanext-saml
添加了从其他来源(称为身份提供者)使用SAML2标准登录的功能。您的实例作为服务提供者。
需求
ckanext-saml 使用 python3-saml 库向身份提供者发送请求并从其返回响应。GitHub仓库可以在此处找到。您还可以在此处找到可以用于 settings.json 和 advanced_settings.json 的字段示例。
安装
要安装 ckanext-saml
-
安装额外的包(以下示例为CentOS)
yum install python3-devel xmlsec1-devel libtool-ltdl-devel -
安装扩展
pip install ckanext-saml -
将
saml添加到您的 CKAN 配置文件中的ckan.plugins设置。 -
初始化新表(如果您之前使用了ckanext-saml2,您可以跳过此步骤或确保您的数据库中存在saml2_user表)
ckan db upgrade -p saml
如果在CentOS上出现以下错误,您可能需要安装额外的软件包 - yum install libxml2-devel xmlsec1-devel xmlsec1-openssl-devel libtool-ltdl-devel
import xmlsec
SystemError: null argument to internal routine
配置
在开始配置之前,请确保您的配置设置ckan.saml_custom_base_path已设置,如果您的配置文件不在/etc/ckan/default目录中。
将ckanext-saml中的saml文件夹复制到您的CKAN配置文件所在的目录
cp -R saml_example/saml YOUR_CONFIG_DIRECTORY/saml
打开您复制的saml文件夹中的settings.json文件,以便对其进行修改。
配置主设置文件
在文件中应更新的主要部分是sp和idp
为了使内容更清晰,我们从配置idp开始
-
修改
)entityId,用从IdP发送给您的idp_metadata.xml文件(文件名可能不同)中存在的entityID填充( -
在
singleSignOnService中修改url。您可以在idp_metadata.xml的SingleSignOnService部分找到此url,它应具有Location属性,其中指定了url。 -
用
idp_metadata.xml中存在的X509Certificate修改x509cert。确保将其设置为一条单行字符串。
注意:未实现singleLogoutService。
sp(CKAN)的修改
-
用您的门户网站的域名修改
entityId。 -
在
assertionConsumerService中修改url,用您的门户网站的域名加上在末尾添加/saml/。这是IdP将发送带有用户数据的响应的URL。确保URL末尾有斜杠。
advanced_settings.json用于安全等附加配置。如果您打算向IdP提供您的SP数据,还需要修改其中的contactPerson和organization部分。
更新settings.json中提到的所有值后,在DOMAIN_NAME/saml/metadata URL处您可以找到生成的sp.xml,您可以将其提供给IdP以在他们的侧进行配置。
IdP所需的主要信息是应设置在他们的SAML应用中的AssertionConsumerService(ACS)。AssertionConsumerService应与您的settings.json和IdP应用中的设置匹配,否则可能会出现错误。
配置设置
-
ckan.saml_use_https- 当使用https发送数据时使用,将on设置为启用它。默认设置为off,使用http。 -
ckan.saml_use_nameid_as_email- 如果您希望将NameID用作用户的电子邮件地址,以避免从IdP额外声明它,则将其设置为true。默认设置为false。 -
ckan.saml_login_button_text- 提供自定义登录按钮文本的能力。默认设置为SAML 登录。 -
ckan.saml_custom_base_path- 提供搜索saml文件/文件夹的自定义路径。默认设置为/etc/ckan/default/saml。 -
ckan.saml_custom_attr_map- 用于修改映射器文件名。默认搜索mapper.py。 -
ckan.saml_use_root_path- 如果您使用ckan.root_path运行您的门户网站,则需要将其设置为true。默认设置为false。 -
ckan.saml_relaystate- 设置自定义RelayStatepath。默认设置为/dashboard。
SP元数据文件
如上所述,您可以在配置advanced_settings.json后,在DOMAIN_NAME/saml/metadata URL处找到SP元数据。此URL仅对sysadmins可访问,并以XML格式呈现。在/ckan-admin/上添加了主选项卡,该选项卡可引导到该页面。
数据加密
为了加密从身份提供者(IdP)传来的数据,请使用 advanced_settings.json 文件。在 security 部分,您可以启用对 NAMEID 和所有其他将返回给服务提供者(SP)的数据的加密。
如果您启用了以下任一选项:authnRequestsSigned、logoutRequestSigned、logoutResponseSigned、wantAssertionsEncrypted、wantNameIdEncrypted(您可以在这里找到每个选项的说明),您将需要在您的 SP 中创建x509 证书。证书应在 certs 文件夹中创建,文件应命名为 sp.crt 和 sp.key(私钥)。创建后,您的 sp.xml 将显示公钥 ds:X509Certificate,该公钥应发送给您的 IdP 以配置加密。
附加信息
ckanext-saml 有一个名为 ICKANSAML 的接口,该接口有两个钩子,可用于在登录时修改用户数据和组织成员资格逻辑。
-
after_mapping- 在用户数据映射之后,但在创建用户之前使用。 -
roles_and_organizations- 用于添加将应用于用户的组织成员资格的自定义逻辑。没有默认逻辑,因此应在使用此钩子的自定义扩展中添加。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
ckanext_saml-0.3.4.tar.gz 的哈希
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | e12d0c646c1af8a87728e389fa3e407a005d2baea8bf7b801b2cabce1dc535e7 |
|
| MD5 | 0b60abff1620b52680acc372727dadf3 |
|
| BLAKE2b-256 | b897931dde156c4120430e22c4e26c676a0a976150af5f6c06aae5f56a7dd3fb |
ckanext_saml-0.3.4-py3-none-any.whl 的哈希
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 5acb98314a6bb0b4315727c1ec259b8627517c295b1117d26c8f490d7b2aeb6a |
|
| MD5 | df487509a12f0138269b8c5d542196be |
|
| BLAKE2b-256 | 795c7414fe51f18a0675aa9adfdb22fd09cde7b965da6fb9820ce5b3a88717ce |