Linux 软件免费装
Banner图

Shibboleth

开发者 michaelryanmcneill
willnorris
mitchoyoshitaka
jrchamp
dericcrago
bshelton229
Alhrath
dandalpiaz
masteradhoc
junaidkbr
更新时间 2023年11月1日 00:34
PHP版本: 5.6 及以上
WordPress版本: 6.4

标签

login authentication saml shibboleth

下载

2.3 2.4.2 2.2.2 2.4 2.4.1 2.1.1 2.2 2.2.1 1.0 1.1 1.2 1.3 1.4 1.6 1.7 1.8 1.8.1 2.0 2.0.1 2.0.2 2.1

详情介绍:

This plugin is designed to support integrating your WordPress site into your existing identity management infrastructure using a Shibboleth Service Provider. WordPress can be configured so that all standard login requests will be sent to your configured Shibboleth Identity Provider or Discovery Service. Upon successful authentication, a new WordPress account will be automatically provisioned for the user if one does not already exist. User attributes (username, first name, last name, display name, nickname, and email address) can be synchronized with your enterprise's system of record each time the user logs into WordPress. Finally, the user's role within WordPress can be automatically set (and continually updated) based on any attribute Shibboleth provides. For example, you may decide to give users with an eduPersonAffiliation value of faculty the WordPress role of editor, while the eduPersonAffiliation value of student maps to the WordPress role contributor. Or you may choose to limit access to WordPress altogether using a special eduPersonEntitlement value. Contribute on GitHub This plugin is actively maintained by michaelryanmcneill and the WordPress community, using GitHub. Contributions are welcome, via pull request, on GitHub. Issues can be submitted on the issue tracker.

安装:

Preface First and foremost, this plugin requires you to have a Shibboleth Service Provider installed and functional on your web server. This can be done many ways, but that is outside the scope of this plugin. Once you've configured the Shibboleth Service Provider, you can proceed with installing the plugin. This plugin supports both "lazy sessions" (where requireSession is set to false) and "required sessions" (where requireSession is set to true). Upon activation, the plugin will attempt to set the appropriate directives in WordPress's .htaccess file. You can prevent this from happening by defining the following wp-config.php constant: define('SHIBBOLETH_DISALLOW_FILE_MODS', true); Installation Process Visit "Plugins > Add New" Search for "Shibboleth" Activate the Shibboleth plugin from your Plugins page. Configure the plugin from the Shibboleth settings page. 或者 Upload the "shibboleth" folder to the /wp-content/plugins/ directory Activate the Shibboleth plugin from your Plugins page. Configure the plugin from the Shibboleth settings page. Troubleshooting If for some reason the plugin is unable to add the appropriate directives for Shibboleth, you can add the following to your .htaccess file. AuthType shibboleth Require shibboleth

屏幕截图:

  • Specify which Shibboleth headers map to user profile fields
  • Assign users into WordPress roles based on arbitrary data provided by Shibboleth

升级注意事项:

2.3 This update increases the minimum PHP version to 5.6 and the minimum WordPress version to 4.0. The plugin will fail to activate if you are running below those minimum versions. 2.2.2 This update re-implements a previously reverted conditional for three aliases of the Shibboleth Apache module: mod_shib, mod_shib.c, and mod_shib.cpp. If you run into issues related to this change, please open an issue on GitHub. 2.0.2 This update brings with it a major change to the way Shibboleth attributes are accessed from versions less than 2.0. For most users, no additional configuration will be necessary. If you are using a specialized server configuration, such as a Shibboleth Service Provider on a reverse proxy or a server configuration that results in environment variables being sent with the prefix REDIRECT_, you should see the changelog for additional details: https://wordpress.org/plugins/shibboleth/#developers 2.0.1 This update brings with it a major change to the way Shibboleth attributes are accessed from versions less than 2.0. For most users, no additional configuration will be necessary. If you are using a specialized server configuration, such as a Shibboleth Service Provider on a reverse proxy or a server configuration that results in environment variables being sent with the prefix REDIRECT_, you should see the changelog for additional details: https://wordpress.org/plugins/shibboleth/#developers 2.0 This update brings with it a major change to the way Shibboleth attributes are accessed. For most users, no additional configuration will be necessary. If you are using a specialized server configuration, such as a Shibboleth Service Provider on a reverse proxy or a server configuration that results in environment variables being sent with the prefix REDIRECT_, you should see the changelog for additional details: https://wordpress.org/plugins/shibboleth/#developers

