Continuiamo la discussione da SAML plugin in repo. Multisite:
Sto cercando di utilizzare il seguente codice nel plugin SAML per creare automaticamente un account dopo che un utente si è autenticato con successo, in modo che gli utenti non si trovino di fronte alla finestra di accesso in cui potrebbero teoricamente modificare la loro email, il nome utente e il nome. Preferirei che gli utenti non avessero il controllo su queste impostazioni, ma che venissero impostate automaticamente in base all’autenticazione SAML.
Il mio file app.yml contiene:
...
# Forza l'attributo fullName dall'asserzione SAML per sovrascrivere l'attributo name in modo che
# il nome completo dell'utente venga mappato nel campo Nome di Discourse e aiuti ad
# arricchire il campo Nome Utente numerico nei post.
DISCOURSE_SAML_ATTRIBUTE_STATEMENTS: "name:fullName"
DISCOURSE_SAML_AUTO_CREATE_ACCOUNT: true
...
Quando provo questa funzionalità, vedo il seguente errore nei log:
Completed 500 Internal Server Error in 175ms (ActiveRecord: 0.0ms)
ActiveRecord::NotNullViolation (PG::NotNullViolation: ERROR: null value in column "uid" violates not-null constraint
DETAIL: Failing row contains (2, 3, null, saml, user@company.com, Smith, John, 2019-06-03 21:40:55.44066, 2019-06-03 21:40:55.44066).
: INSERT INTO "oauth2_user_infos" ("user_id", "provider", "email", "name", "created_at", "updated_at") VALUES (3, 'saml', 'user@company.com', 'Smith, John', '2019-06-03 21:40:55.440660', '2019-06-03 21:40:55.440660') RETURNING "id")
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/patches/db/pg.rb:69:in `async_exec_params'
Failed to handle exception in exception app middleware : PG::NotNullViolation: ERROR: null value in column "uid" violates not-null constraint
DETAIL: Failing row contains (2, 3, null, saml, user@company.com, Smith, John, 2019-06-03 21:40:55.44066, 2019-06-03 21:40:55.44066).
: INSERT INTO "oauth2_user_infos" ("user_id", "provider", "email", "name", "created_at", "updated_at") VALUES (3, 'saml','user@company.com', 'Smith, John', '2019-06-03 21:40:55.440660', '2019-06-03 21:40:55.440660') RETURNING "id"
Qualcuno sa se devo configurare il plugin per forzare l’impostazione di “uid” tramite uno degli attributi dell’asserzione SAML?
Quando DISCOURSE_SAML_AUTO_CREATE_ACCOUNT è impostato su false o non è presente, l’autenticazione basata su SAML funziona, ma l’utente vede la finestra di dialogo in cui può modificare la propria email, il nome utente e il nome.
