safire-ac-za / simplesamlphp-module-entattribs
SimpleSAMLphp 模块,用于将元数据中的实体属性转换为属性
Requires
- php: ^8.0
- simplesamlphp/assert: ^0.8.0 || ^1.0.0
Requires (Dev)
- simplesamlphp/simplesamlphp: >=2.0.0 <2.3.0
- simplesamlphp/simplesamlphp-test-framework: ^1.5.1
This package is auto-updated.
Last update: 2024-09-05 06:33:21 UTC
README
此 SimpleSAMLphp 身份验证处理过滤器允许您基于元数据中的实体属性提供额外的属性。当实体元数据包含您希望转换为 SAML 属性的确切信息时,这很有用(例如,一个包含用于 schacHomeOrganization 的值的实体属性,在远程 IdP 元数据中)。
安装
安装 SimpleSAMLphp 后,安装此模块非常简单。只需在 SimpleSAMLphp 安装根目录中执行以下命令:
composer.phar require safire-ac-za/simplesamlphp-module-entattribs:dev-master
其中 dev-master
指示 Composer 从 Git 存储库安装 master
(开发)分支。如果您想使用模块的稳定版本,请查看可用的 版本。
用法
此模块提供了 entattribs:AttributeFromEntity 身份验证处理过滤器,可按以下方式使用:
50 => [ 'class' => 'entattribs:AttributeFromEntity', '%replace', 'urn:x-example:schacHomeOrganization' => 'schacHomeOrganization', 'urn:x-example:schacHomeOrganizationType' => 'schacHomeOrganizationType', ],
其中参数如下:
-
class
- 类名,必须是 entattribs:AttributeFromEntity -
%replace
- 用实体属性替换任何现有 SAML 属性的值。默认情况下,除非设置%ignore
,否则将创建一个多值属性。 -
%ignore
- 忽略任何已存在的 SAML 属性。默认情况下,除非设置%replace
,否则将创建一个多值属性。 -
%skipsource
- 不要在源元数据中查找实体属性。默认情况下,检查源元数据。 -
%skipdest
- 不要在目标元数据中查找实体属性。默认情况下,检查目标元数据。
任何剩余的键值对都用于在实体属性名称(键)和要使用的相应 SAML 属性名称(值)之间形成映射。
%replace
和 %ignore
参数旨在互斥使用,同时使用它们将生成警告。
示例
如果将上述过滤器应用于以下远程 IdP 元数据之后
$metadata['https://idp.example.org/idp/shibboleth'] = [ /* ... */ 'EntityAttributes' => [ 'urn:x-example:schacHomeOrganization' => 'example.org', 'urn:x-example:schacHomeOrganizationType' => 'urn:schac:homeOrganizationType:int:other', ], /* ... */ ];
则会导致以下属性
$attributes = [ 'schacHomeOrganization' => 'example.org', 'schacHomeOrganizationType' => 'urn:schac:homeOrganizationType:int:other', ];
并且这两个属性的现有值将被丢失/替换。