informaticauco/simplesamlphp-module-ucofilter

一个用于过滤我们自己的属性的SimpleSAMLphp模块

安装: 126

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 0

开放问题: 0

类型:simplesamlphp-module

0.5.0 2020-03-19 12:29 UTC

This package is auto-updated.

Last update: 2024-09-19 23:10:14 UTC


README

此模块可以使用Symfony组件中的ExpressionLanguage来添加或更改属性。

需求

  • PHP>=5.5

安装

安装可以简单到执行以下命令

bash$ composer require informaticauco/simplesamlphp-module-ucofilter

用法

从任何支持过滤器(身份验证处理过滤器authproc)的实体,我们可以这样使用此模块

<?php

use SimpleSAML\Modules\UcoFilter\Auth\Process\UcoFilter;

$config = array(
    // ...
    
    50 => array(
        'class' => UcoFilter::class,
        // (Optional) This filter only is executed is almost one rule is true
        // Default -> 'rules' => ['true']
        'rules' => [
            '"sp-remote-id" in request["saml:RequesterID"]',
        ],
        // (Optional) Reset the next attributes before to add new values
        // Default -> 'reset' => []
        'reset' => [
            'eduPersonPrincipalName',
        ],
        // (Required) Create new attributes
        'mapping' => array (
            // Concatenation example without rules
            // firstName, middleName and lastName exists in Attributes.
            'commonName' => 'firstName[0]~" "~middleName[0]~" "~lastName[0]',
            
            // Multiple attributes
            'eduPersonPrincipalName' => [
                'uid[0]',  
                'mail[0]',
                'commonName[0]' // previous attributes are available
            ],
            
            // Complete syntax with rules
            'groups' => [
                // value expression => rule expression
                // value only is added if the rule is true
                '"staff"' => 'in_attribute(attributes["uid"], ["username1", "username2])',
                '"guest"', // always true
                '"student"' => 'attributes["uid"][0] matches "/^alum\d+/"',
            ],
        ),
    ),
    // ...    
);

ExpressionLanguage参考

函数

这些方法在表达式内可用

  • string md5(string):调用PHP md5方法
  • string sha1(string):调用PHP sha1方法
  • bool in_attribute(array, array):搜索第一个数组中的元素是否存在于第二个数组中。用于检查属性是否有值。

变量

值表达式接收所有请求属性作为变量。例如:$request['Attributes']['uid']将作为表达式内的uid变量访问。请记住,所有属性都是数组。

规则表达式有三个变量

  • request:完整的请求
  • attributes:仅属性
  • value:如果规则为真,将被分配的值

语法

要查看表达式语言组件支持的完整语法,请参阅
官方文档网站.