# Autenticar com SAML fornece nome de usuário e e-mail com hash

**URL:** https://meta.discourse.org/t/authenticate-with-saml-gives-hashed-username-and-e-mail/158685
**Category:** SSO
**Created:** [24 Julho , 2020 13:11 UTC](https://meta.discourse.org/t/authenticate-with-saml-gives-hashed-username-and-e-mail/158685 "2020-07-24T13:11:59Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![ronligt](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ronligt/32/187918_2.png) [@ronligt](https://meta.discourse.org/u/ronligt)
#### Post date: [24 Julho , 2020 13:11 UTC](https://meta.discourse.org/t/authenticate-with-saml-gives-hashed-username-and-e-mail/158685/1 "2020-07-24T13:11:59Z")

</div>

Olá,

Gostaria de autenticar os usuários da minha instalação do Discourse com o SAML da nossa universidade.

Estou usando a versão do Discourse via Docker com o plugin SAML. Tentei seguir as instruções no site do GitHub deste plugin.

Tudo funciona bem até que apareça o seguinte formulário:

 ![Screenshot 2020-07-24 at 15.03.53](https://global.discourse-cdn.com/meta/original/3X/5/9/59276d972a55971202a2deda128942b575e453ad.png)  
Em vez do endereço de e-mail regular que eu esperava ver, agora vejo um valor hexadecimal, que presumo ser a forma hash do endereço de e-mail. Não consigo continuar o processo de autenticação com esses valores.

Qualquer ajuda sobre este tópico seria muito apreciada!

Atenciosamente,  
Ronald

---

<div class="post-metadata">

### Author: ![osioke](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/osioke/32/238946_2.png) [@osioke](https://meta.discourse.org/u/osioke)
#### Post date: [24 Julho , 2020 13:24 UTC](https://meta.discourse.org/t/authenticate-with-saml-gives-hashed-username-and-e-mail/158685/2 "2020-07-24T13:24:19Z")

</div>

Olá, Ronald 🙂 👋 estamos muito felizes em ver cada vez mais universidades se juntando à família Discourse 😃

Você tem um problema bastante interessante! Minha experiência com SAML/SSO não é muito forte, então não tenho certeza do que está acontecendo aqui, mas você pode tentar ativar a configuração do site `verbose sso logging`? Isso ajudaria a mostrar alguns erros úteis em /logs e talvez explicar por que você está enfrentando esse problema ou fornecer algo mais específico que você possa compartilhar aqui, para que possamos ajudar melhor.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [24 Julho , 2020 13:51 UTC](https://meta.discourse.org/t/authenticate-with-saml-gives-hashed-username-and-e-mail/158685/3 "2020-07-24T13:51:49Z")

</div>

Minha suposição (e minha experiência com SAML é limitada; acho que só ajudei alguém a configurá-lo uma vez) é que o problema está no lado do SAML. Ou ele está configurado para enviar o hash, ou você está de alguma forma usando o campo errado.

---

<div class="post-metadata">

### Author: ![ronligt](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ronligt/32/187918_2.png) [@ronligt](https://meta.discourse.org/u/ronligt)
#### Post date: [24 Julho , 2020 14:38 UTC](https://meta.discourse.org/t/authenticate-with-saml-gives-hashed-username-and-e-mail/158685/4 "2020-07-24T14:38:17Z")

</div>

Muito obrigado pela sua rápida resposta!

Após configurar o log do SSO para verbose, foi isso que encontrei no `production.log`:

```plaintext
Started GET "/session/csrf" for <IP> at 2020-07-24 14:32:51 +0000
Processing by SessionController#csrf as JSON
Completed 200 OK in 1ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 321)
Started POST "/auth/saml" for <IP> at 2020-07-24 14:32:51 +0000
(saml) Request phase initiated.
Started POST "/auth/saml/callback" for <IP> at 2020-07-24 14:33:23 +0000
(saml) Callback phase initiated.
Processing by Users::OmniauthCallbacksController#complete as HTML
  Parameters: {"SAMLResponse"=>"<SNIP>", "provider"=>"saml"}
Redirected to https://discourse-imphys.tudelft.nl/
Completed 302 Found in 24ms (ActiveRecord: 0.0ms | Allocations: 10562)
Started GET "/" for <IP> at 2020-07-24 14:33:24 +0000
Processing by ListController#latest as HTML
  Rendering list/list.erb within layouts/application
  Rendered list/list.erb within layouts/application (Duration: 3.8ms | Allocations: 1991)
  Rendered layouts/_head.html.erb (Duration: 1.9ms | Allocations: 911)
  Rendered common/_discourse_stylesheet.html.erb (Duration: 0.4ms | Allocations: 267)
  Rendered application/_header.html.erb (Duration: 2.2ms | Allocations: 1022)
Completed 200 OK in 34ms (Views: 13.1ms | ActiveRecord: 0.0ms | Allocations: 15963)
Started GET "/u/hp.json" for <IP> at 2020-07-24 14:33:24 +0000
Processing by UsersController#get_honeypot_value as JSON
Completed 200 OK in 2ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 812)
Started GET "/u/check_username?username=&email=94422472fbfb32fdd22eaa2f88c723fb44be9958" for <IP> at 2020-07-24 14:33:25 +0000
Processing by UsersController#check_username as JSON
  Parameters: {"username"=>"", "email"=>"94422472fbfb32fdd22eaa2f88c723fb44be9958"}
Completed 200 OK in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 316)
Started GET "/u/check_username?username=94422472fbfb32fdd22e&email=94422472fbfb32fdd22eaa2f88c723fb44be9958" for <IP> at 2020-07-24 14:33:25 +0000
Processing by UsersController#check_username as JSON
  Parameters: {"username"=>"94422472fbfb32fdd22e", "email"=>"94422472fbfb32fdd22eaa2f88c723fb44be9958"}
Completed 200 OK in 3ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 1421)

```

Substituí o certificado por `<SNIP>` e meu endereço IP por `<IP>`.

---

<div class="post-metadata">

### Author: ![ronligt](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ronligt/32/187918_2.png) [@ronligt](https://meta.discourse.org/u/ronligt)
#### Post date: [24 Julho , 2020 14:39 UTC](https://meta.discourse.org/t/authenticate-with-saml-gives-hashed-username-and-e-mail/158685/5 "2020-07-24T14:39:21Z")

</div>

Obrigado pela resposta rápida!

Isso também pode ser o caso! Entrarei em contato com o emissor SAML e informarei sobre a hash…

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [24 Julho , 2020 16:02 UTC](https://meta.discourse.org/t/authenticate-with-saml-gives-hashed-username-and-e-mail/158685/6 "2020-07-24T16:02:39Z")

</div>

Sim! Dá para ver claramente que o SAML está enviando um hash do e-mail e do nome de usuário.

Acho que existe alguma configuração onde você mapeia os campos do SAML para os do Discourse, então é plausível que haja algo que você possa alterar no lado do Discourse para corrigir isso.

---

<div class="post-metadata">

### Author: ![ronligt](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ronligt/32/187918_2.png) [@ronligt](https://meta.discourse.org/u/ronligt)
#### Post date: [28 Julho , 2020 11:14 UTC](https://meta.discourse.org/t/authenticate-with-saml-gives-hashed-username-and-e-mail/158685/7 "2020-07-28T11:14:07Z")

</div>

Após mais pesquisas, descobri que o código ‘hashed’ no formulário de registro é, na verdade, o NameID enviado pelo IdP. Na configuração do SAML no IdP, também ativei os seguintes atributos:

- _Nome de exibição_: `urn:mace:dir:attribute-def:displayName`
- _Nome completo_: `urn:mace:dir:attribute-def:cn`
- _Endereço de e-mail_: `urn:mace:dir:attribute-def:mail`
- _ID do usuário_: `urn:mace:dir:attribute-def:uid`

Um terceiro confirmou que esses atributos são realmente enviados pelo IdP. No entanto, por algum motivo, os valores desses atributos não são utilizados no formulário de registro do Discourse (como mostrado anteriormente). Eu assumi que, no formulário:

- O campo `E-mail` teria o valor de `urn:mace:dir:attribute-def:mail`;
- O campo `Nome de usuário` teria o valor de `urn:mace:dir:attribute-def:mail`;
- O campo `Nome` teria o valor de `urn:mace:dir:attribute-def:displayName` (preferencialmente) ou `urn:mace:dir:attribute-def:cn`.

Existe alguma maneira de configurar o Discourse-SAML para mapear esses atributos corretamente?

---

<div class="post-metadata">

### Author: ![bizotto](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bizotto/32/303257_2.png) [@bizotto](https://meta.discourse.org/u/bizotto)
#### Post date: [3 Maio , 2023 06:28 UTC](https://meta.discourse.org/t/authenticate-with-saml-gives-hashed-username-and-e-mail/158685/8 "2023-05-03T06:28:22Z")

</div>

Olá @ronligt, algum sucesso em mapear os atributos corretos através das configurações do discourse-saml?

Tenho tentado usar esta configuração no plug-in, mas sem sorte até agora:

 ![Screenshot 2023-05-03 at 08.27.45](https://global.discourse-cdn.com/meta/original/4X/c/f/1/cf153dfb4090159e9de3bd6240a0285d84b4dc43.png)

Tenha um bom dia! 🙂
