ubccr / simplesamlphp-module-authglobus
SimpleSAMLphp 的 Globus 认证模块。
Requires
Requires (Dev)
- simplesamlphp/simplesamlphp: ^1.14
- squizlabs/php_codesniffer: 2.8.0
This package is auto-updated.
Last update: 2024-09-11 04:11:15 UTC
README
SimpleSAMLphp 的 Globus 认证模块
概述
这是一个 SimpleSAMLphp 的扩展,允许您通过 SimpleSAMLPHP 配置使用芝加哥大学的 Globus 项目 进行认证。它最初是为布法罗大学计算研究中心的 XDMoD 项目 设计的,但编写得足够通用和可重用。
设置
自动
如果您使用 Composer,安装模块就像这样简单
'composer require ubccr/simplesamlphp-module-authglobus 1.*'
从头开始
首先,像往常一样 安装 SimpleSAMLphp。然后,将 modules/ 目录的内容复制到您自己的 modules 目录中。将 default-disable 重命名为 default-enable。将 config-templates/ 中的配置追加到您自己的配置文件中。
运行 Globus 认证
您首先需要在 Globus Auth 中正确 注册您的应用程序。之后,转到您的 SimpleSAML 配置,并在 authsources.php 中填写 'globus' 模块信息,如下所示
'key': The client ID value you were provided when you registered your application,
'secret': The client secret. As per the documentation, make sure you save this. YOU CAN ONLY SEE IT ONCE!!!
'scope': You should have these set up within your Globus App registry.
'response_type': This should always be set to 'code'.
'redirect_uri': Should always be the linkback.php file + your endpoint. A la 'https://fakeaddress.buffalo.edu/simplesaml/module.php/globus/linkback.php'
将 Globus 认证作为外部 IDP 运行
像平常一样设置您的 SAML SP(参见我们的 LDAP 认证指南 以获得类似示例),将 'globus-idp' 作为身份提供者。创建一个自签名的 SSL 证书并将其放置在证书文件夹中。然后,您需要确保您配置 globus-idp 元数据如下
文件:saml20-idp-hosted.php
$metadata['globus-idp'] = array(
/*
* The hostname for this IdP. This makes it possible to run multiple
* IdPs from the same configuration. '__DEFAULT__' means that this one
* should be used by default.
*/
'host' => '__DEFAULT__',
/*
* The private key and certificate to use when signing responses.
* These are stored in the cert-directory.
*/
'privatekey' => '[[YOUR_PRIVATE_KEY]].pem',
'certificate' => '[[YOUR_PRIVATE_CERT]].crt',
/*
* The authentication source which should be used to authenticate the
* user. This must match one of the entries in config/authsources.php.
*/
'auth' => 'globus'
);
文件:saml20-idp-remote.php
$metadata['globus-idp'] = array (
'metadata-set' => 'saml20-idp-remote',
'entityid' => 'globus-idp',
'SingleSignOnService' =>
array (
0 =>
array (
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
'Location' => 'https://your.endpoint/simplesaml/saml2/idp/SSOService.php',
),
),
'SingleLogoutService' =>
array (
0 =>
array (
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
'Location' => 'https://your.endpoint/simplesaml/saml2/idp/SingleLogoutService.php',
),
),
'keys' =>
array (
0 =>
array (
'encryption' => true,
'signing' => true,
'type' => 'CERTTYPE',
'CERTTYPE' => '...',
),
1 =>
array (
'encryption' => true,
'signing' => true,
'type' => 'CERTTYPE',
'CERTTYPE' => '...',
),
),
'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient',
);
建议、错误修复、反馈
尽管此模块在 XDMoD 项目中使用,但它不是作为整体项目的一部分官方支持或维护的。与 XDMoD 支持相关的有关此模块的工单无法获得支持,并且可能不会得到回复。欢迎拉取请求,但鉴于其他团队优先事项,周转可能不稳定。
有关反馈、评论、请求,请联系作者/维护者,Rudra Chakraborty。
有关 SimpleSAMLphp 或 Globus Auth 的特定问题,请联系这些项目的开发者,我们无法为他们提供支持。与 XDMoD 相关但与此模块无关的问题应通过官方 XDMod 支持渠道提交。