Content
VK ID Authentication plugin for OpenProject (openproject_vk_id)
Hi everyone,
I'd like to share a small plugin I've built: VK ID authentication for OpenProject.
VK ID (id.vk.ru) is the identity platform of VK, the largest social network in Russia and CIS — widely used by companies in the region. VK ID speaks "almost standard" OpenID Connect, but with a few deviations that prevent the stock OpenProject OIDC provider from working with it:
-
no public
.well-known/openid-configurationdiscovery document; -
mandatory PKCE (S256);
-
an extra
device_idparameter during token exchange; -
a non-standard userinfo endpoint.
openproject_vk_id is a lightweight compatibility layer (pure plugin, no core patches) that fixes all of this:
-
static metadata injection for
id.vk.ru— the provider activates right away; -
custom OmniAuth request/callback phases with full PKCE and
device_idsupport; -
flexible login mapping:
phone,email,user_id, or any[custom_field]from the VK profile; -
clean logout handling;
-
detailed flow logging for troubleshooting.
Compatibility
-
OpenProject 17.x (tested on 17.6.0)
-
Works alongside any other OIDC providers — the patch only activates for VK ID.
Screenshots
Login page with the VK ID button: login-page-vk-id.png
Provider endpoints auto-filled by the plugin: config-step2-endpoints.png
Plugin listed in Administration → Plugins: `plugins-list.png`
Installation (Docker)
FROM openproject/openproject:17
RUN echo 'gem "openproject_vk_id", "~> 1.1"' >> Gemfile.plugins && bundle install
Then add a provider under Administration → Authentication → OpenID Connect with metadata URL https://id.vk.ru — that's it.
Links
-
Docs: installation, configuration, troubleshooting and FAQ in the repo
The plugin is GPL-3.0, just like OpenProject itself. Issues and PRs are welcome — and if the plugin saves you time, there's a donation link in the README. 🙂
Hope it's useful for teams in the VK ecosystem. Feedback appreciated!