{"id":18277923,"url":"https://github.com/kontron/redmine_oauth","last_synced_at":"2026-04-08T12:01:04.459Z","repository":{"id":62104812,"uuid":"536557612","full_name":"kontron/redmine_oauth","owner":"kontron","description":"Redmine authentication through OAuth.","archived":false,"fork":false,"pushed_at":"2026-04-02T11:52:53.000Z","size":2084,"stargazers_count":101,"open_issues_count":4,"forks_count":44,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-04-03T01:33:34.157Z","etag":null,"topics":["redmine","redmine-plugin"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kontron.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-09-14T12:01:26.000Z","updated_at":"2026-04-02T11:48:30.000Z","dependencies_parsed_at":"2024-01-15T10:16:40.967Z","dependency_job_id":"daa1e991-e486-4b54-ab59-0a9515197c28","html_url":"https://github.com/kontron/redmine_oauth","commit_stats":null,"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/kontron/redmine_oauth","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kontron%2Fredmine_oauth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kontron%2Fredmine_oauth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kontron%2Fredmine_oauth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kontron%2Fredmine_oauth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kontron","download_url":"https://codeload.github.com/kontron/redmine_oauth/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kontron%2Fredmine_oauth/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31554109,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T10:21:54.569Z","status":"ssl_error","status_checked_at":"2026-04-08T10:21:38.171Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["redmine","redmine-plugin"],"created_at":"2024-11-05T12:21:55.821Z","updated_at":"2026-04-08T12:01:03.391Z","avatar_url":"https://github.com/kontron.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Redmine OAuth plugin 4.0.6\n\n[![GitHub CI](https://github.com/kontron/redmine_oauth/actions/workflows/rubyonrails.yml/badge.svg?branch=main)](https://github.com/kontron/redmine_oauth/actions/workflows/rubyonrails.yml)\n[![Support Ukraine Badge](https://bit.ly/support-ukraine-now)](https://github.com/support-ukraine/support-ukraine)\n\nThis plugin is used to authenticate in Redmine through an OAuth provider.\n\nThe user is identified by the email or login registered with the OAuth provider. The email or login must match an email \nor login registered in Redmine. If such an email or login is not found, the user will be offered to register in Redmine, \ndepending on Redmine's setting **Self-registration**. OAuth logout is also supported, if it is set in the options.\nAccess to Redmine can be controlled by roles assigned in your OAuth provider.\nSee [#36](https://github.com/kontron/redmine_oauth/issues/36#issuecomment-2348842432) for details; as well as OAuth autologin.\n\nInspired by Gucin's plugin https://github.com/Gucin/redmine_omniauth_azure.\n\nSupported OAuth providers:\n* Azure AD (https://azure.microsoft.com)\n* Custom (OpenID Connect - OIDC)\n* GitHub (https://github.com)\n* GitLab (https://about.gitlab.com)\n* Google (https://google.com)\n* Keycloak (https://www.keycloak.org)\n* Okta (https://www.okta.com)\n\n### Installation:\n\n1. Enter the plugins folder \n2. Clone the repository\n3. Set user permissions\n4. Install required gems\n5. Migrate the database\n6. Restart the application\n\ne.g. Linux + Apache web server\n\n```shell \ncd plugins\ngit clone https://github.com/kontron/redmine_oauth.git\nchown -R www-data:www-data redmine_oauth\ncd ..\nbundle install\nbundle exec rake redmine:plugins:migrate RAILS_ENV=production NAME=redmine_oauth\nsystemctl restart apache2\n```\n\n#### Docker installation\n\n1. Enter the plugins folder you mount into Docker\n2. Clone the repository\n3. Add permission fix and build-essential:\n```\nFROM redmine:latest\n\n# Fix permissions for bundle install of bigdecimal for redmine_oauth\nRUN chown -R redmine: /usr/local/bundle/ \u0026\u0026 chmod -R o-w /usr/local/bundle/\n\n# Install build-essential to build dependencies of redmine_oauth\nRUN export DEBIAN_FRONTEND=noninteractive \\\n \u0026\u0026 apt-get update \\\n \u0026\u0026 apt-get install --yes --no-install-recommends build-essential \\\n \u0026\u0026 apt-get clean \\\n \u0026\u0026 rm -rf /var/lib/apt/lists/*\n```\n\n### Registration\n\nRegister your Redmine instance as an application with your OAuth provider. Follow the instructions given on their \nwebsites. Add `https://yourdomain/oauth2callback` as redirect URI.\n\n### Configuration\n\nOpen _Administration -\u003e OAuth providers_ in your Redmine and add your provider(s).\n\nExamples:\n\n#### Provider Azure AD\n\n* Site: https://login.microsoftonline.com\n* Client ID: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`\n* Client secret: `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`\n* Tenant ID / Realm `xxxxxxxx-xxx-xxxx-xxxx-xxxxxxxxxxxx`\n\n#### Provider GitHub\n\n* Site: https://github.com\n* Client ID: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`\n* Client secret: `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`\n\n#### Provider Google\n\n* Site: https://accounts.google.com\n* Client ID: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`\n* Client secret: `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`\n\n#### Provider Keycloak\n\nCreate a new OIDC Client in your Keycloak Realm. Activate `Client authentication`.\n\n* Site: `https://keycloak.example.com` (without any paths)\n* Client-ID: `keycloak.example.com` (do not include `https://` or other special characters in the Client ID)\n* Secret: Copy the client secret from Keycloak\n* Tenant ID: the name of your Keycloak realm\n\n### Tasks\n\n#### Receive IMAP\nRead emails from an IMAP server and process them into Redmine. Don't forget to set _IMAP_ = **true** by the dedicated \nOAuth provider which provides an access token.\n\nAvailable options:\n* host - IMAP server [outlook.office365.com]\n* port - Port [993]\n* scope - Scope ['https://outlook.office365.com/.default']\n* grant_type - Grant type ['client_credentials']\n* ssl - use SSL [true]\n* starttls - Start TLS [false]\n* username - Login ['']     \n* folder - Mail folder to scan [INBOX]\n* move_on_success - Where to move successfully processed messages [nil]\n* move_on_failure - Where to move unsuccessfully processed messages [nil]\n\nExample:\n\n```shell\nrake redmine_oauth:email:receive_imap username='notifications@example.com' RAILS_ENV=\"production\"\n```\n\n**Prior to accessing IMAP via OAuth, it is necessary to grant flow to authenticate IMAP connections.**\n\nHere is a procedure how to do that in Azure:\n\nhttps://learn.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth#use-client-credentials-grant-flow-to-authenticate-imap-and-pop-connections\n\n### Uninstallation\n\n```shell\nbundle exec rake redmine:plugins:migrate RAILS_ENV=production NAME=redmine_oauth VERSION=0\ncd plugins\nrm -r redmine_oauth\n```\nThen restart the application/web server.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkontron%2Fredmine_oauth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkontron%2Fredmine_oauth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkontron%2Fredmine_oauth/lists"}