Extension:OAuth
OAuth Sürüm durumu: kararlı |
|
---|---|
Uygulama | Kullanıcı kimliği , Kullanıcı hakları , API |
Açıklama | Kullanıcıların, MediaWiki eylem API'sini kendi adlarına kullanmaları için başka bir uygulamayı ("tüketici") güvenli bir şekilde yetkilendirmesine izin verin. |
Yazar(lar) | Aaron Schulz, Chris Steipp, Brad Jorsch, Robert Vogel, Dejan Savuljesku |
En son sürüm | 1.1.0 (continuous updates) |
Uyumluluk politikası | MediaWiki ile birlikte anlık görüntüler yayımlanır. Master geriye dönük olarak uyumlu değil. |
MediaWiki | >= 1.43 |
Veritabanı değişiklikleri | Evet |
Tablolar | oauth_accepted_consumer oauth_registered_consumer |
Lisans | GNU Genel Kamu Lisansı 2.0 veya üstü |
İndir | |
Yardım | Yardım:OAuth |
|
|
|
|
|
|
Quarterly downloads | 82 (Ranked 65th) |
Public wikis using | 982 (Ranked 246th) |
Translatewiki.net adresinde mevcutsa, OAuth uzantısını çevirin | |
Vagrant rolü | oauth |
Sorunlar | Açık görevler · Hata bildir |
OAuth uzantısı, MediaWiki'de hem OAuth 1.0a hem de OAuth 2.0 protokol sürümlerini destekleyen bir OAuth sunucusu uygular. It allows third party developers to securely develop applications ("consumers"), to which users can give a limited set of permissions ("grants"), so that the application can use the MediaWiki action API on the user's behalf.
Gereksinimler
- OAuth, geçici anahtarlar ve oturumlar için nesne önbelleğini kullanır. Bu, önbellek yapılandırma ayarları makul olduğu sürece çalışmalıdır. (Older versions required Memcached explicitly.)
- Şu anda yalnızca MySQL ve SQLite veritabanı arka uçları desteklenmektedir
- MediaWiki kurulumu özelse (yani, kullanıcıların okuma erişimine sahip olmaları için oturum açmaları gerekiyorsa), beyaz listeye Special:OAuth eklenmesi gerekecektir.
Kurulum
- Dosyaları indirin ve
extensions/
klasörünüzdekiOAuth
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/OAuth - 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( 'OAuth' );
- Bu uzantının ihtiyaç duyduğu gerekli veritabanı tablolarını otomatik olarak oluşturacak betik güncelleme komutunu çalıştırın.
- Genel parametreleri gerektiği gibi yapılandırın.
- Kullanıcı haklarını ilgili gruplara
$wgGroupPermissions
olarak koyarak yapılandırın. - Yapıldı – Uzantının başarıyla yüklendiğini doğrulamak için vikinizde Special:Version seçeneğine gidin.
Vagrant kurulumu:
- Vagrant kullanıyorsanız,
vagrant roles enable oauth --provision
ile yükleyin
To assign a permission to some group, for example to sysops, you add following line to LocalSettings.php
:
$wgGroupPermissions['sysop']['mwoauthproposeconsumer'] = true;
Yapılandırma
Parameters
Değişken adı | Varsayılan değer | Açıklama |
---|---|---|
$wgMWOAuthCentralWiki
|
false
|
Wiki ID of OAuth management wiki. On wiki farms, it makes sense to set this to a wiki that acts as a portal site, is dedicated to management, or just handles login/authentication. It can, however, be set to any wiki in the farm. For single-wiki sites or farms where each wiki manages consumers separately, it should be left as false .
|
$wgMWOAuthSharedUserIDs
|
false
|
(kaldırıldı) Use $wgMWOAuthSharedUserSource instead
Whether shared global user IDs are stored in the oauth tables.
On wiki farms with a central authentication system (with integer user IDs) that share a single OAuth management wiki, this must be set to true.
If wikis have a central authentication system but have their own OAuth management, then this can be either |
$wgMWOAuthSharedUserSource
|
null
|
Central ID provider when sharing OAuth credentials over a wiki farm
Source of shared user IDs, if enabled. If CentralIdLookup is available, this is the $providerId for CentralIdLookup::factory(). Generally null would be what you want, to use the default provider. If that class is not available or the named provider is not found, this is passed to the OAuthGetUserNamesFromCentralIds, OAuthGetLocalUserFromCentralId, OAuthGetCentralIdFromLocalUser, OAuthGetCentralIdFromUserName hooks. This has no effect if $wgMWOAuthSharedUserIDs is set to false. |
$wgMWOAuthRequestExpirationAge
|
2.592.000 (30 days)
|
Seconds after which an idle request for a new Consumer is marked as "expired" |
$wgMWOAuthSecureTokenTransfer
|
true
|
Require SSL/TLS for returning Consumer and user secrets. This is required by RFC 5849, however if a wiki wants to use OAuth, but doesn't support SSL, this option makes this configuration possible. This should be set to true for most production settings. |
$wgOAuthSecretKey
|
$wgSecretKey
|
A secret configuration string (random 32-bit string generated using "base64_encode(random_bytes(32))") used to hmac the database-stored secret to produce the shared secrets for Consumers. This provides some protection against an attacker reading the values out of the consumer table (the attacker would also need $wgOAuthSecretKey to generate valid secrets), and some protection against potential weaknesses in the secret generation. If this string is compromised, the site should generate a new $wgOAuthSecretKey, which will invalidate Consumer authorizations that use HMAC/shared secret signatures instead of public/private keys. Consumers can regenerate their new shared secret by using the "Reset the secret key to a new value" option under Special:MWOAuthConsumerRegistration/update. If null, the value is set to $wgSecretKey. |
$wgOAuthGroupsToNotify
|
[]
|
The list of user groups which should be notified about new consumer proposals. Setting this will only have an effect when Echo is installed. |
$wgMWOauthDisabledApiModules
|
[]
|
List of API module classes to disable when OAuth is used for the request |
$wgMWOAuthReadOnly
|
false
|
Prevent write activity to the database. When this is set, consumers cannot be added or updated, and new authorizations are prohibited. Authorization headers for existing authorizations will continue to work. Useful for migrating database tables |
$wgMWOAuthSessionCacheType
|
$wgSessionCacheType
|
The storage mechanism for session data. If null, it defaults to $wgSessionCacheType. |
$wgOAuthAutoApprove
|
[]
|
Allows automatic immediate approval of low-risk apps. In the form of [ 'grants' => [ 'grant1', 'grant2', ... ] ]
|
$wgOAuth2EnabledGrantTypes
|
[
"authorization_code",
"refresh_token",
"client_credentials"
]
|
List of OAuth2 grants that client applications can be allowed to use. Actual grants client application will be allowed to use can be any subset of grants listed here. Grants, other than the ones listed here, are considered legacy grants, and are not supported by this extension |
$wgOAuth2PrivateKey
|
""
|
Private key or a path to the private key used to sign OAuth2 JWT being transmitted. See the OAuth 2.0 Server documentation for how to generate the keys. |
$wgOAuth2PublicKey
|
""
|
Public key or a path to the public key used to verify OAuth2 resource requests. |
$wgOAuth2RequireCodeChallengeForPublicClients
|
true
|
Controls whether clients are required to send code challenges with OAuth2 requests. This only applies to non-confidential clients. |
$wgOAuth2GrantExpirationInterval
|
"PT1H" (1 hour)
|
Controls validity period for access tokens (stored in the cache configured in MWOAuthSessionCacheType). Does not apply to owner-only clients, whose access tokens are always non-expiring. Accepts ISO 8601 durations or can be set to "infinity" or false for non-expiring tokens. |
$wgOAuth2RefreshTokenTTL
|
"P1M" (1 month)
|
Controls validity period for refresh tokens (stored in the cache configured in MWOAuthSessionCacheType). Accepts ISO 8601 durations or can be set to "infinity" or false for non-expiring tokens. |
Kullanıcı hakları
Yetki | Açıklama |
---|---|
mwoauthproposeconsumer |
Yeni OAuth tüketicileri önerin |
mwoauthupdateownconsumer |
Kontrol ettiğiniz OAuth tüketicilerini güncelleyin |
mwoauthmanageconsumer |
OAuth tüketicilerini yönet |
mwoauthsuppress |
OAuth tüketicilerini gözetleyin |
mwoauthviewsuppressed |
Gözetlenmiş OAuth tüketicilerini görüntüle |
mwoauthviewprivate |
Özel OAuth verilerini görüntüle |
mwoauthmanagemygrants |
OAuth bağışlarını yönet |
Endpoints
OAuth 2.0 REST endpoints
The following REST endpoints are provided for OAuth 2.0 interaction
Yol | Açıklama | İzin verilen parametreler | İzin verilen yöntem | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
/oauth2/authorize | Used for retrieving authorization code when using authorization_code grant. |
|
GET | ||||||||||||||||||||||||||||||||||||||||||||||||||
/oauth2/access_token | Used for requesting access tokens |
|
POST | ||||||||||||||||||||||||||||||||||||||||||||||||||
/oauth2/resource/{{type}} | Used for retrieving protected resources using the access token issued previously.
Currently, two resource types can be retrieved using this endpoint, by replacing
|
No parameters are allowed, apart from the {{type}} parameter that is included in the path
|
GET/POST | ||||||||||||||||||||||||||||||||||||||||||||||||||
/oauth2/client | Lists OAuth 1.0a or 2.0 clients for the logged-in user. Authentication can be achieved over CentralAuth or by including an access token in the authorization header.
|
|
GET | ||||||||||||||||||||||||||||||||||||||||||||||||||
/oauth2/client/{client_key}/reset_secret | Resets a client secret. For owner-only clients, this endpoint also resets the access token.
|
|
POST | ||||||||||||||||||||||||||||||||||||||||||||||||||
/oauth2/client | Creates an OAuth 2.0 client.
|
|
POST |
Ayrıca bakınız
- Extension:OATHAuth - OATH tabanlı tek seferlik parolaları kullanarak ikinci bir kimlik doğrulama faktörü uygulayan benzer şekilde adlandırılmış bir uzantı.
- Extension:WSOAuth – Vikinizin, Extension:OAuth çalıştıran bir viki de dahil olmak üzere PluggableAuth kullanan herhangi bir OAuth sağlayıcısına kimlik doğrulama yetkisi vermesini sağlayan bir MediaWiki uzantısı.
- oauthclient-php – OAuth tüketicileri için bir istemci kitaplığı.
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. |