{"id":202110,"date":"2024-12-17T21:37:26","date_gmt":"2024-12-17T21:37:26","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/scouting-openid-connect\/"},"modified":"2026-02-16T20:51:59","modified_gmt":"2026-02-16T20:51:59","slug":"scouting-openid-connect","status":"publish","type":"plugin","link":"https:\/\/szl.wordpress.org\/plugins\/scouting-openid-connect\/","author":21097494,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.3.0","stable_tag":"2.3.0","tested":"6.9.4","requires":"6.6.0","requires_php":"8.2","requires_plugins":null,"header_name":"Scouting OpenID Connect","header_author":"Job van Koeveringe","header_description":"WordPress plugin for logging in with Scouting Nederland OpenID Connect Server.","assets_banners_color":"007633","last_updated":"2026-02-16 20:51:59","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/Scouting-nl\/scouting-openid-connect","header_author_uri":"https:\/\/jobvankoeveringe.com?utm_source=wordpress&utm_medium=plugin&utm_campaign=scouting_oidc","rating":5,"author_block_rating":0,"active_installs":10,"downloads":1216,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"scoutingnederland","date":"2024-12-17 21:39:43"},"1.0.1":{"tag":"1.0.1","author":"scoutingnederland","date":"2025-05-22 20:30:08"},"1.0.2":{"tag":"1.0.2","author":"scoutingnederland","date":"2025-05-22 20:30:08"},"1.1.0":{"tag":"1.1.0","author":"scoutingnederland","date":"2025-06-23 20:21:45"},"1.2.0":{"tag":"1.2.0","author":"scoutingnederland","date":"2025-09-14 20:13:23"},"2.0.0":{"tag":"2.0.0","author":"scoutingnederland","date":"2025-10-22 22:39:49"},"2.0.1":{"tag":"2.0.1","author":"scoutingnederland","date":"2025-10-22 22:39:49"},"2.1.0":{"tag":"2.1.0","author":"scoutingnederland","date":"2025-12-02 21:35:16"},"2.2.0":{"tag":"2.2.0","author":"scoutingnederland","date":"2026-02-10 00:20:27"},"2.3.0":{"tag":"2.3.0","author":"scoutingnederland","date":"2026-02-16 20:51:59"}},"upgrade_notice":{"2.0.0":"<p>\u26a0\ufe0f <code>Breaking Changes<\/code><\/p>\n\n<p>This release introduces a major change in how WordPress users are identified.<br \/>\nThe WordPress <code>UserName<\/code> now uses the <code>SOL ID<\/code> instead of the <code>SOL UserName<\/code>.<\/p>\n\n<p>Use version <code>2.0.1<\/code> for backward compatibility with version <code>1.2.0<\/code>.<\/p>","1.0.0":"<ul>\n<li>Initial release<\/li>\n<\/ul>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3208785,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3208785,"resolution":"256x256","location":"assets","locale":""},"icon.svg":{"filename":"icon.svg","revision":3208785,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3208785,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3208785,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.1.0","1.2.0","2.0.0","2.0.1","2.1.0","2.2.0","2.3.0"],"block_files":[],"assets_screenshots":{"screenshot-1-en.png":{"filename":"screenshot-1-en.png","revision":3209511,"resolution":"1","location":"assets","locale":"en"},"screenshot-1-nl.png":{"filename":"screenshot-1-nl.png","revision":3209511,"resolution":"1","location":"assets","locale":"nl"},"screenshot-1.png":{"filename":"screenshot-1.png","revision":3209511,"resolution":"1","location":"assets","locale":""},"screenshot-2-en.png":{"filename":"screenshot-2-en.png","revision":3462887,"resolution":"2","location":"assets","locale":"en"},"screenshot-2-nl.png":{"filename":"screenshot-2-nl.png","revision":3462887,"resolution":"2","location":"assets","locale":"nl"},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3462887,"resolution":"2","location":"assets","locale":""},"screenshot-3-en.png":{"filename":"screenshot-3-en.png","revision":3462887,"resolution":"3","location":"assets","locale":"en"},"screenshot-3-nl.png":{"filename":"screenshot-3-nl.png","revision":3462887,"resolution":"3","location":"assets","locale":"nl"},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3462887,"resolution":"3","location":"assets","locale":""},"screenshot-4-en.png":{"filename":"screenshot-4-en.png","revision":3462887,"resolution":"4","location":"assets","locale":"en"},"screenshot-4-nl.png":{"filename":"screenshot-4-nl.png","revision":3462887,"resolution":"4","location":"assets","locale":"nl"},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3462887,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"Login Page","2":"Settings Page","3":"Shortcode Page","4":"Support Page"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[162353,43290,55128,72565,72566],"plugin_category":[],"plugin_contributors":[235926],"plugin_business_model":[],"class_list":["post-202110","plugin","type-plugin","status-publish","hentry","plugin_tags-oidc","plugin_tags-openid-connect","plugin_tags-scouting","plugin_tags-scouting-nederland","plugin_tags-sol","plugin_contributors-jobvk","plugin_committers-jobvk","plugin_committers-scoutingnederland"],"banners":{"banner":"https:\/\/ps.w.org\/scouting-openid-connect\/assets\/banner-772x250.png?rev=3208785","banner_2x":"https:\/\/ps.w.org\/scouting-openid-connect\/assets\/banner-1544x500.png?rev=3208785","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/scouting-openid-connect\/assets\/icon.svg?rev=3208785","icon":"https:\/\/ps.w.org\/scouting-openid-connect\/assets\/icon.svg?rev=3208785","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/scouting-openid-connect\/assets\/screenshot-1.png?rev=3209511","caption":"Login Page"},{"src":"https:\/\/ps.w.org\/scouting-openid-connect\/assets\/screenshot-2.png?rev=3462887","caption":"Settings Page"},{"src":"https:\/\/ps.w.org\/scouting-openid-connect\/assets\/screenshot-3.png?rev=3462887","caption":"Shortcode Page"},{"src":"https:\/\/ps.w.org\/scouting-openid-connect\/assets\/screenshot-4.png?rev=3462887","caption":"Support Page"}],"raw_content":"<!--section=description-->\n<p>A WordPress plugin for logging in with Scouting Nederland OpenID Connect Server.<\/p>\n\n<p>This plugin allows users to authenticate and login to their WordPress websites using their Scouting Nederland OpenID Connect credentials.\nIt provides a secure and convenient way for Scouting Nederland members to access their WordPress sites without the need for separate login credentials. \nWith this plugin, users can seamlessly integrate their Scouting Nederland accounts with their WordPress websites, enhancing the user experience and simplifying the login process.<\/p>\n\n<!--section=installation-->\n<p>Make sure you have the role <code>webmaster<\/code> in <a href=\"https:\/\/mijn.scouting.nl\">mijn.scouting.nl<\/a>.<\/p>\n\n<ol>\n<li>Go to <a href=\"https:\/\/login.scouting.nl\">https:\/\/login.scouting.nl<\/a>, click on <code>Managed websites<\/code> and click on <code>Add OpenID Connect connection<\/code>.<\/li>\n<li>Add the name of your group\/website.<\/li>\n<li>Add the Redirect URI, for example: https:\/\/example.com\/.<\/li>\n<li>Add the Post Logout Redirect URI, for example: https:\/\/example.com\/.<\/li>\n<li>Select the scopes you want to use. The <code>Email<\/code>, <code>Personal<\/code> and <code>Membership<\/code> scopes are required; \\\nThe <code>Address<\/code>, <code>Phone number<\/code> scope is optional. \\\nCurrently the <code>Parents\/guardians<\/code> scope is not supported.<\/li>\n<li>Select the organizations that can log in. \\\nIf your organization has sub-organizations, you can also select <code>Allow suborganizations.<\/code><\/li>\n<li>Select to use the PKCE (code challenge).<\/li>\n<li>Press <code>Add Website<\/code>.<\/li>\n<li>Find the website you just created and click on \u24d8.<\/li>\n<li>Copy the Client ID, Client secret, and the scopes to your website.<\/li>\n<li>Fill in the OpenID Connect Settings with the copied data. Make sure the required scopes are present:\n\n<ul>\n<li><code>openid<\/code> (Required)<\/li>\n<li><code>membership<\/code> (Required)<\/li>\n<li><code>profile<\/code> (Required)<\/li>\n<li><code>email<\/code> (Required)<\/li>\n<li><code>address<\/code> (Optional)<\/li>\n<li><code>phone<\/code> (Optional)<\/li>\n<\/ul><\/li>\n<li>Fill in the General Settings.<\/li>\n<li>Press <code>Save Settings<\/code>.<\/li>\n<li>Log out and try to log in with the Scouts Login button.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20to%20be%20part%20of%20scouting%20nederland%20to%20use%20this%3F\"><h3>Do i need to be part of Scouting Nederland to use this?<\/h3><\/dt>\n<dd><p>Yes, the OpenID Connect server is used to identify people and only allows access when they are members of the appropriate organization within Scouting Nederland.\nTo set up the system at Scouting Nederland, you need webmaster privileges for your scouting group.<\/p><\/dd>\n<dt id=\"are%20there%20settings%20for%20this%20plugin%3F\"><h3>Are there settings for this plugin?<\/h3><\/dt>\n<dd><p>Yes, there is a settings page where you can set up a redirect after login, configure the name the user gets in their profile, and enforce that.<\/p><\/dd>\n<dt id=\"can%20roles%20also%20be%20imported%20into%20wordpress%20from%20sol%3F\"><h3>Can roles also be imported into WordPress from SOL?<\/h3><\/dt>\n<dd><p>Currently not, but this is planned for a future update of this plugin.<\/p><\/dd>\n<dt id=\"can%20my%20parents%20or%20guardian%20also%20sign%20in%3F\"><h3>Can my parents or guardian also sign in?<\/h3><\/dt>\n<dd><p>Currently not, but this is planned for a future update of this plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.3.0<\/h4>\n\n<ul>\n<li>Added a settings option to define how duplicated emails should be handled: plus addressing or return an error.<\/li>\n<li>When sending an email via WordPress, the plus addressing is removed so the user does not see it.<\/li>\n<li>Fixed fallback conditions for phone and address fields in WooCommerce.<\/li>\n<li>Added a custom hook for new user registration: <code>scouting_oidc_user_register<\/code>.<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Add support for <code>phone<\/code> and <code>address<\/code> scopes to store phone number and address data in user profiles.<\/li>\n<li>Require PKCE (Proof Key for Code Exchange) to be configured in OIDC.<\/li>\n<li>Update default scopes to include <code>address<\/code> and <code>phone<\/code> in addition to existing scopes.<\/li>\n<li>Add WooCommerce integration to automatically sync user data (name, phone, address) to WooCommerce billing and shipping fields.<\/li>\n<li>Hide phone and address fields from user profile when WooCommerce is active to prevent duplication.<\/li>\n<li>Improve user profile field rendering with <code>readonly<\/code> instead of <code>disabled<\/code> for better accessibility.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Tested up to: <code>6.9<\/code><\/li>\n<li>Add logout redirect host allowlist handling in <code>scouting_oidc_auth_logout_redirect()<\/code> to permit external logout URLs.<\/li>\n<li>Clear user cache after username updates (<code>clean_user_cache<\/code>) to avoid stale user data.<\/li>\n<li>Trigger core <code>wp_login<\/code> and plugin-specific <code>scouting_oidc_wp_login<\/code> actions when programmatically logging in.<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Make upgrading from <code>1.2.0<\/code> to <code>2.0.0<\/code> backwards compatible.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Use version <code>2.0.1<\/code> instead for backward compatibility with version <code>1.2.0<\/code>.<\/li>\n<li><code>membership<\/code> scope is now required to obtain the SOL Member ID.<\/li>\n<li><code>infix<\/code> is removed from user this was conflicting with WooCommerce, the infix is now added before the last name.<\/li>\n<li>Removed the <code>prefix<\/code> field from the general settings.<\/li>\n<li>Removed the SOL ID field profile this is now the UserName of the WordPress User. <\/li>\n<li>Improved error messages and redirects for missing or invalid user data or OIDC scopes.<\/li>\n<li>Updated setup and support documentation to reflect the new identification model.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Add custom redirect option for successful login.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Add option to redirect only SOL users.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Tested plugin up to WordPress 6.7.2 =&gt; 6.8.0<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed hook wp_login<\/li>\n<li>Tested plugin up to WordPress 6.7.1 =&gt; 6.7.2<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"WordPress plugin for logging in with Scouting Nederland OpenID Connect Server.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/202110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=202110"}],"author":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/scoutingnederland"}],"wp:attachment":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=202110"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=202110"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=202110"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=202110"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=202110"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=202110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}