TYPO3 Extension ``oauth2`` (``mfc/oauth2``)
===========================================
|Latest Stable Version| |License|
This extension provides OAuth 2.0 to TYPO3 installations 11LTS.
1. Features
-----------
- Can automatically create new backend users
- Certain OAuth resource servers can control admin permissions and
assign backend group memberships
2. Usage
--------
1) Installation
~~~~~~~~~~~~~~~
The only way to install this extension is by using
`Composer `__. In your Composer based TYPO3
project root, just run ``composer require mfc/oauth2``.
2) Configure the extension
~~~~~~~~~~~~~~~~~~~~~~~~~~
To add an OAuth2 Server for login, we recommend you create your own
little extension, use your existing site package or put the
configuration in your ``typo3conf/AdditionalConfiguration.php``.
2.1) Using the GitLab Provider included in this extension
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Configuring the GitLab Login Provider is pretty straight forward. Just
put the following configuration into your ``ext_localconf.php`` or the
aforementioned ``typo3conf/AdditionalConfiguration.php`` and customize
it to your needs.
.. code:: php
Mfc\OAuth2\ResourceServer\Registry::addServer(
'gitlab', // identifier for the Resource Server
'Login with GitLab', // Text displayed on the Login Screen
\Mfc\OAuth2\ResourceServer\GitLab::class,
[
'enabled' => true, // Enable/Disable the provider
'arguments' => [
'appId' => 'your-app-id',
'appSecret' => 'your-app-secret',
'gitlabServer' => 'https://gitlab.com', // Your GitLab Server
'gitlabAdminUserLevel' => \Mfc\OAuth2\ResourceServer\GitLab::USER_LEVEL_DEVELOPER, // User level at which the user will be given admin permissions
'gitlabDefaultGroups' => '0', // Groups to assign to the User (comma separated list possible)
'gitlabUserOption' => 0, // UserConfig
'blockExternalUser' => false, // Blocks users with flag external from access the backend
'projectName' => 'your/repo', // the repository from which user information is fetched
],
]
);
You can obtain the required information for the provider by going to
either https://gitlab.com/profile/applications if you’re using the
hosted version of GitLab, or to the equivalent page on your self-hosted
GitLab server.
When creating the application within GitLab, you might need the
following information:
- Redirect URI: ``/typo3/index.php``
- Scopes: ``api``,\ ``read_user``,\ ``openid``
2.2 Creating your own provider
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To create your own Provider, you need to create your own extension, and
create a class which extends
``Mfc\OAuth2\ResourceServer\AbstractResourceServer``. You can then use
the same boilerplate shown in 2.1 to register your newly created
provider. The ``arguments`` array included in the provider registration
will be provided as-is as the first argument to your providers
constructor, with the addition of a ``providerName`` key which contains
the identifier you set in your registration.
**Example**
You’ve created your own extension, and created the class
``Just\AnExample\Providers\ExampleProvider``. To register your provider
you’d extend the configuration as follows
.. code:: php
Mfc\OAuth2\ResourceServer\Registry::addServer(
'example-provider', // identifier for the Resource Server
'Login with Example', // Text displayed on the Login Screen
\Just\AnExample\Providers\ExampleProvider::class,
[
'enabled' => true, // Enable/Disable the provider
'arguments' => [
'yourarg' => 'somevalue',
// ...
],
]
);
The first argument passed to your provider will be:
.. code:: php
array(
'providerName' => 'example-provider',
'yourarg' => 'somevalue',
// ...
);
3. License
----------
mfc/oauth2 is released under the terms of the `GPL-2
License `__.
.. |Latest Stable Version| image:: https://poser.pugx.org/mfc/oauth2/v/stable
:target: https://packagist.org/packages/mfc/oauth2
.. |License| image:: https://poser.pugx.org/mfc/oauth2/license
:target: https://packagist.org/packages/mfc/oauth2