https://github.com/kanboard/plugin-oauth2
Generic OAuth2 authentication plugin
https://github.com/kanboard/plugin-oauth2
oauth2 plugin
Last synced: 2 months ago
JSON representation
Generic OAuth2 authentication plugin
- Host: GitHub
- URL: https://github.com/kanboard/plugin-oauth2
- Owner: kanboard
- License: mit
- Created: 2016-12-04T03:19:27.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2024-10-17T04:09:22.000Z (about 1 year ago)
- Last Synced: 2024-11-26T09:24:02.980Z (11 months ago)
- Topics: oauth2, plugin
- Language: PHP
- Size: 31.3 KB
- Stars: 27
- Watchers: 6
- Forks: 33
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
OAuth2 Authentication
=====================Generic OAuth2 authentication plugin.
Author
------- Frédéric Guillot
- License MITRequirements
------------- Kanboard >= 1.0.37
Installation
------------You have the choice between 3 methods:
1. Install the plugin from the Kanboard plugin manager in one click
2. Download the zip file and decompress everything under the directory `plugins/OAuth2`
3. Clone this repository into the folder `plugins/OAuth2`Note: Plugin folder is case-sensitive.
Configuration
-------------> **Note:** Also works with most OpenID Providers
Go to the application settings > integrations > OAuth2 Authentication.
### 1) Create a new application on the OAuth2 provider
Go to the third-party authentication provider and add a new application.
Copy and paste the **Kanboard callback URL** and generate a new set of tokens.The third-party provider will returns a **Client ID** and a **Client Secret**.
Copy those values in the Kanboard's settings.### 2) Configure the provider in Kanboard
- **Client ID**: Unique ID that comes from the third-party provider
- **Client Secret**: Unique token that comes from the third-party provider
- **Authorize URL**: URL used for authorization
- **Token URL**: URL used to get tokens from third-party provider
- **User API URL**: URL used to fetch user profile after authentication
- **Username Key**: Key used to fetch the username from the user API response
- **Name Key**: Key used to fetch the full name
- **Email Key**: Key used to fetch the user email
- **User ID Key**: Key used to fetch the unique user IDNotes
-----If "Allow Account Creation" checkbox is checked, anyone who goes to the login page, clicks the
"OAuth2 Login" link, and correctly validates with your Oauth2 backend will automatically have
their account created. No need to create the user in Kanboard or to use the "Invite people"
link in the users area.Examples
--------Example for Github OAuth2:
- **Authorize URL**: `https://github.com/login/oauth/authorize`
- **Token URL**: `https://github.com/login/oauth/access_token`
- **User API URL**: `https://api.github.com/user`
- **Username Key**: `login`
- **Name Key**: `name`
- **Email Key**: `email`
- **User ID Key**: `id`Example for Salesforce:
- **Authorize URL**: `https://login.salesforce.com/services/oauth2/authorize`
- **Token URL**: `https://login.salesforce.com/services/oauth2/token`
- **User API URL**: `https://login.salesforce.com/services/oauth2/userinfo`
- **Username Key**: `nickname`
- **Name Key**: `name`
- **Email Key**: `email`
- **User ID Key**: `user_id`Example for Discord:
- **Authorize URL**: `https://discord.com/api/oauth2/authorize`
- **Token URL**: `https://discord.com/api/oauth2/token`
- **User API URL**: `https://discordapp.com/api/users/@me`
- **Scopes**: `email identify`
- **Username Key**: `username`
- **Name Key**: `username`
- **Email Key**: `email`
- **User ID Key**: `id`Example for Gitea:
- **Authorize URL**: `https://try.gitea.io/login/oauth/authorize`
- **Token URL**: `https://try.gitea.io/login/oauth/access_token`
- **User API URL**: `https://try.gitea.io/login/oauth/userinfo`
- **Scopes**: `openid profile email groups`
- **Username Key**: `preferred_username`
- **Name Key**: `name`
- **Email Key**: `email`
- **User ID Key**: `sub`Example for Slack:
- **Authorize URL**: `https://slack.com/openid/connect/authorize`
- **Token URL**: `https://slack.com/api/openid.connect.token`
- **User API URL**: `https://slack.com/api/openid.connect.userInfo`
- **Scopes**: `openid profile email`
- **Username Key**: `name`
- **Name Key**: `name`
- **Email Key**: `email`
- **User ID Key**: `sub`Example for Azure AD (find the URLs with proper UUIDs in your Azure app page):
- **Authorize URL**: `https://login.microsoftonline.com//oauth2/v2.0/authorize`
- **Token URL**: `https://login.microsoftonline.com//oauth2/v2.0/token`
- **User API URL**: `https://graph.microsoft.com/v1.0/me`
- **Scopes**: `User.Read`
- **Username Key**: `userPrincipalName`
- **Name Key**: `displayName`
- **Email Key**: `mail`
- **User ID Key**: `id`Example for self-hosted Authentik:
- **Authorize URL**: `https://auth.domain.tld/application/o/authorize/`
- **Token URL**: `https://auth.domain.tld/application/o/token/`
- **User API URL**: `https://auth.domain.tld/application/o/userinfo/`
- **Scopes**: `openid profile email`
- **Username Key**: `preferred_username`
- **Name Key**: `name`
- **Email Key**: `email`
- **User ID Key**: `sub`