# Как использовать FIDO2 с Discourse за обратным прокси?

**URL:** https://meta.discourse.org/t/how-to-use-fido2-with-discourse-behind-a-reverse-proxy/291071
**Category:** Self-hosting
**Created:** [09.Январь.2024 20:07:17 UTC](https://meta.discourse.org/t/how-to-use-fido2-with-discourse-behind-a-reverse-proxy/291071 "2024-01-09T20:07:17Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![JonahAragon1](https://avatars.discourse-cdn.com/v4/letter/j/f19dbf/32.png) [@JonahAragon1](https://meta.discourse.org/u/JonahAragon1)
#### Post date: [09.Январь.2024 20:07:17 UTC](https://meta.discourse.org/t/how-to-use-fido2-with-discourse-behind-a-reverse-proxy/291071/1 "2024-01-09T20:07:17Z")

</div>

Кто-нибудь уже разобрался, как использовать FIDO2 с Discourse за обратным прокси? У меня возникает проблема при использовании шаблона `web.socketed.template.yml` с форумом, расположенным за Cloudflare Tunnel.

Ни Yubikey 2FA, ни новые [входы с помощью Passkey](https://meta.discourse.org/t/passwordless-login-using-passkeys/285589) у меня не работают.

---

<div class="post-metadata">

### Author: ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)
#### Post date: [09.Январь.2024 20:24:29 UTC](https://meta.discourse.org/t/how-to-use-fido2-with-discourse-behind-a-reverse-proxy/291071/2 "2024-01-09T20:24:29Z")

</div>

Это на среде разработки? Возможно, вам потребуется временно переопределить этот фрагмент:

> <https://github.com/discourse/discourse/blob/main/lib/discourse_webauthn.rb#L84-L100>

Также, скорее всего, полезно будет использовать флаг `--forward-host` при запуске сервера, например: `bin/ember-cli -u --forward-host`.

---

<div class="post-metadata">

### Author: ![JonahAragon1](https://avatars.discourse-cdn.com/v4/letter/j/f19dbf/32.png) [@JonahAragon1](https://meta.discourse.org/u/JonahAragon1)
#### Post date: [09.Январь.2024 20:28:20 UTC](https://meta.discourse.org/t/how-to-use-fido2-with-discourse-behind-a-reverse-proxy/291071/3 "2024-01-09T20:28:20Z")

</div>

Нет, это установка в производственной среде.

---

<div class="post-metadata">

### Author: ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)
#### Post date: [09.Январь.2024 20:29:53 UTC](https://meta.discourse.org/t/how-to-use-fido2-with-discourse-behind-a-reverse-proxy/291071/4 "2024-01-09T20:29:53Z")

</div>

Какие сообщения об ошибках вы получаете?

---

<div class="post-metadata">

### Author: ![JonahAragon1](https://avatars.discourse-cdn.com/v4/letter/j/f19dbf/32.png) [@JonahAragon1](https://meta.discourse.org/u/JonahAragon1)
#### Post date: [09.Январь.2024 20:33:14 UTC](https://meta.discourse.org/t/how-to-use-fido2-with-discourse-behind-a-reverse-proxy/291071/5 "2024-01-09T20:33:14Z")

</div>

![c81qGx0n98MtSTP6](https://global.discourse-cdn.com/meta/original/4X/b/f/9/bf97d3516478fcdd0a370bdbbc5263cd891513cd.jpeg)

---

<div class="post-metadata">

### Author: ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)
#### Post date: [09.Январь.2024 20:37:28 UTC](https://meta.discourse.org/t/how-to-use-fido2-with-discourse-behind-a-reverse-proxy/291071/6 "2024-01-09T20:37:28Z")

</div>

Какой полный URL запроса, который не удался, `/auth.json`?

---

<div class="post-metadata">

### Author: ![JonahAragon1](https://avatars.discourse-cdn.com/v4/letter/j/f19dbf/32.png) [@JonahAragon1](https://meta.discourse.org/u/JonahAragon1)
#### Post date: [09.Январь.2024 20:40:32 UTC](https://meta.discourse.org/t/how-to-use-fido2-with-discourse-behind-a-reverse-proxy/291071/7 "2024-01-09T20:40:32Z")

</div>

Ах, нет: `/session/passkey/auth.json`

---

<div class="post-metadata">

### Author: ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)
#### Post date: [09.Январь.2024 20:54:40 UTC](https://meta.discourse.org/t/how-to-use-fido2-with-discourse-behind-a-reverse-proxy/291071/8 "2024-01-09T20:54:40Z")

</div>

Хорошо, значит ваш сервер считает, что он работает не на том хостнейме, который запрашивает браузер. Процедура генерации ключа безопасности или passkey должна гарантировать, что хостнейм браузера совпадает с хостнеймом сервера (ключи генерируются для каждого хостнейма отдельно).

Можете ли вы войти в консоль Rails и проверить, что выводит команда `Discourse.current_hostname`? Если вывод не совпадает с URL, по которому вы обращаетесь к сайту, то проблема именно в этом.

---

<div class="post-metadata">

### Author: ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)
#### Post date: [09.Январь.2024 20:56:06 UTC](https://meta.discourse.org/t/how-to-use-fido2-with-discourse-behind-a-reverse-proxy/291071/9 "2024-01-09T20:56:06Z")

</div>

Обратите внимание, это также может быть проблемой `http` против `https`. Я вижу, что логотип ищет URL-адрес в формате `http://` на вашем сайте.

---

<div class="post-metadata">

### Author: ![JonahAragon1](https://avatars.discourse-cdn.com/v4/letter/j/f19dbf/32.png) [@JonahAragon1](https://meta.discourse.org/u/JonahAragon1)
#### Post date: [09.Январь.2024 20:57:39 UTC](https://meta.discourse.org/t/how-to-use-fido2-with-discourse-behind-a-reverse-proxy/291071/10 "2024-01-09T20:57:39Z")

</div>

`Discourse.current_hostname` совпадает с URL, по которому я обращаюсь к сайту. Можно ли посмотреть, какой хост-нейм, по мнению Discourse, запрашивает мой браузер?

---

<div class="post-metadata">

### Author: ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)
#### Post date: [09.Январь.2024 20:59:01 UTC](https://meta.discourse.org/t/how-to-use-fido2-with-discourse-behind-a-reverse-proxy/291071/11 "2024-01-09T20:59:01Z")

</div>

Что вы получите для `Discourse.base_url` в консоли?

---

<div class="post-metadata">

### Author: ![JonahAragon1](https://avatars.discourse-cdn.com/v4/letter/j/f19dbf/32.png) [@JonahAragon1](https://meta.discourse.org/u/JonahAragon1)
#### Post date: [09.Январь.2024 21:01:15 UTC](https://meta.discourse.org/t/how-to-use-fido2-with-discourse-behind-a-reverse-proxy/291071/12 "2024-01-09T21:01:15Z")

</div>

Ага, он _действительно_ установлен на URL `http://` (с правильным именем хоста). Я использую настройку, описанную здесь, чтобы сделать Discourse доступным через Cloudflare Tunnel:

> [@Run other websites on the same machine as Discourse](https://meta.discourse.org/t/run-other-websites-on-the-same-machine-as-discourse/17247):
>
> @pfaffman edited this heavily 2022.02.24. Blame me if it’s broken. If you want to run other websites on the same machine as Discourse, you need to set up an extra NGINX or HAProxy proxy in front of the Docker container. NOTE: This is for advanced admins This guide assumes you already have Discourse working - if you don’t, it may be hard to tell whether or not the configuration is working. You cannot use ./discourse-setup to set up Discourse if another server is using port 80 or 443. You will…

---

<div class="post-metadata">

### Author: ![JonahAragon1](https://avatars.discourse-cdn.com/v4/letter/j/f19dbf/32.png) [@JonahAragon1](https://meta.discourse.org/u/JonahAragon1)
#### Post date: [09.Январь.2024 21:08:01 UTC](https://meta.discourse.org/t/how-to-use-fido2-with-discourse-behind-a-reverse-proxy/291071/13 "2024-01-09T21:08:01Z")

</div>

О, кажется, я понял. Включение настройки `force https` в Discourse, похоже, исправило проблему. Не совсем понятно, почему она была отключена. Мне кажется, в конфигурации по умолчанию это не было необходимо до добавления ещё одного обратного прокси перед ним. Спасибо за помощь!

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [08.Февраль.2024 21:08:14 UTC](https://meta.discourse.org/t/how-to-use-fido2-with-discourse-behind-a-reverse-proxy/291071/14 "2024-02-08T21:08:14Z")

</div>

Эта тема была автоматически закрыта через 30 дней после последнего ответа. Новые ответы больше не принимаются.