常见问题:

What is Shibboleth?

From the Shibboleth Consortium:

Shibboleth is a standards based, open source software package for web single sign-on across or within organizational boundaries. It allows sites to make informed authorization decisions for individual access of protected online resources in a privacy-preserving manner.

How do I configure a Shibboleth Service Provider?

For more information on how to install the Native Shibboleth Service Provider on Linux, see this wiki article. For more information on how to install the Native Shibboleth Service Provider on other operating systems, see this wiki article. For more information on how to install Shibboleth on Nginx, see this GitHub repo. Note, we cannot provide support for installation, configuration, or troubleshooting of Shibboleth Service Provider issues.

Can I extend the Shibboleth plugin to provide custom logic?

Yes, the plugin provides a number of new actions and filters that can be used to extend the functionality of the plugin. Search shibboleth.php for occurrences of the function calls apply_filters and do_action to find them all. Then write a new plugin that makes use of the hooks. If your require additional hooks to allow for extending other parts of the plugin, please notify the plugin authors via the support forum. Before extending the plugin in this manner, please ensure that it is not actually more appropriate to add this logic to Shibboleth. It may make more sense to add a new attribute to your Shibboleth Identity Provider's attribute store (e.g. LDAP directory), or a new attribute definition to the Identity Provider's internal attribute resolver or the Shibboleth Service Provider's internal attribute extractor. In the end, the Shibboleth administrator will have to make that call as to what is most appropriate.

Can I control the plugin settings with constants in wp-config.php?

