Jump to content

Extension:GoogleLogin

From mediawiki.org
This page is a translated version of the page Extension:GoogleLogin and the translation is 69% complete.
Outdated translations are marked like this.
MediaWiki manüel uzantıları
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
  • $wgGLAPIKey
  • $wgGLAllowedDomainsStrict
  • $wgGLAppId
  • $wgGLAllowedDomainsDB
  • $wgGLAuthoritativeMode
  • $wgGLSecret
  • $wgGLEnableEchoEvents
  • $wgGLAllowedDomains
  • managegooglelogin
  • managegooglelogindomains
Uyumluluğa genel bakış için sürüm yaşam döngüsüne bakın
Quarterly downloads 62 (Ranked 78th)
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üzdeki GoogleLogin 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
  • Yes 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:

$wgGLAllowedDomainsStrict doğruysa ve "example.com" izin verilen bir alan adı ise, "test.example.com" sitesine izin verilmez.
$wgGLAllowedDomainsStrict yanlışsa ve example.com izin verilen bir etki alanıysa, "test.example.com" sitesine izin verilir.

$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):

  1. Google geliştirici konsolunu açın
  2. Hizmet şartlarını okuyun ve kabul edin
  3. İlk projenizi oluşturun
  4. API'ler ve hizmetler gidin
  5. + KİMLİK BİLGİLERİ OLUŞTUR tıklayın
  6. OAuth istemci kimliği seçin
  7. Web application olarak APPLICATION TYPE olarak seçin, Authorized JavaScript origins olarak alan adınızı yazın (joker karakterlere ve dizinlere izin verilmez!)
  8. 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
  9. 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

İzin verilen alanların listesini yönetmek için kullanıcı arayüzü.

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' => []
];
$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.