密码工具包 / simplesamlphp-module-hubandspoke
SimpleSAMLphp的Hub & Spoke联合体工具
dev-master
2016-04-13 14:11 UTC
Requires
This package is not auto-updated.
Last update: 2024-09-11 23:59:44 UTC
README
## SimpleSAMLphp的Hub & Spoke工具
## TargetedID
为eduPersonTargetedId属性生成一个或多个值的一种灵活方式。
hubandspoke:TargetedID 是 SimpleSAMLphp 的一个 认证处理过滤器,基于 Olav Morken,UNINETT AS 的 core:TargetedID。
此过滤器使用以下方式为 eduPersonTargetedID 属性生成一个或多个值:
- 一个属性来标识认证的 用户
- (可选)一个值来标识请求认证的 SP
- (可选)一个值来标识 IdP
- (可选)用于结果散列的固定随机值
- 一个 哈希 算法
配置允许
- 设置备选属性(按优先级顺序)来标识用户
- 设置备选属性(按优先级顺序)来标识目标
- 设置备选属性(按优先级顺序)来标识IdP
- 转换目标标识符
- 过滤SP和/或用户(只为匹配的实体发送值)
阅读文档以查看所有选项。
### 配置示例
- 具有一个独特 标准 值的 eduPersonTargetedId
'authproc' => array( 50 => 'hubandspoke:TargetedID', ),
sha256(userID + '@@' + targetID + '@@' + sourceID)
- 使用 盐 混淆的 eduPersonTargetedId
'authproc' => array( 50 => array( 'class' => 'hubandspoke:TargetedID', 'salt' => 'randomString', ), ),
sha256(salt + '@@' + userID + '@@' + targetID + '@@' + sourceID + '@@' + salt)
- 具有不同 公式 的 eduPersonTargetedId
'authproc' => array( 50 => array( 'class' => 'hubandspoke:TargetedID', 'userID' => 'Attributes/mail', 'fields' => array('salt', 'userID', 'targetID'), 'salt' => 'randomString', ), ),
sha256(salt + '@@' + mail + '@@' + targetID)
- 具有 两个 值的 eduPersonTargetedId
'authproc' => array( 50 => array( 'class' => 'hubandspoke:TargetedID', 'salt' => 'randomString', 'values' => array( 'new' => array( 'fieldSeparator' => '//', ), 'old' => array( 'hashFunction' => 'md5', 'fields' => array('userID'), ), ), ), ),
sha256(salt + '//' + userID + '//' + targetID + '//' + sourceID + '//' + salt)
md5(userID)
- 具有两个值的前缀 前缀
- 其中之一仅针对特定SP(http://*.example.com)
- 另一个适用于所有SP,但考虑到相同的SP所有URL https://*.blogs.example.com(相同的eduPersonTargetedId)
'authproc' => array( 50 => array( 'class' => 'hubandspoke:TargetedID', 'salt' => 'randomString', 'values' => array( 'new' => array( 'prefix' => '{new}', 'targetTransform' => array( '#^(https?://)[^./]+\.(blogs\.example\.com)(/|$).*$#' => '$1$2/', ), ), 'old' => array( 'prefix' => '{old}', 'hashFunction' => 'md5', 'userID' => array('Attributes/mail', 'UserID'), 'fields' => 'userID', 'ifTarget' => '#^https?://([^./]+\.)*example\.com(/|$)#', ), ), ), ),
'{new}' + sha256(salt + '@@' + userID + '@@' + targetID* + '@@' + sourceID + '@@' + salt)
'{old}' + md5(userID) only for *.example.com