Me encontré con el mismo problema al probar la integración SAML y finalmente logré que funcionara. Con los registros habilitados, verifica el contenido de @attributes, esas son las claves reales que necesitas para el mapeo y no el nombre amigable. Corresponden al atributo Name de los datos XML. En mi caso, el mapeo dentro de app.yml quedó así:
También es importante recompilar después de realizar cambios en la configuración. Después de hacerlo, mapeó correctamente el valor del correo electrónico de mi respuesta SAML.
Probablemente no sea el lugar adecuado, pero solo para añadir, necesitarás email, name, first_name, last_name y uid como atributos de Discourse para poder usar el plugin SAML.
def attribute_statements
result = {}
statements =
"name:fullName,name|email:email,mail|first_name:first_name,firstname,firstName|last_name:last_name,lastname,lastName|nickname:screenName"
custom_statements = setting(:attribute_statements)
statements = "#{statements}|#{custom_statements}" if custom_statements.present?
statements
.split("|")
.map do |statement|
attrs = statement.split(":", 2)
next if attrs.count != 2
(result[attrs[0]] ||= []) << attrs[1].split(",")
result[attrs[0]].flatten!
end
result
end
esta parte del código (ten en cuenta que no soy programador de Ruby) sugiere que necesitas mapear todos los atributos a tus atributos para que el sistema pueda funcionar… Intentaré probar esa información (tengo un problema en este momento con el plugin SAML y estoy intentando investigar los problemas).