Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README.md #41

Merged
merged 2 commits into from
Jun 13, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 38 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,8 @@

This plugin is used to authenticate in Redmine through an OAuth provider.

The user is identified by the email registered by the OAuth provider. The email must correspond with an email registered
in Redmine. If such an email is not found, the user is ofered with registration to Redmine depending on the Redmine's
setting **Self-registration**.
The user is identified by the email registered with the OAuth provider. The email must match an email registered in Redmine.
If such an email is not found, the user will be offered to register in Redmine, depending on Redmine's setting **Self-registration**.

Inspired by Gucin's plugin https://github.com/Gucin/redmine_omniauth_azure.

Expand All @@ -17,7 +16,7 @@ Supported OAuth providers:
* GitLab (https://about.gitlab.com)
* Google (https://google.com)
* Keycloak (https://www.keycloak.org)
* Otka (https://www.okta.com)
* Okta (https://www.okta.com)

### Installation:

Expand All @@ -27,7 +26,7 @@ Supported OAuth providers:
4. Install required gems
5. Restart the application

E.g. Linux + Apache web server
e.g. Linux + Apache web server

```shell
cd plugins
Expand All @@ -38,42 +37,61 @@ bundle install
systemctl restart apache2
```

#### Docker installation

1. Enter the plugins folder you mount into Docker
2. Clone the repository
3. Add permission fix and build-essential:
```
FROM redmine:latest

# Fix permissions for bundle install of bigdecimal for redmine_oauth
RUN chown -R redmine: /usr/local/bundle/ && chmod -R o-w /usr/local/bundle/

# Install build-essential to build dependencies of redmine_oauth
RUN export DEBIAN_FRONTEND=noninteractive \
&& apt-get update \
&& apt-get install --yes --no-install-recommends build-essential \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
```

### Registration

Register your Redmine instance as an application by your OAuth provider. Follow the instructions given on their web
sites. As the redirect URI add https://yourdomain/oauth2callback.
Register your Redmine instance as an application with your OAuth provider. Follow the instructions given on their web
sites. Add `https://yourdomain/oauth2callback` as redirect URI.

### Configuration

Open _Administration -> Plugins_ in your Redmine and configure the plugin.

Examples:

#### Provider Azure AD
#### Provider Azure AD

* Site: https://login.microsoftonline.com
* Client ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
* Client secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
* Tenant ID / Realm xxxxxxxx-xxx-xxxx-xxxx-xxxxxxxxxxxx
* Client ID: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`
* Client secret: `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`
* Tenant ID / Realm `xxxxxxxx-xxx-xxxx-xxxx-xxxxxxxxxxxx`

#### Provider Google

* Site: https://accounts.google.com
* Client ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
* Client secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
* Client ID: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`
* Client secret: `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`

#### Provider Keycloak

Create a new OIDC Client in your Keycloak Realm. Activate `Client authentication`.

* Site: https://keycloak.example.com (without any paths)
* Client-ID: keycloak.example.com (do not include `https://` or other special characters in the Client ID)
* Site: `https://keycloak.example.com` (without any paths)
* Client-ID: `keycloak.example.com` (do not include `https://` or other special characters in the Client ID)
* Secret: Copy the client secret from Keycloak
* Tenant ID: the name of your Keycloak realm

### Tasks

## Receive IMAP
#### Receive IMAP
Read emails from an IMAP server and process them into Redmine.

Available options:
Expand All @@ -90,7 +108,9 @@ Available options:

Example:

```rake redmine_oauth:email:receive_imap username='[email protected]' RAILS_ENV="production"```
```shell
rake redmine_oauth:email:receive_imap username='[email protected]' RAILS_ENV="production"
```

**Prior accessing IMAP via OAuth, it is necessary to grant flow to authenticate IMAP connections.**

Expand All @@ -100,7 +120,7 @@ https://learn.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how

### Uninstallation

```
```shell
cd plugins
rm redmine_oauth
```
Expand Down
Loading