PHPackages                             simplemachines/forum-sso-provider - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. simplemachines/forum-sso-provider

ActiveMediawiki-extension[Authentication &amp; Authorization](/categories/authentication)

simplemachines/forum-sso-provider
=================================

An extension to MediaWiki that allows an Elkarte Forum or SMF forum to be automatically signed in if they are of the appropriate usergroup while logged into the forum.

24219[1 issues](https://github.com/SimpleMachines/smf-mw-auth/issues)PHPCI passing

Since May 24Pushed 11mo ago16 watchersCompare

[ Source](https://github.com/SimpleMachines/smf-mw-auth)[ Packagist](https://packagist.org/packages/simplemachines/forum-sso-provider)[ RSS](/packages/simplemachines-forum-sso-provider/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

This MediaWiki extension allows users in an [Elkarte Forum](https://www.elkarte.net/) or [SMF forum](https://www.simplemachines.org/) to be automatically signed in if they are of the appropriate user group while logged into the forum.

---

Branches
========

[](#branches)

BranchMediaWikiElkarteSMFmaster1.43+1.0,1.12.0,2.1mw1391.391.0,1.12.0,2.1mw1351.351.0,1.12.0,2.1Install
=======

[](#install)

Manual
------

[](#manual)

Download the repository as a zip extract to extensions/ForumSsoProvider

Git
---

[](#git)

If your MediaWiki install follows your internal git repository, you can add this as a sub-module

```
# git submodule add https://github.com/SimpleMachines/smf-mw-auth.git extensions/ForumSsoProvider

```

Composer
--------

[](#composer)

We are listed on [packagist](https://packagist.org/packages/simplemachines/forum-sso-provider) and can be installed using composer. Any changes you make to files here may be lost during updates.

```
COMPOSER=composer.local.json composer require --no-update SimpleMachines/Forum-Sso-Provider:dev-master
composer update --no-dev

```

You can also uninstall at any time

```
COMPOSER=composer.local.json composer remove --no-update SimpleMachines/Forum-Sso-Provider
composer update --no-dev

```

Configuration
=============

[](#configuration)

To use, the contents of the ForumSsoProvider directory need to be placed into extensions/ForumSsoProvider. It is then loaded using the 'new' plugin loading method in LocalSettings.php:

```
wfLoadExtension('ForumSsoProvider');

```

Required LocalSettings
======================

[](#required-localsettings)

All settings should be defined prior to calling `wfLoadExtension('ForumSsoProvider');` in your LocalSettings.php

### Path to Forum Software

[](#path-to-forum-software)

```
$wgFSPPath = '/path/to/smf/root/';

```

### Forum software. Supports smf2.0, smf2.1, elk1.0, elk1.1

[](#forum-software--supports-smf20-smf21-elk10-elk11)

```
$wgFSPSoftware = 'smf2.1';

```

Optional LocalSettings
======================

[](#optional-localsettings)

### Login Groups - Users in this group are signed into MediaWiki. SMF does not have a real group for "Regular" members; it is a pseudo group. Additionally, Local Moderators (Group ID 3) are a special group. Users are only in this group when they browse the board they were granted moderator permissions. If you do not specify this, users are granted permission to the wiki by default. If you specify this, users must be in the associated groups to have access to the wiki.

[](#login-groups---users-in-this-group-are-signed-into-mediawiki--smf-does-not-have-a-real-group-for-regular-members-it-is-a-pseudo-group--additionally-local-moderators-group-id-3-are-a-special-group--users-are-only-in-this-group-when-they-browse-the-board-they-were-granted-moderator-permissions--if-you-do-not-specify-this-users-are-granted-permission-to-the-wiki-by-default--if-you-specify-this-users-must-be-in-the-associated-groups-to-have-access-to-the-wiki)

```
$wgFSPAllowGroups = array(5);

```

### Deny Groups - Prevent users in these groups from being signed into MediaWiki; this is a deny group and takes over the login group.

[](#deny-groups---prevent-users-in-these-groups-from-being-signed-into-mediawiki-this-is-a-deny-group-and-takes-over-the-login-group)

```
$wgFSPDenyGroups = array(4);

```

### Admin Groups - Users in these groups are granted sysop access in MediaWiki.

[](#admin-groups---users-in-these-groups-are-granted-sysop-access-in-mediawiki)

```
$wgFSPAdminGroups = array(1, 2);

```

### Super Groups - Users in these groups are granted bureaucrat access in MediaWiki.

[](#super-groups---users-in-these-groups-are-granted-bureaucrat-access-in-mediawiki)

```
$wgFSPSuperGroups = array(1);

```

### Interface Groups - Users in these groups are granted interface-admin access in MediaWiki.

[](#interface-groups---users-in-these-groups-are-granted-interface-admin-access-in-mediawiki)

```
$wgFSPInterfaceGroups = array(1);

```

### Special Groups - An key-valued array of {SMF Group ID} =&gt; {MediaWiki Group Name}

[](#special-groups---an-key-valued-array-of-smf-group-id--mediawiki-group-name)

```
$wgFSPSpecialGroups = array(
	11 => 'Custom_Wiki_group',
);

```

### Ban checks - Enable checking against bans in SMF. If found, it prevents access to MediaWiki.

[](#ban-checks---enable-checking-against-bans-in-smf--if-found-it-prevents-access-to-mediawiki)

```
$wgFSPEnableBanCheck = true;

```

### Lockdown permissions to prevent new account creations/modifications.

[](#lockdown-permissions-to-prevent-new-account-creationsmodifications)

```
$wgGroupPermissions['*']['createaccount']     = false;
$wgGroupPermissions['*']['read']              = true;
$wgGroupPermissions['*']['edit']              = false;
$wgGroupPermissions['*']['createtalk']        = false;
$wgGroupPermissions['*']['createpage']        = false;
$wgGroupPermissions['*']['writeapi']          = false;
$wgGroupPermissions['user']['move']           = true;
$wgGroupPermissions['user']['read']           = true;
$wgGroupPermissions['user']['edit']           = true;
$wgGroupPermissions['user']['upload']         = true;
$wgGroupPermissions['user']['autoconfirmed']  = true;
$wgGroupPermissions['user']['emailconfirmed'] = true;
$wgGroupPermissions['user']['createtalk']     = true;
$wgGroupPermissions['user']['createpage']     = true;
$wgGroupPermissions['user']['writeapi']       = true;

```

Legacy Settings
===============

[](#legacy-settings)

These settings are used by the legacy Auth\_SMF.php.

### Uses the legacy Auth\_SMF.php LocalSettings

[](#uses-the-legacy-auth_smfphp-localsettings)

```
define('SMF_IN_WIKI', true);
$wgSMFLogin = true;

```

### Login Groups - Users in this group are signed into MediaWiki.

[](#login-groups---users-in-this-group-are-signed-into-mediawiki)

```
$wgSMFGroupID = array(2);

```

### Deny Groups - Prevent users in these groups from being signed into MediaWiki; this is a deny group and takes over the login group.

[](#deny-groups---prevent-users-in-these-groups-from-being-signed-into-mediawiki-this-is-a-deny-group-and-takes-over-the-login-group-1)

```
$wgSMFDenyGroupID = array(4);

```

### Admin Groups - Users in these groups are granted sysop access in MediaWiki.

[](#admin-groups---users-in-these-groups-are-granted-sysop-access-in-mediawiki-1)

```
$wgSMFAdminGroupID = array(1, 2);

```

### Special Groups - An key-valued array of {SMF Group ID} =&gt; {MediaWiki Group Name}

[](#special-groups---an-key-valued-array-of-smf-group-id--mediawiki-group-name-1)

```
$wgSMFSpecialGroups = array(
	11 => 'Custom_Wiki_group',
);

```

### Forum Software Cookie.

[](#forum-software-cookie)

```
$wgCookieDomain = 'domain.tld';

```

SMF Default Groups
------------------

[](#smf-default-groups)

Group IDGroup NamePost Group1AdministratorNo2Global ModeratorNo4NewbieYes5Jr. MemberYes6Full MemberYes7Sr. MemberYes8Hero MemberYesFinding your SMF Group ID
-------------------------

[](#finding-your-smf-group-id)

1. Navigate to the Admin Control Panel
2. Click on Membergroups
3. Click Modify on the group you are looking for.
4. In the address bar, you will see `group=####`, this number is the group ID.

Working with Arrays
-------------------

[](#working-with-arrays)

The configuration file uses basic PHP code.

When you have a single member for the array, you can wrap it in the array statement. $code = array(1);

If you have 2 members that need to go into the array, use a comma to separate them. $code = array(1,2);

When you have strings, wrap them in quotes. SMF coding style recommends using single quotes unless necessary. Double quotes signal the PHP parser to use special handling, which might interpret variables and other logic inside the string. This is typically not necessary in the configuration. $code = array('my string');

You may also see the shorthand square brackets to refer to arrays. $code = \['my string'\];

Extension Troubleshooting
-------------------------

[](#extension-troubleshooting)

1. Set $wgDebugLogFile in your `LocalSettings.php`:

    $wgDebugLogFile = "/some/private/path/MediaWiki.log";
2. Trigger the URL either yourself or the member you are debugging.
3. Search the file for ForumSessionProvider.
4. The messages will indicate how it is processing the authorization.

This grows quickly and uses up storage space. You can delete the file, and it will be recreated again.

Wiki Troubleshooting
--------------------

[](#wiki-troubleshooting)

MediaWiki has built-in methods for debugging it. If the extension is acting up and the debugging log is not providing information. Add the following to your `LocalSettings.php`. This should not be run in a production forum, as it may expose sensitive details

```
$wgShowExceptionDetails = true;
$wgShowSQLErrors = true;
$wgDebugDumpSql  = true;
$wgShowDBErrorBacktrace = true;

```

Remove when you are done debugging.

---

Getting New SMF Forks In
------------------------

[](#getting-new-smf-forks-in)

If you know how your fork's authentication works, feel free to submit a pull request.

Issues or changes
-----------------

[](#issues-or-changes)

If a bug has occurred, please open a new issue. If you have a change, please submit a pull request.

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance36

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community23

Small or concentrated contributor base

Maturity14

Early-stage or recently created project

 Bus Factor1

Top contributor holds 81.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/083160f6de37a762b6377f3f9522f566c64e33c6ff7081927f2b90b5b000ded1?d=identicon)[jdarwood007](/maintainers/jdarwood007)

---

Top Contributors

[![jdarwood007](https://avatars.githubusercontent.com/u/732116?v=4)](https://github.com/jdarwood007 "jdarwood007 (31 commits)")[![emanuele45](https://avatars.githubusercontent.com/u/1095308?v=4)](https://github.com/emanuele45 "emanuele45 (1 commits)")[![Fustrate](https://avatars.githubusercontent.com/u/413776?v=4)](https://github.com/Fustrate "Fustrate (1 commits)")[![jnoir](https://avatars.githubusercontent.com/u/1410343?v=4)](https://github.com/jnoir "jnoir (1 commits)")[![norv](https://avatars.githubusercontent.com/u/704999?v=4)](https://github.com/norv "norv (1 commits)")[![Oldiesmann](https://avatars.githubusercontent.com/u/89023?v=4)](https://github.com/Oldiesmann "Oldiesmann (1 commits)")[![berianwilliams](https://avatars.githubusercontent.com/u/28527703?v=4)](https://github.com/berianwilliams "berianwilliams (1 commits)")[![Rupurudu](https://avatars.githubusercontent.com/u/3107676?v=4)](https://github.com/Rupurudu "Rupurudu (1 commits)")

### Embed Badge

![Health badge](/badges/simplemachines-forum-sso-provider/health.svg)

```
[![Health](https://phpackages.com/badges/simplemachines-forum-sso-provider/health.svg)](https://phpackages.com/packages/simplemachines-forum-sso-provider)
```

###  Alternatives

[namshi/jose

JSON Object Signing and Encryption library for PHP.

1.8k99.6M101](/packages/namshi-jose)[league/oauth1-client

OAuth 1.0 Client Library

99698.8M106](/packages/league-oauth1-client)[bezhansalleh/filament-shield

Filament support for `spatie/laravel-permission`.

2.8k2.9M88](/packages/bezhansalleh-filament-shield)[gesdinet/jwt-refresh-token-bundle

Implements a refresh token system over Json Web Tokens in Symfony

70516.4M35](/packages/gesdinet-jwt-refresh-token-bundle)[league/oauth2-google

Google OAuth 2.0 Client Provider for The PHP League OAuth2-Client

41721.2M118](/packages/league-oauth2-google)[illuminate/auth

The Illuminate Auth package.

9327.3M1.0k](/packages/illuminate-auth)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
