Last active
April 3, 2025 21:30
-
-
Save zar3bski/ba1224ab0352c05dfe1e7703db09e94d to your computer and use it in GitHub Desktop.
Set OIDC parameters programmatically for Dolibarr v.17.0.4 official docker image
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
If it is possible to set `openid_connect` as one of the authentication options in `/var/www/html/conf/conf.php` | |
```php | |
<?php | |
... | |
$dolibarr_main_authentication = 'openid_connect,dolibarr'; | |
... | |
``` | |
providing the variables in the interface is a pain in the a**, especially in docker environments | |
where you dump the volumes to iterate faster. | |
After some unsuccessful attempts, I give you my receipe: let's just populate llx_const | |
In the official docker image (tested on dolibarr/dolibarr:21.0.0), this script has to be mounted inside | |
/var/www/scripts/docker-init.d for the magic to occur | |
*/ | |
/* create or update MAIN_AUTHENTICATION_OIDC_CLIENT_ID */ | |
SELECT MAX(rowid) AS max into @maxRowId FROM llx_const; | |
SET @KEY = 'MAIN_AUTHENTICATION_OIDC_CLIENT_ID'; | |
SET @VALUE = 'My-Super-Awesome-Client-ID-1234'; | |
UPDATE llx_const SET value=@VALUE | |
WHERE name=@KEY; | |
INSERT INTO llx_const (rowid, name, value) | |
SELECT @maxRowId+1, @KEY, @VALUE | |
WHERE NOT EXISTS (SELECT 1 FROM llx_const WHERE name=@KEY); | |
/* create or update MAIN_AUTHENTICATION_OIDC_CLIENT_SECRET */ | |
SELECT MAX(rowid) AS max into @maxRowId FROM llx_const; | |
SET @KEY = 'MAIN_AUTHENTICATION_OIDC_CLIENT_SECRET'; | |
SET @VALUE = 'A406Aw5zO0YcUHaxRLJ4N36gNoeFr6bG'; | |
UPDATE llx_const SET value=@VALUE | |
WHERE name=@KEY; | |
INSERT INTO llx_const (rowid, name, value) | |
SELECT @maxRowId+1, @KEY, @VALUE | |
WHERE NOT EXISTS (SELECT 1 FROM llx_const WHERE name=@KEY); | |
/* create or update MAIN_AUTHENTICATION_OIDC_AUTHORIZE_URL */ | |
SELECT MAX(rowid) AS max into @maxRowId FROM llx_const; | |
SET @KEY = 'MAIN_AUTHENTICATION_OIDC_AUTHORIZE_URL'; | |
SET @VALUE = 'https://identity.company.com/realms/pyramiid/protocol/openid-connect/auth'; | |
UPDATE llx_const SET value=@VALUE | |
WHERE name=@KEY; | |
INSERT INTO llx_const (rowid, name, value) | |
SELECT @maxRowId+1, @KEY, @VALUE | |
WHERE NOT EXISTS (SELECT 1 FROM llx_const WHERE name=@KEY); | |
/* create or update MAIN_AUTHENTICATION_OIDC_TOKEN_URL */ | |
SELECT MAX(rowid) AS max into @maxRowId FROM llx_const; | |
SET @KEY = 'MAIN_AUTHENTICATION_OIDC_TOKEN_URL'; | |
SET @VALUE = 'https://identity.company.com/realms/pyramiid/protocol/openid-connect/token'; | |
UPDATE llx_const SET value=@VALUE | |
WHERE name=@KEY; | |
INSERT INTO llx_const (rowid, name, value) | |
SELECT @maxRowId+1, @KEY, @VALUE | |
WHERE NOT EXISTS (SELECT 1 FROM llx_const WHERE name=@KEY); | |
/* create or update MAIN_AUTHENTICATION_OIDC_USERINFO_URL */ | |
SELECT MAX(rowid) AS max into @maxRowId FROM llx_const; | |
SET @KEY = 'MAIN_AUTHENTICATION_OIDC_USERINFO_URL'; | |
SET @VALUE = 'https://identity.company.com/realms/pyramiid/protocol/openid-connect/userinfo'; | |
UPDATE llx_const SET value=@VALUE | |
WHERE name=@KEY; | |
INSERT INTO llx_const (rowid, name, value) | |
SELECT @maxRowId+1, @KEY, @VALUE | |
WHERE NOT EXISTS (SELECT 1 FROM llx_const WHERE name=@KEY); | |
/* create or update MAIN_AUTHENTICATION_OIDC_LOGOUT_URL */ | |
SELECT MAX(rowid) AS max into @maxRowId FROM llx_const; | |
SET @KEY = 'MAIN_AUTHENTICATION_OIDC_LOGOUT_URL'; | |
SET @VALUE = 'https://identity.company.com/realms/pyramiid/protocol/openid-connect/logout'; | |
UPDATE llx_const SET value=@VALUE | |
WHERE name=@KEY; | |
INSERT INTO llx_const (rowid, name, value) | |
SELECT @maxRowId+1, @KEY, @VALUE | |
WHERE NOT EXISTS (SELECT 1 FROM llx_const WHERE name=@KEY); | |
/* create or update MAIN_AUTHENTICATION_OIDC_SCOPES */ | |
SELECT MAX(rowid) AS max into @maxRowId FROM llx_const; | |
SET @KEY = 'MAIN_AUTHENTICATION_OIDC_SCOPES'; | |
SET @VALUE = 'openid email profile'; | |
UPDATE llx_const SET value=@VALUE | |
WHERE name=@KEY; | |
INSERT INTO llx_const (rowid, name, value) | |
SELECT @maxRowId+1, @KEY, @VALUE | |
WHERE NOT EXISTS (SELECT 1 FROM llx_const WHERE name=@KEY); | |
/* create or update MAIN_AUTHENTICATION_OIDC_REDIRECT_URL */ | |
SELECT MAX(rowid) AS max into @maxRowId FROM llx_const; | |
SET @KEY = 'MAIN_AUTHENTICATION_OIDC_REDIRECT_URL'; | |
SET @VALUE = 'https://erp.company.com/?openid_mode=true'; | |
UPDATE llx_const SET value=@VALUE | |
WHERE name=@KEY; | |
INSERT INTO llx_const (rowid, name, value) | |
SELECT @maxRowId+1, @KEY, @VALUE | |
WHERE NOT EXISTS (SELECT 1 FROM llx_const WHERE name=@KEY); | |
/* create or update MAIN_AUTHENTICATION_OIDC_REDIRECT_URL */ | |
SELECT MAX(rowid) AS max into @maxRowId FROM llx_const; | |
SET @KEY = 'MAIN_AUTHENTICATION_OIDC_REDIRECT_URL'; | |
SET @VALUE = 'https://erp.pyramiid.com/?openid_mode=true'; | |
UPDATE llx_const SET value=@VALUE | |
WHERE name=@KEY; | |
INSERT INTO llx_const (rowid, name, value) | |
SELECT @maxRowId+1, @KEY, @VALUE | |
WHERE NOT EXISTS (SELECT 1 FROM llx_const WHERE name=@KEY); | |
/* create or update MAIN_AUTHENTICATION_OIDC_LOGIN_CLAIM */ | |
SELECT MAX(rowid) AS max into @maxRowId FROM llx_const; | |
SET @KEY = 'MAIN_AUTHENTICATION_OIDC_LOGIN_CLAIM'; | |
SET @VALUE = 'email profile'; | |
UPDATE llx_const SET value=@VALUE | |
WHERE name=@KEY; | |
INSERT INTO llx_const (rowid, name, value) | |
SELECT @maxRowId+1, @KEY, @VALUE | |
WHERE NOT EXISTS (SELECT 1 FROM llx_const WHERE name=@KEY); | |
/* create or update MAIN_LOGOUT_GOTO_URL */ | |
SELECT MAX(rowid) AS max into @maxRowId FROM llx_const; | |
SET @KEY = 'MAIN_LOGOUT_GOTO_URL'; | |
SET @VALUE = 'https://identity.company.com/realms/pyramiid/protocol/openid-connect/logout?client_id=My-Super-Awesome-Client-ID-1234&returnTo=https://erp.company.com'; | |
UPDATE llx_const SET value=@VALUE | |
WHERE name=@KEY; | |
INSERT INTO llx_const (rowid, name, value) | |
SELECT @maxRowId+1, @KEY, @VALUE | |
WHERE NOT EXISTS (SELECT 1 FROM llx_const WHERE name=@KEY); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment