未提供项目描述
项目描述
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 |