# Discourse como provedor de SSO: erro de login

**URL:** https://meta.discourse.org/t/discourse-as-sso-provider-login-error/149572
**Category:** SSO
**Created:** [28 Abril , 2020 09:33 UTC](https://meta.discourse.org/t/discourse-as-sso-provider-login-error/149572 "2020-04-28T09:33:41Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![balupton](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/balupton/32/255461_2.png) [@balupton](https://meta.discourse.org/u/balupton)
#### Post date: [28 Abril , 2020 09:33 UTC](https://meta.discourse.org/t/discourse-as-sso-provider-login-error/149572/1 "2020-04-28T09:33:41Z")

</div>

Estou seguindo este guia aqui:

> [@Use Discourse as an identity provider (SSO, DiscourseConnect)](https://meta.discourse.org/t/using-discourse-as-a-sso-provider/32974?u=balupton):
>
> So you want to use Discourse as an identity provider for your own web app? Great! Let’s get started. Enable [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) provider setting Under Discourse admin site settings (/admin/site\_settings) enable setting enable discourse connect provider and add a secret string to discourse connect provider secrets (used to hash SSO payloads). Implement [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) in your web app: Generate a random [nonce](https://en.wikipedia.org/wiki/Cryptographic_nonce). Let’s call this value NONCE. Save it temporarily so that you can verify it with the …

Estou fornecendo a assinatura correta, no entanto, por algum motivo, o Discourse não está aceitando.

Aqui está a URL que estou acessando:

> **[Bevry's Discourse - Accelerating collaborative wisdom.](https://discourse.bevry.me/session/sso_provider?sso=bm9uY2U9NzhmOGYwZjgtNDYwZi00YjM4LTkwODEtNTFjYzJjZTA1YjMyJnJldHVybl9zc29fdXJsPWh0dHBzOi8vZGlzY291cnNlLXZlcmlmeS5iZXZyeS53b3JrZXJzLmRldg%3D%3D&sig=7334a0dba3070e4db76a824ef30413e0eb9cb8269ddc3097673a80f2c7d215ee)**

Aqui está o log de erro correspondente:

```plaintext
Mensagem

Log detalhado do SSO: Erro ao analisar assinatura

Assincronia inválida para o payload

sso: ocultado

sig: ae997097f358b7e08aa0568290b55ef6e2174077e96a1184153b1d8369d50f8

sig esperada: ae997097f358b7e08aa0568290b55ef6e2174077e96a1184153b1d08369d50f8

Backtrace

/var/www/discourse/app/controllers/session_controller.rb:52:in `rescue in sso_provider'
/var/www/discourse/app/controllers/session_controller.rb:41:in `sso_provider'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.2.2/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.2.2/lib/abstract_controller/base.rb:196:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.2.2/lib/action_controller/metal/rendering.rb:30:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.2.2/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.2.2/lib/active_support/callbacks.rb:135:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.2.2/lib/abstract_controller/callbacks.rb:41:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.2.2/lib/action_controller/metal/rescue.rb:22:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.2.2/lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'

Env

HTTP HOSTS: discuss.bevry.me

```

Aqui estão as configurações:

 ![Screen Shot 2020-04-28 at 7.33.09 pm](https://global.discourse-cdn.com/meta/original/3X/8/8/88ec4c33c5f65b0b92a8258dac679615698c2ee5.png)

Aqui está o código para o worker do Cloudflare:

```plaintext
ocultado - será aberto como código fonte posteriormente

```

No entanto, o problema pode estar do nosso lado, pois há uma diferença entre:

- `ae997097f358b7e08aa0568290b55ef6e2174077e96a1184153b1d8369d50f8`
- `ae997097f358b7e08aa0568290b55ef6e2174077e96a1184153b1d08369d50f8`

Embora eu não tenha certeza de como resolver isso.

---

<div class="post-metadata">

### Author: ![balupton](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/balupton/32/255461_2.png) [@balupton](https://meta.discourse.org/u/balupton)
#### Post date: [28 Abril , 2020 09:41 UTC](https://meta.discourse.org/t/discourse-as-sso-provider-login-error/149572/2 "2020-04-28T09:41:59Z")

</div>

Ok, usando este método resolveu:

```plaintext
// https://jameshfisher.com/2017/10/31/web-cryptography-api-hmac/
// https://stackoverflow.com/questions/40031688/javascript-arraybuffer-to-hex
export function buf2hex(buffer: ArrayBuffer): string {
	return Array.prototype.map
		.call(new Uint8Array(buffer), (x) => ('00' + x.toString(16)).slice(-2))
		.join('')
}

```

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [28 Maio , 2020 09:42 UTC](https://meta.discourse.org/t/discourse-as-sso-provider-login-error/149572/3 "2020-05-28T09:42:03Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
