Extension:GoogleLogin
GoogleLogin Sürüm durumu: beta |
|
---|---|
Uygulama | Kullanıcı kimliği , Özel sayfa |
Açıklama | Google hesabınızı oturum açmanızı sağlar |
Yazar(lar) | Florian Schmidt (Florianschmidtwelzowmesaj) |
En son sürüm | 0.4.0-git |
MediaWiki | >= 1.39.0 |
Veritabanı değişiklikleri | Evet |
Tablolar | googlelogin_allowed_domains user_google_user |
Lisans | MIT Lisansı |
İndir | README |
|
|
|
|
Uyumluluğa genel bakış için sürüm yaşam döngüsüne bakın | |
Quarterly downloads | 65 (Ranked 75th) |
Translatewiki.net adresinde mevcutsa, GoogleLogin uzantısını çevirin | |
Sorunlar | Açık görevler · Hata bildir |
GoogleLogin uzantısı, viki kullanıcılarının Google hesaplarıyla oturum açmalarına izin verir. Uzantı, Google'dan temel profil bilgilerini (hesap kimliği, tam ad ve e-posta adresi gibi) istemek için Google API'sini kullanır.
Gereksinimler
Bu uzantıyı kullanmak için en azından şunlara ihtiyacınız var:
- MediaWiki 1.36+
- MySQL/MariaDB (PostgreSQL veya SQLite desteği yok)
- PHP 7.3+
- Google Geliştirici Erişimi
- Web Uygulaması için API Kimlik Bilgileri (İstemci Kimliği ve İstemci Sırrı)
composer update --no-dev
çalıştırma yeteneği
Kurulum
- Dosyaları indirin ve
extensions/
klasörünüzdekiGoogleLogin
adlı dizine yerleştirin.
Developers and code contributors should install the extension from Git instead, using:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/GoogleLogin - Yalnızca git dizininden yüklerken, PHP bağımlılıklarını uzantı dizinine
composer install --no-dev
vererek yüklemek için Composer komutunu çalıştırın. (Potansiyel komplikasyonlar için görev T173141 sayfasına bakınız.) - LocalSettings.php dosyanızın altına aşağıdaki kodu ekleyin:
wfLoadExtension( 'GoogleLogin' );
- Bu uzantının ihtiyaç duyduğu gerekli veritabanı tablolarını otomatik olarak oluşturacak betik güncelleme komutunu çalıştırın.
- Gerekli parametreleri yapılandırın
- Web sunucusunun kullanıcısı için ./wiki/extensions/GoogleLogin/cache yazılabilir olduğundan emin olun
- Yapıldı – Uzantının başarıyla yüklendiğini doğrulamak için vikinizde Special:Version seçeneğine gidin.
Yapılandırma
Uzantı, İstemci Kimliğini ve İstemci Sırrını ayarlamak için iki yapılandırma değişkeni sağlar (bu çifti Google Geliştirici Konsolu'nda alırsınız, "<" ve ">" öğesini kaldırırsınız).
$wgGLSecret = '<your-client-secret>';
$wgGLAppId = '<your-client-id>';
Ek yapılandırma parametreleri
Yapılandırma değişkeni | Varsayılan değer | Açıklama |
---|---|---|
$wgGLAllowedDomains [gerrit 1]
|
''
|
GoogleLogin ile kullanılmasına izin verilen bir dizi posta etki alanı, ör. [ 'example.com' ]; . Varsayılan: tüm alanlara izin verilir. Ayarlanmışsa veya değiştirildiğinde, "updatePublicSuffixArray.php" bakım betiğini çalıştırmanız gerekir.
|
$wgGLAllowedDomainsDB [gerrit 2]
|
false
|
True olarak ayarlanırsa, GoogleLogin, bir Google hesabının birincil e-posta adresinin bir e-posta etki alanının oturum açmasına izin verilip verilmediğini kontrol etmek için veritabanını kullanır. |
$wgGLAllowedDomainsStrict [gerrit 1]
|
false
|
Yalnızca $wgGLAllowedDomains bir dizi ise gözlemlenir. True olarak ayarlanırsa, e-posta alanı tamamen izin verilen alanlarla karşılaştırılır (yalnızca TLD yerine), örneğin:
|
$wgGLAPIKey [gerrit 3]
|
''
|
Genel API erişimi anahtarı. Yalnızca kullanıcının bir Google Plus profiline sahip olup olmadığını kontrol etmek için hizmetli işlemleri için kullanılır. |
$wgGLAuthoritativeMode [gerrit 4]
|
false
|
GoogleLogin'in Yetkili modunu kontrol eder. |
$wgGLEnableEchoEvents
|
true
|
Google Geliştirici Konsolu'ndaki ayarlar
Bu uzantıyı kullanmak için bir Google geliştirici hesabına ve geliştirici konsoluna erişiminiz olmalıdır. Bu, adım adım çok basit bir kılavuzdur (ayrıca Google'ın yardım sayfasına bu konuda bakın):
- Google geliştirici konsolunu açın
- Hizmet şartlarını okuyun ve kabul edin
- İlk projenizi oluşturun
- API'ler ve hizmetler gidin
- + KİMLİK BİLGİLERİ OLUŞTUR tıklayın
- OAuth istemci kimliği seçin
- Web application olarak APPLICATION TYPE olarak seçin, Authorized JavaScript origins olarak alan adınızı yazın (joker karakterlere ve dizinlere izin verilmez!)
- Bu örnekte olduğu gibi Authorized redirect URI'nizi yazın:
- Etki alanınız example.com ise ve alan adınızın Köküne MediaWiki yüklediyseniz, yönlendirme URI'si aşağıdaki gibidir: https://example.com/index.php/Special:GoogleLoginReturn
- Oluştur'a tıklayın ve Client ID ve Cliend Secret ile LocalSettings.php içindeki yapılandırma değişkenlerine kopyalayın
"Special:GoogleLoginReturn" özel sayfası
Google geliştirici konsolunda izin verilen yönlendirme URI'sı içerik dilinde olmalıdır. Vikiniz içerik dili olarak Almanca olarak ayarlandıysa, Spezial:GoogleLoginReturn
kullanın. Yanlış dili kullanmanız durumunda, tüm kimlik doğrulama istekleri uri uyuşmazlığını yeniden yönlendirme hata koduyla başarısız olur.
Hata ayıklama
Normalde, tüm genel hata sayfalarında hata mesajını görebilirsiniz. Bazen İstisnalar adı verilen Dahili Hatalar vardır.
In this case, please add $wgShowExceptionDetails with value true
in LocalSettings.php to see the complete Exception message.
For a support request, please provide always the lines of the Exception.
Özel bir vikide kullanın
Vikinizi özel olarak ayarladıysanız
$wgGroupPermissions['*']['read'] = false;
"Special:GoogleLoginReturn" sayfasını beyaz listeye eklemeniz gerekir, böylece anonim kullanıcılar kimlik doğrulama sağlayıcısından yeniden yönlendirildikten sonra geri arama URL'sine erişebilir. Bunu, LocalSettings.php dosyanıza aşağıdaki satırı ekleyerek yapabilirsiniz:
$wgWhitelistRead = [ 'Special:GoogleLoginReturn' ];
The name of the special page must be in the wiki's content language.
If your wiki was e.g. set to German as the content language, then use Spezial:Benutzerkonto_anlegen
.
In case you used the wrong language, all authentication requests will fail and redirect you to "Special:Login".
Vikide izin verilen etki alanlarını yönetin
GoogleLogin, Google ile girişi belirli e-posta adresi alanlarıyla (gmail.com, googlemail.com veya diğer her (kendi) etki alanı gibi) kısıtlamak için bir özellik sağlar. Bu özellik, özellikle kendi alan adlarını Google Apps ile kullanan şirketler için ilginçtir.
Google ile oturum açmasına izin verilen etki alanlarının listesi LocalSettings.php'de ($wgGLAllowedDomains
yapılandırma seçeneği) bir dizide yönetilir. 0.4.0 sürümünden bu yana, GoogleLogin ayrıca vikinin kendisinde izin verilen etki alanlarının listesini yönetmek için bir yol sağlar. İzin verilen alanlar, bu özellik etkinleştirildiğinde veritabanına kaydedilir ve bir grafik kullanıcı arabirimi (özel bir sayfa) veya MediaWiki API'si aracılığıyla değiştirilebilir (kaldır/ekle).
Not: Veritabanındaki etki alanlarının yönetimi etkinleştirildikten sonra, izin verilen etki alanlarının listesi artık LocalSettings.php'de yönetilemez.
Özelliğin veritabanında izin verilen etki alanlarını yönetmesini sağlamak için LocalSettings.php dosyanızda $wgGLAllowedDomainsDB
yapılandırma değişkenini true
olarak ayarlamanız yeterlidir. Ayrıca yeni managegooglelogindomains
kullanıcı hakkını üyesi olduğunuz bir gruba atamak istiyorsunuz (bu kullanıcı hakkına sahip tüm kullanıcıların izin verilen alan adları listesini değiştirmesine izin verildiğini lütfen unutmayın, bu hakkı yalnızca hizmetli düzeyindeki bir gruba eklemeyi düşünün!). Örnek bir yapılandırma şöyle görünebilir:
$wgGLSecret = 'your-secret';
$wgGLAppId = 'your-app-id';
$wgGLAllowedDomainsDB = true;
$wgGroupPermissions['sysop']['managegooglelogindomains'] = true;
Şimdi, gerekli veritabanı değişikliklerinin veritabanınıza uygulanması için update.php
betiğini yeniden çalıştırmanız gerekir. Güncelleme işlemi tamamlandıktan sonra, vikinizde Special:GoogleLoginAllowedDomains
özel sayfasına gidebilirsiniz. Google hesaplarıyla oturum açmalarına izin verilen ve eklendikten sonra bunları kaldırabileceğiniz yeni etki alanları ekleyebileceğiniz bir sayfa alacaksınız.
Configuration parameter "$wgGLAPIKey"
Bu yapılandırma seçeneği hala mevcuttur, ancak artık Special:ManageGoogleLogin özel sayfasından daha fazlası için kullanılmaktadır. Artık, kullanıcının doğru Google hesabını tanımlamasını kolaylaştırmak için Special:RemoveCredentials sayfasında bir kullanıcının adını almak için kullanılıyor (yalnızca Google kimliğini göstermek yerine). Anahtar doğru değilse veya sağlanmadıysa, GoogleLogin yalnızca Google kimliğini gösterecektir. İyi bir kullanıcı deneyimi için, bu API anahtarını şimdi sağlamanız şiddetle tavsiye edilir.
Yetkili modu
Automatic account creation
Google Login, etkinleştirildiğinde, oturum açmak için kullanılan Google hesabı halihazırda yerel bir MediaWiki hesabıyla ilişkilendirilmediğinde bir kullanıcı hesabının otomatik olarak oluşturulduğu yetkili modu destekler. Bu seçenek varsayılan olarak devre dışıdır ve bir yapılandırma seçeneğiyle etkinleştirilmesi gerekir. Ancak, bunu yapmadan önce lütfen aşağıdaki önemli bilgileri okuyun. Bu özellik, viki yapılandırmasının aşağıdakileri kesinlikle desteklemesini gerektirir:
- GoogleLogin needs to be the only primary authentication provider, e.g. set
$wgAuthManagerConfig = [ 'primaryauth' => [ GoogleLogin\Auth\GooglePrimaryAuthenticationProvider::class => [ 'class' => GoogleLogin\Auth\GooglePrimaryAuthenticationProvider::class, 'sort' => 0 ] ], 'preauth' => [], 'secondaryauth' => [] ];
- The "@" sign needs to be whitelisted in the
$wgInvalidUsernameCharacters
configuration and adapt $wgUserrightsInterwikiDelimiter accordingly, e.g.
$wgInvalidUsernameCharacters = ':~'; $wgUserrightsInterwikiDelimiter = '~';
- Autocreation of accounts needs to be enabled:
$wgGroupPermissions['*']['autocreateaccount'] = true;
- The GoogleLogin authoritative mode needs to be enabled:
$wgGLAuthoritativeMode = true;
Bu özelliğin etkinleştirilmesi aşağıdaki etkilere de sahiptir:
- Hesabın kullanıcı adı, Google'dan döndürülen bilgilerin birincil e-posta alanıdır. Bu yapılandırılamaz.
- If a local wiki account is already connected, this account is used to login, which means that an already existing account takes precedence over creating a new one.
- The newly created account will automatically be linked with the Google account.
- GoogleLogin will not let a user add or remove any further Google account connections (or the automatically created link) to prevent a user from being not able to login anymore.
- GoogleLogin does not add a password during the account creation, if the authoritative mode is disabled and password login shall be enabled again, the user needs to reset their password.
Manual account creation
Google Login also supports a variant of the so called authoritative mode, in which, when configured, a user account is still manually created by the respective user but automatically mapped to the Google account, which was used when creating the account, if it is not already associated with a local MediaWiki account. Moreover only permissive Google accounts can register an account manually.
- Creation of accounts needs to be enabled (also for private wikis):
$wgGroupPermissions['*']['createaccount'] = true;
- If on a private wiki the following pages need to be accessible by everybody, e.g. for English language wikis:
$wgWhitelistRead = [ 'Special:Login', 'Special:GoogleLoginReturn', 'Special:CreateAccount', 'Special:CreateAccount/return' ];
- Note that the special pages need to be added in the wiki language.
- The primary authentication provider needs to be disabled, i.e. set
$wgAuthManagerAutoConfig['primaryauth'] = [ ];
Enabling manual account creation has the same influence as automatic account creation does (see above), however with the following difference:
- The user who creates the account is free in its naming, i.e. some sort of user name logic cannot be enforced.
- If a local wiki account is already connected, an additional new account cannot be created manually, which means that an already existing account takes precedence over creating a new one.
Google API PHP İstemcisi
Bu uzantı, Apache 2.0 Lisansı altında dağıtılan Google API PHP İstemcisini (0.2.1'den önceki sürümlerde bulunur) kullanır. İstemci GitHub adresinden indirilebilir. The Client can be downloaded from GitHub.
Maintenance script "updatePublicSuffixArray.php"
"updatePublicSuffixArray.php" bakım betiği, dünyada kullanılmak üzere geçerli olan alan adlarının bir listesini indirir.
Bu, belirli etki alanları için GoogleLogin ile girişi kısıtladığınızda, GoogleLogin'in belirli bir e-posta etki alanının alt etki alanlarına izin vermesi için gereklidir.
Bu yalnızca $wgGLAllowedDomainsStrict
, false
olarak ayarlanmışsa (varsayılandır) ve ayar yapılandırma parametresi $wgGLAllowedDomains
her değiştirildiğinde gereklidir.
Sürüm yaşam döngüsü
Lütfen GoogleLogin'in yalnızca en son sürümünü desteklediğimi unutmayın. Mevcut sürüm (mevcut MediaWiki sürüm dalı anlamına gelir) ve mevcut geliştirme sürümü (ana olarak da bilinir) dışındaki sürümler artık desteklenmemektedir. Any versions apart from the current release (which means the current MediaWiki release branch) and the current development version (aka master) are not supported anymore.
Kaynakça
- Gerrit Kod incelemesi
See also
- OpenID Connect - Allows for authentication and authorization, including logging in with Google.