Yes, the plugin allows for all settings to be controlled via constants in wp-config.php. If set, the constant will override the value that exists in the WordPress options table. The available constants are detailed (with their available options) below:

  • SHIBBOLETH_ATTRIBUTE_ACCESS_METHOD
  • Format: string
  • Available options: 'standard' for the default "Environment Variables" option, 'redirect' for the "Redirected Environment Variables" option, and 'http' for the "HTTP Headers" option.
  • Example: define('SHIBBOLETH_ATTRIBUTE_ACCESS_METHOD', 'standard');
  • SHIBBOLETH_ATTRIBUTE_ACCESS_METHOD_FALLBACK
  • Format: boolean
  • Available options: true to fallback to the standard "Environment Variables" options when the selected attribute access method does not return results or false to not fallback.
  • Example: define('SHIBBOLETH_ATTRIBUTE_ACCESS_METHOD_FALLBACK', true);
  • SHIBBOLETH_LOGIN_URL
  • Format: string
  • Available Options: none
  • Example: define('SHIBBOLETH_LOGIN_URL', 'https://example.com/Shibboleth.sso/Login');
  • SHIBBOLETH_LOGOUT_URL
  • Format: string
  • Available Options: none
  • Example: define('SHIBBOLETH_LOGOUT_URL', 'https://example.com/Shibboleth.sso/Logout');
  • SHIBBOLETH_PASSWORD_CHANGE_URL
  • Format: string
  • Available options: none
  • Example: define('SHIBBOLETH_PASSWORD_CHANGE_URL', 'https://sso.example.com/account/update');
  • SHIBBOLETH_PASSWORD_RESET_URL
  • Format: string
  • Available options: none
  • Example: define('SHIBBOLETH_PASSWORD_RESET_URL', 'https://sso.example.com/account/reset');
  • SHIBBOLETH_SPOOF_KEY
  • Format: string
  • Available options: none
  • Example: define('SHIBBOLETH_SPOOF_KEY', 'abcdefghijklmnopqrstuvwxyz');
  • SHIBBOLETH_DEFAULT_TO_SHIB_LOGIN
  • Format: boolean
  • Available options: true to automatically default to Shibboleth login or false to not default to Shibboleth login.
  • Example: define('SHIBBOLETH_DEFAULT_TO_SHIB_LOGIN', true);
  • SHIBBOLETH_AUTO_LOGIN
  • Format: boolean
  • Available options: true to automatically login users with an existing Shibboleth session or false to not check for an existing Shibboleth session.
  • Example: define('SHIBBOLETH_AUTO_LOGIN', true);
  • SHIBBOLETH_BUTTON_TEXT
  • Format: string
  • Available options: none
  • Example: define('SHIBBOLETH_BUTTON_TEXT', 'Login with Shibboleth');
  • SHIBBOLETH_DISABLE_LOCAL_AUTH
  • Format: boolean
  • Available options: true to prevent users logging in using WordPress local authentication or false allow WordPress local authentication AND Shibboleth authentication.
  • Example: define('SHIBBOLETH_DISABLE_LOCAL_AUTH', true);
  • SHIBBOLETH_HEADERS
  • Format: array (>= PHP 5.6) OR serialized string (< PHP 5.6)
  • Available options: none
  • PHP 5.5 (and earlier) example: define( 'SHIBBOLETH_HEADERS', serialize( array( 'username' => array( 'name' => 'eppn' ), 'first_name' => array( 'name' => 'givenName', 'managed' => 'on' ), 'last_name' => array( 'name' => 'sn', 'managed' => 'on' ), 'nickname' => array( 'name' => 'eppn', 'managed' => 'off' ), 'display_name' => array( 'name' => 'displayName', 'managed' => 'off' ), 'email' => array( 'name' => 'mail', 'managed' => 'on' ) ) ) );
  • PHP 5.6 (and above) example: const SHIBBOLETH_HEADERS = array( 'username' => array( 'name' => 'eppn' ), 'first_name' => array( 'name' => 'givenName', 'managed' => 'on' ), 'last_name' => array( 'name' => 'sn', 'managed' => 'on' ), 'nickname' => array( 'name' => 'eppn', 'managed' => 'off' ), 'display_name' => array( 'name' => 'displayName', 'managed' => 'off' ), 'email' => array( 'name' => 'mail', 'managed' => 'on' ) );
  • PHP 7.0 (and above) example: define('SHIBBOLETH_HEADERS', array( 'username' => array( 'name' => 'eppn' ), 'first_name' => array( 'name' => 'givenName', 'managed' => 'on' ), 'last_name' => array( 'name' => 'sn', 'managed' => 'on' ), 'nickname' => array( 'name' => 'eppn', 'managed' => 'off' ), 'display_name' => array( 'name' => 'displayName', 'managed' => 'off' ), 'email' => array( 'name' => 'mail', 'managed' => 'on' ) ) );
  • SHIBBOLETH_CREATE_ACCOUNTS
  • Format: boolean
  • Available options: true to automatically create new users if they do not exist in the WordPress database or false to only allow existing users to authenticate.
  • Example: define('SHIBBOLETH_CREATE_ACCOUNTS', true);
  • SHIBBOLETH_AUTO_COMBINE_ACCOUNTS
  • Format: string
  • Available options: 'disallow' for the default "Prevent Automatic Account Merging" option, 'allow' for the "Allow Automatic Account Merging" option, and 'bypass' for the "Allow Automatic Account Merging (Bypass Username Management)" option.
  • Example: define('SHIBBOLETH_AUTO_COMBINE_ACCOUNTS', 'disallow');
  • SHIBBOLETH_MANUALLY_COMBINE_ACCOUNTS
  • Format: string
  • Available options: 'disallow' for the default "Prevent Manual Account Merging" option, 'allow' for the "Allow Manual Account Merging" option, and 'bypass' for the "Allow Manual Account Merging (Bypass Username Management)" option.
  • Example: define('SHIBBOLETH_MANUALLY_COMBINE_ACCOUNTS', 'disallow');
  • SHIBBOLETH_ROLES
  • Format: array (>= PHP 5.6) OR serialized string (< PHP 5.6)
  • Available options: none
  • PHP 5.5 (and earlier) example: define( 'SHIBBOLETH_ROLES', serialize( array( 'administrator' => array( 'header' => 'entitlement', 'value' => 'urn:mace:example.edu:entitlement:wordpress:admin' ), 'author' => array( 'header' => 'affiliation', 'value' => 'faculty' ) ) ) );
  • PHP 5.6 (and above) example: const SHIBBOLETH_ROLES = array( 'administrator' => array( 'header' => 'entitlement', 'value' => 'urn:mace:example.edu:entitlement:wordpress:admin' ), 'author' => array( 'header' => 'affiliation', 'value' => 'faculty' ) );
  • PHP 7.0 (and above) example: define('SHIBBOLETH_ROLES', array( 'administrator' => array( 'header' => 'entitlement', 'value' => 'urn:mace:example.edu:entitlement:wordpress:admin' ), 'author' => array( 'header' => 'affiliation', 'value' => 'faculty' ) ) );
  • SHIBBOLETH_DEFAULT_ROLE
  • Format: string
  • Available options: All available WordPress roles. The defaults are 'administrator', 'subscriber', 'author', 'editor', and 'contributor'. Leave this constant empty '' to make the default no allowed access.
  • Example: define('SHIBBOLETH_DEFAULT_ROLE', 'subscriber');
  • SHIBBOLETH_UPDATE_ROLES
  • Format: boolean
  • Available options: true to automatically use Shibboleth data to update user role mappings each time the user logs in or false to only update role mappings when a user is initally created.
  • Example: define('SHIBBOLETH_UPDATE_ROLES', true);
  • SHIBBOLETH_LOGGING
  • Format: array (>= PHP 5.6) OR serialized string (< PHP 5.6)
  • Available options: account_merge, account_create, auth, role_update
  • PHP 5.5 (and earlier) example: define( 'SHIBBOLETH_LOGGING', serialize( array( 'account_merge', 'account_create', 'auth', 'role_update' ) ) );
  • PHP 5.6 (and above) example: const SHIBBOLETH_LOGGING = array( 'account_merge', 'account_create', 'auth', 'role_update' );
  • PHP 7.0 (and above) example: define('SHIBBOLETH_LOGGING', array( 'account_merge', 'account_create', 'auth', 'role_update' ) );
  • SHIBBOLETH_DISALLOW_FILE_MODS
  • Format: boolean
  • Available options: true to disable the Shibboleth plugin from attempting to add .htaccess directives or false to allow the Shibboleth plugin to add the necessary .htaccess directives.
  • Example: define('SHIBBOLETH_DISALLOW_FILE_MODS', true);

更新日志:

version 2.4.3 (2023-10-31) version 2.4.2 (2023-04-07) version 2.4.1 (2023-03-20) version 2.4 (2021-08-27) version 2.3 (2020-08-17) version 2.2.2 (2020-06-22) version 2.2.1 (2020-06-18) version 2.2 (2020-06-17) version 2.1.1 (2018-05-16) version 2.1 (2018-05-16) version 2.0.2 (2018-01-17) version 2.0.1 (2018-01-17) version 2.0 (2018-01-16) version 1.8.1 (2017-09-08) version 1.8 (2017-08-23) The Shibboleth plugin is now being maintained by michaelryanmcneill. Contributions are welcome on GitHub! version 1.7 (2016-03-20) version 1.6 (2014-04-07) version 1.5 (2012-10-01) version 1.4 (2010-08-30) version 1.3 (2009-10-02) version 1.2 (2009-04-21) version 1.1 (2009-03-16) version 1.0 (2009-03-14) version 0.1