Extension:CentralAuth
CentralAuth, birden fazla mevcut ayrı hesap sisteminin tek bir küresel hesap sisteminde birleştirilmesine olanak tanır.
Kurulum
CentralAuth'u kullanmanın ön koşulları için aşağıdaki kurulum bölümüne bakın. Ardından, CentralAuth'u etkinleştirmeye hazır olduğunuzda şu talimatları izleyin:
- Install Extension:AntiSpoof , since it is a required dependency.
- En son anlık görüntüyü indirin ve onu
extensions
dizininize çıkartın. - # Bir veritabanı seçin ve CentralAuth veritabanı tablolarını oluşturun. Mevcut bir veritabanını kullanabilir veya yeni bir tane oluşturabilirsiniz; uzantı varsayılan olarak $1 adlı bir veritabanı kullanır (aşağıdaki $2 bakın). (The extension by default uses the wiki's local database, which is convenient for automated testing but doesn't really make sense on a real wiki farm (as it will be different for every wiki, but the point of CentralAuth is sharing data between wikis) so you'll need to reconfigure that; see
$wgVirtualDomainsMapping['virtual-centralauth']
below.) Bu veritabanını kullanın ve ardındantables-generated.sql
çalıştırın.- Extension:AntiSpoof kullanırsanız, küresel bir
spoofuser
tablosu oluşturmanız gerekir (herhangi bir vikideki mevcut kullanıcı adlarına benzer görünen yeni kullanıcı adlarını engellemek için). Bunu yapmanın bir yolu,spoofuser
tablosunu yerel viki veritabanından atmak ve yeni$wgVirtualDomainsMapping['virtual-centralauth']
aktarmaktır.
- Extension:AntiSpoof kullanırsanız, küresel bir
- Vikilerinizin her biri için
wfLoadExtension( 'CentralAuth' );
içinde bulunan başka bir PHP dosyasına LocalSettings.php ekleyin. - Uzantı şimdi aktif olmalıdır.
Create a new database
Burada, merkezi kimlik veritabanı oluşturmak, sahte kullanıcı tablosunu buna kopyalamak ve mevcut kullanıcı verilerini ona taşımak için örnek kabuk ve SQL komutları verilmiştir. $wgDBname ve $wgDBuser kendi viki kurulumunuzun değerleriyle değiştirin.
Yeni veritabanı oluşturun (Bu adımın seçenek olduğunu unutmayın, bunun yerine mevcut veritabanlarınızdan birini kullanabilirsiniz, bu durumda tablo oluşturma adımına atlayın):
$ cd extensions/CentralAuth
$ mysql -u root -p
(enter password for root SQL user)
CREATE DATABASE centralauth;
USE centralauth;
GRANT all on centralauth.* to '$wgDBuser'@'localhost';
quit
Run maintenance scripts
Aşağıda, mevcut çalışma dizininizin MediaWiki kurulumunuz olduğu varsayılır (CentralAuth dizininiz değil).
Merkezi kimlik doğrulama tablolarını oluşturun (sql.php
kullanılması tercih edilir.
php maintenance/run.php sql --wikidb centralauth extensions/CentralAuth/schema/<db_type>/tables-generated.sql
AntiSpoof kuruluysa, tabloyu şu yolla oluşturun (Alternatif olarak, önceki girişleri saklamak istiyorsanız mevcut bir AntiSpoof tablosunu kopyalayabilirsiniz):
php maintenance/run.php sql --wikidb centralauth extensions/AntiSpoof/sql/<db_type>/tables-generated.sql
Kullanıcı taşıma betiklerini çalıştırın
$ php maintenance/run.php CentralAuth:migratePass0.php
$ php maintenance/run.php CentralAuth:migratePass1.php
Upgrading
CentralAuth is designed for large wiki farms who run database updates manually in order to enable zero-downtime upgrades. For that reason, the CentralAuth database will not be updated with the usual upgrade process. Third-party users are expected to follow CentralAuth development and apply database migrations manually instead.
Kurulum
Öncelikle, viki çiftliğinizi $wgConf
kullanarak yapılandırmanız gerekir, aksi takdirde CentralAuth viki çiftliğiniz için kullanılamaz.
Bu, $wgLocalDatabases
ayarlamayı ve bunu $wgConf->wikis
ve $wgConf->settings
ile atamayı içerir (minimum $wgCanonicalServer
, $wgServer
ve $wgArticlePath
).
Örnekleri dikkatlice izleyin.
Yeni bir viki ailesi oluşturuyorsanız, her gruptaki viki veritabanlarının aynı son eke sahip olmasının daha kolay olabileceğini unutmayın (örneğin, aynı gruba ait vikilerle ilgili varsayımsal veritabanları enwiki
, dewiki
, frwiki
, vb. grup, tümü "wiki
" sonekine sahiptir).
Uzantıyı kurduktan sonra, CentralAuth veritabanında bazı veriler toplamanız gerekir. Geriye dönük olarak küresel hesaplar kurmak için, migratePass0.php ve migratePass1.php betiklerini çalıştırmanız gerekecektir. İlki, CentralAuth veritabanında cikilerinizle ilgili bilgileri depolar, ikincisi ise küresel hesaplar oluşturmak için otomatik geçiş buluşsal yöntemlerini kullanır. Bir kullanıcı, hesaplarını Special:MergeAccount üzerinden elle birleştirebilir. Kuru çalışmalar test amacıyla kullanılabilir.
Küresel grupları etkinleştirmek için, CentralAuth veritabanınızdaki global_group_permissions
tablosuna ggp_group='steward'
ve (grup yönetimi arayüzüne erişim için) ggp_permission=globalgrouppermissions
ile bir oturum açmanız gerekecektir.
Kullanılması önerilen örnek bir sorgu şudur:
INSERT INTO global_group_permissions (ggp_group,ggp_permission) VALUES ('steward','globalgrouppermissions'), ('steward','globalgroupmembership');
Then, promote some users into stewards:
INSERT IGNORE INTO global_user_groups (gug_user, gug_group) VALUES ((SELECT gu_id FROM globaluser WHERE gu_name='Admin'), 'steward');
CentralAuth.php olarak listelenen, değiştirmek isteyebileceğiniz çeşitli ayarlar vardır (ör. tüm bir etki alanında tek oturum açma sağlayıp sağlamaması).
Özellikle, CentralAuth veritabanınız $2 dışında bir ad verilmişse $wgVirtualDomainsMapping['virtual-centralauth']
varsayılan değerini geçersiz kılmak isteyeceksiniz.
Bu tür ayarları LocalSettings.php
içindeki wfLoadExtension
satırından sonra koyduğunuzdan emin olun, örneğin:
wfLoadExtension( 'CentralAuth' );
$wgVirtualDomainsMapping['virtual-centralauth'] = [ 'db' => 'centralauth' ];
"SUL2" davranışı
Temmuz 2013'te WMF, kullanıcıları birden çok vikiye kaydetme yaklaşımını değiştirdi.
Bu yeni yaklaşım için yapılandırıldığında, başarılı oturum açma ve hesap oluşturma işleminden sonra CentralAuth bir "merkezi oturum açma vikisi" üzerinde Special:CentralLogin/start?token=somevalue
ile yeniden yönlendirir, bu da o vikide çerezleri ayarlar ve ardından oturum açılmış vikiye yeniden yönlendirir.
"Oturum açma/hesap oluşturma başarılı" sayfasını çıkarır, bunun yerine kullanıcının başlangıçta bulunduğu "geri dön" sayfasına yeniden yönlendirir.
Daha önce "oturum açma/hesap oluşturma başarılı" sayfasında kullanılan simgelerin yerine o sayfanın altbilgisine 1x1 piksel resimleri yerleştirir.
Bunun için ayarlar, kabaca,
# General CentralAuth configuration
$wgCentralAuthCookies = true;
// default is to use the local wiki database
$wgVirtualDomainsMapping['virtual-centralauth'] = [ 'db' => 'centralauthDatabaseName' ];
$wgCentralAuthAutoMigrate = true;
$wgCentralAuthAutoLoginWikis = [
# Mapping from domain name to wiki id for other wikis to automatically login into
'enwiki.mediawiki.mwdd.localhost' => 'enwiki',
];
# Activates the redirect to the "central login wiki"
$wgCentralAuthLoginWiki = 'WikiIdOfLoginWiki';
$wgCentralAuthLoginWiki
is the ID (usually the database-name) of the wiki to which CentralAuth will redirect on login and create account actions.
Önbellek sorunları
En iyi sonuçlar için memcached kullanılması önerilir.
Yalnızca tek bir sunucunuz varsa, APCu gibi hızlandırıcı önbellekleri de (CACHE_ACCEL
) çalışabilir, ancak birden fazla sunucunuz varsa bunları kullanmayın.
Önbellek ayarlamadıysanız (ör. CACHE_NONE
) $wgMainCacheType
için veya CACHE_DB
kullanıyorsanız, tüm vikilerinizin aynı önbelleğe alma tablosunu kullandığından emin olmanız gerekir.
Varsayılan olarak, viki grubunuzdaki her viki, $wgMainCacheType
CACHE_NONE
veya CACHE_DB
olarak ayarlandığında, kendi veritabanındaki (kendi db öneki ile) objectcache
tablosunu kullanır.
Bunun CentralAuth ile çalışmasını sağlamak için, vikilere merkezi bir önbellek tablosu kullanmalarını söylememiz gerekir.
centralauth
veritabanında merkezi bir önbelleğe alma tablosu oluşturmak istiyorsanız (ve mevcut vikilerinizden birinin veritabanı adına enwiki
sahip olduğunu varsayarak), tabloyu diğer veritabanınıza kopyalamak için aşağıdaki gibi kodu çalıştırın:
CREATE TABLE centralauth.objectcache LIKE enwiki.objectcache
Ardından, kendi tabloları yerine merkezi tabloyu kullanmalarını söylemek için tüm vikilere aşağıdaki yapılandırmayı ekleyin:
$wgSharedDB = 'centralauth'; // or whatever database you use for central data
$wgSharedTables = [ 'objectcache' ]; // remember to copy the table structure's to the central database first
$wgCentralAuthSessionCacheType = CACHE_DB; // Tell mediawiki to use objectcache database for central auth.
When running PHPUnit tests locally with your wiki farm and do not want them to fail due to an attempt to clone database tables with the shared tables config above, use:
if ( defined( 'MW_PHPUNIT_TEST' ) ) {
$wgSharedTables = [];
} else {
$wgSharedTables = [ 'objectcache' ];
}
HTTP and HTTPS
Since 2023, CentralAuth does not support mixed-protocol HTTP/HTTPS wikis, only pure-HTTPS wikis (with $wgForceHTTPS set to true
) and pure-HTTP wikis (primarily for local testing).
See issue T348852.
Yapılandırma
Database Virtual Domains Mapping
Since MediaWiki 1.41, you can configure database virtual domains mapping for CentralAuth, and this replaced $wgCentralAuthDatabase
.
To setup virtual domains mapping with CentralAuth, use:
// 'centralauth' is the name of the your CentralAuth database.
$wgVirtualDomainsMapping['virtual-centralauth'] = [ 'db' => 'centralauth' ];
parametre | varsayılan | yorum |
---|---|---|
(deprecated ) $wgCentralAuthDatabase
|
null
|
Merkezi kimlik doğrulama verilerini sakladığınız veritabanı adı.
Bu birincil veritabanı bağlantısında değilse, Tablo öneki olan bir veritabanı kullanmak için bu değişkeni " NOTE: This setting has been deprecated, use virtual domains mapping as described above. |
$wgCentralAuthAutoMigrate
|
false
|
true ise, mevcut bağlanmamış hesaplar, mümkünse ilk oturum açmada otomatik olarak taşınacaktır.
Herhangi bir yeni hesap oluşturmanın eklenmesi gerekecektir.
|
$wgCentralAuthAutoMigrateNonGlobalAccounts
|
false
|
true ise, küresel hesabın bulunmadığı mevcut bağlanmamış hesaplar, parola ve e-postalara dayalı olarak çakışmasız bir birleştirmenin yapılıp yapılamayacağını görmek için karşılaştırılacaktır (tüm hesaplar birleştirilir).
Bu daha önce |
$wgCentralAuthStrict
|
false
|
true ise, eklenmemiş kalan hesapların çözülene kadar oturum açması yasaklanacaktır.
|
$wgCentralAuthDryRun
|
false
|
true ise, birleştirme aslında Special:MergeAccount arayüzüyle mümkün olmayacaktır.
|
$wgCentralAuthCookies
|
false
|
true ise, küresel oturum ve anahtar çerezleri, kullanıcılar global bir hesapla oturum açtığında viki oturumu ve oturum açma belirteçlerinin yanında ayarlanır.
Bu, aynı alandaki diğer vikilerin şeffaf bir şekilde oturum açmalarına izin verir. |
$wgCentralAuthLoginWiki
|
false
|
Merkezi bir oturum açma vikisinin veritabanı adı. Bu, her viki için etki alanları arası çerezleri doğrudan $wgCentralAuthAutoLoginWikis olarak ayarlamanın bir alternatifidir. Ayarlanırsa, tek bir oturum açma vikisi, vikiler arasında birleşik oturum açma oturumlarını yönetmek için bir oturum/çerez kullanır.
Kullanıcılar, oturum açtıklarında oturum açma vikisinin Special:CentralLogin/login sayfasına yönlendirilecek ve ardından kaynak vikide Special:CentralLogin olarak geri yönlendirilecektir. Bu süreçte, merkezi oturum açma viki tanımlama bilgisi ve oturum ayarlanacaktır. Kullanıcı diğer vikilere erişirken, oturum açma durumunu kontrol etmek ve yerel oturum ve çerezleri ayarlamak için oturum açma vikisi JavaScript üzerinden kontrol edilecektir. Bu |
$wgCentralAuthCookieDomain
|
''
|
Küresel çerezlerin ayarlanacağı alan.
Örneğin, yalnızca mevcut olan yerine tüm |
$wgCentralAuthCookiePrefix
|
'centralauth_'
|
CentralAuth küresel kimlik doğrulama tanımlama bilgileri için önek. |
$wgCentralAuthCookiePath
|
'/'
|
CentralAuth küresel kimlik doğrulama tanımlama bilgilerinin yolu. Çerezleri $wgCentralAuthCookieDomain ile belirtilen etki alanındaki belirli bir yolla sınırlamak istiyorsanız bu değişkeni ayarlayın.
|
$wgCentralAuthAutoLoginWikis
|
[]
|
Küresel oturum durumu için üçüncü taraf çerezlerini ayarlamaya çalışmak için oturum açıldığında çağrılması gereken viki kimliklerinin listesi.
Viki kimliği, tablo öneklerinin kullanıldığı durumlar haricinde genellikle veritabanı adıdır; bu durumda bu, veritabanı adı, kısa çizgi ayırıcı ve ardından tablo önekidir. Bu, birden çok ikinci düzey etki alanına sahip bir çiftliğin, her etki alanından bir vikiye (en.wikipedia.org, en.wikinews.org, vb.) kullanarak tümü üzerinde genel bir oturum oluşturmasına olanak tanır. Her vikide Boşsa, başka hiçbir viki kullanmayacaktır. Anahtar, çerez alan adına ayarlanmalıdır. |
$wgCentralAuthAutoCreateWikis
|
[]
|
Küresel hesap oluşturulduğunda üzerine ekli bir yerel hesabın otomatik olarak oluşturulması gereken viki kimliklerinin listesi.
Viki kimliği, tablo öneklerinin kullanıldığı durumlar haricinde genellikle veritabanı adıdır; bu durumda bu, veritabanı adı, kısa çizgi ayırıcı ve ardından tablo önekidir. |
$wgCentralAuthLoginIcon
|
false
|
Special:CentralAutoLogin tarafından döndürülen simgenin yerel dosya sistemi yolu 20x20px PNG olmalıdır.
|
$wgCentralAuthPrefsForUIReload
|
[ 'skin', 'language', 'thumbsize', 'underline', 'stubthreshold', 'showhiddencats', 'justify', 'numberheadings', 'editondblclick', 'editsection', 'editsectiononrightclick', 'usenewrc', 'extendwatchlist' ]
|
Başarılı bir merkezi oturum açma sorgusundan sonra sayfanın yeniden yüklenmesini önermemiz gereken kullanıcı tercihleri.
|
$wgCentralAuthRC
|
[]
|
CentralAuth olaylarını RC Beslemelerine göndermek için ayar dizisi.
|
$wgCentralAuthWikisPerSuppressJob
|
10
|
Bir gizleme kullanıcı işinde ele alınan vikilerin boyutu. Bir vikinin ~10 sorgu gerektirdiğini unutmayın.
|
$wgCentralAuthReadOnly
|
false
|
Uzantıyı veritabanı salt okunur moduna ayarlamak için kullanılan $wgReadOnly , gibi.
|
$wgCentralAuthEnableGlobalRenameRequest
|
false
|
Special:GlobalRenameRequest için özellik işareti.
|
$wgCentralAuthGlobalPasswordPolicies
|
[]
|
Küresel parola politikaları. Bunlar yerel parola politikaları gibi uygulanır, bir kullanıcı için geçerli olan en güçlü politika kullanılır. İlkeler yerel bir grup (kullanıcı herhangi bir vikide o grubun üyesiyse, ilke o kullanıcı için geçerli olacaktır) veya genel grup için geçerli olabilir.
|
$wgGlobalRenameDenylist
|
null
|
A list of users who won't be allowed to create new global rename requests through Special:GlobalRenameRequest.
There are two ways to set it:
You can use the exact names or regular expressions.
|
$wgCentralAuthGlobalBlockInterwikiPrefix
|
"global"
|
When globally suppressing a user, a block against this user is inserted in all wikis. CentralAuth will set the author of theses blocks as $wgCentralAuthGlobalBlockInterwikiPrefix>(user-who-made-the-suppression's nickname) . For example, if $wgCentralAuthGlobalBlockInterwikiPrefix = "Admins"; , and Joe suppresses John, all wikis will show in BlockList a block against John made by Admins>Joe .
|
Kullanım
MediaWiki'nin AuthPlugin sistemini kullanarak tek kullanıcı girişi (SUL) sistemine izin verir. Kullanıcı oluşturma ve oturum açması, tüm vikilere bir merkezi kullanıcı tablosunu kullanarak küresel olarak yapılır. Yerel kullanıcı hesaplarının otomatik olarak oluşturulma/oturum açıldığını unutmayın.
Bu uzantı, küresel hesapların ait olduğu küresel kullanıcı gruplarını da uygulayabilir.
Kullanıcı hakları
Centralauth birkaç yeni kullanıcı haklarını tanımlar:
Kullanıcı hakkı | Yetenekler | Varsayılan grup | Durum |
---|---|---|---|
centralauth-createlocal
|
Korunma küresel bir hesap için yerel bir hesap oluşturmak | Kâhyalar ve hizmetliler | MW 1.36+ içinde aktif |
centralauth-lock
|
Kullanıcıların herhangi bir vikide oturum açmasını önleyin | Kâhyalar | Aktif |
centralauth-suppress
|
Küresel hesapları gizleyin veya gösterin | Kâhyalar | Aktif |
centralauth-rename
|
Küresel hesapları yeniden adlandırın | Kâhyalar | Aktif |
centralauth-unmerge
|
Küresel hesapları yerel bir hesaptan ayırın | Stewards | Active |
centralauth-merge
|
Tüm CentralAuth hesaplarını küreu olarak birleştirin | Tüm kullanıcılar | Aktif; genellikle otomatik |
globalgrouppermissions
|
Küresel grupların izinlerini yönetin | Küresel Kâhyalar | Aktif; varsayılan olarak yerel kâhyalara atanmamış |
globalgroupmembership
|
Küresel gruplara üyeliği düzenleyin | Küresel Kâhyalar | Aktif; varsayılan olarak yerel kâhyalara atanmamış |
İşlevler
Tek kullanıcı girişi (SUL)
Birden fazla vikide hesabı olan bir kullanıcı, küresel kullanıcı hesabını oluşturmak için Special:MergeAccount kullanabilir ve bu hesap daha sonra herhangi bir vikide kullanılabilir. centralauth-unmerge
iznine sahip kullanıcılar (varsayılan olarak görevlilere verilir), parolaların tamamının önceden birleştirme ayarına sıfırlandığı bir genel hesabın birleştirilmesini geri alabilir.
Kullanıcı hesapları artık küresel olarak da yeniden adlandırılabilir.
Küresel kullanıcıları kilitleme ve gizleme
Global bir hesap, sırasıyla centralauth-lock
ve centralauth-suppress
izinlerine sahip bir kullanıcı tarafından kilitlenebilir veya gizlenebilir ve varsayılan olarak yerel 'stewards' grubuna verilir.
Kilitli bir küresel hesap, halihazırda oturum açmış olduğu herhangi bir vikideki herhangi bir oturumdan hemen çıkarılır.
Gizli bir küresel hesabın kullanıcı adı, küresel hesap günlüğü dışında hiçbir günlükte görünmez.
Viki setleri
Bir viki seti, globalgrouppermissions
hakkına sahip bir kullanıcı tarafından belirtilen bir viki grubudur.
Kümeler, seçmeli (vikiler varsayılan olarak içinde değildir) veya devre dışı bırakabilir (seçilmediği sürece vikilerdir) olabilir.
Küresel kullanıcı grupları
Kurulum bölümünde açıklandığı gibi küresel kullanıcı gruplarını etkinleştirdikten sonra, taşınan bir kâhya, küresel kullanıcı gruplarını ve bunların haklarını yapılandırmak için Special:GlobalGroupPermissions arabirimini kullanabilir.
Grubun yalnızca belirli bir viki kümesinde etkin olacağı belirtilmediği sürece, varsayılan olarak tüm vikilerde (içindeki kullanıcıların tüm vikilerde hakları vardır) genel bir kullanıcı grubu etkindir (gruptaki kullanıcılar yalnızca kümedeki bir vikide iseler haklara sahiptir).
Küresel grup izinleri Special:ListUsers altında değil, Special:GlobalUsers içinde listelenmiştir.
globalgroupmembership
iznine sahip bir kullanıcı tarafından atanırlar (varsayılan olarak genel grup stewards
) ve $wgGroupPermissions
ile tanımlanan yerel haklar bunu yapmasa bile kullanıcıya belirtilen hakları verir.
Lisanslama ve indirmeler
Uzantı, GNU Genel Kamu Lisansı 2.0 veya üstü altında mevcuttur ve Git'ten indirilir veya web tabanlı görüntüleyici üzerinden erişilebilir.
Yazılım olduğu gibi sağlanır. Güncellemeler, Wikimedia vikilerinin ihtiyaçlarına göre yapılacaktır; veya kritik güvenlik açıklarının keşfedildiği yerlerde.
API
Extension:CentralAuth/API sayfasına bakın.
Kaynakça
Ayrıca bakınız
- Meta-Viki'de Help:Birleşik oturum açma
- Extension:CentralAuth/authentication - CentralAuth authentication features
$wgSharedDB
- User:Legoktm/evil-plans2.txt - 2015 plan to phase out CentralAuth at WMF
- Global session threat assessment
- w:Wikipedia:Integrated watchlists
- CentralAuth denetim akışı
- Stuck global renames
Bu uzantı bir veya daha fazla Wikimedia projelerinde kullanılıyor. Bu, muhtemelen uzantının kararlı olduğu ve bu tür yüksek trafikli web siteleri tarafından kullanılacak kadar iyi çalıştığı anlamına gelir. Nerede kurulduğunu görmek için bu uzantının adını Wikimedia'nın CommonSettings.php ve InitialiseSettings.php yapılandırma dosyalarında arayın. Belirli bir vikide yüklü olan uzantılar listesinin tamamı vikinin Special:Version sayfasında görülebilir. |
This extension is included in the following wiki farms/hosts and/or packages: This is not an authoritative list. Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm. |