# Vaultwarden에서 패스키 사용 시 문제 발생

**URL:** https://meta.discourse.org/t/issues-using-passkeys-with-vaultwarden/294865
**Category:** Support
**Tags:** passkey
**Created:** [2월 9, 2024, 4:54오후 UTC](https://meta.discourse.org/t/issues-using-passkeys-with-vaultwarden/294865 "2024-02-09T16:54:58Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![JappeHallunken](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jappehallunken/32/362117_2.png) [@JappeHallunken](https://meta.discourse.org/u/JappeHallunken)
#### Post date: [2월 9, 2024, 4:54오후 UTC](https://meta.discourse.org/t/issues-using-passkeys-with-vaultwarden/294865/1 "2024-02-09T16:54:58Z")

</div>

자체 호스팅된 Discourse 인스턴스의 사용자입니다. 패스키 추가 버튼이 보이는데, 클릭하면 Vaultwarden 플러그인이 열리지만 이후 다음과 같은 메시지가 표시됩니다.

> 패스키 등록 프로세스가 시간 초과되었거나, 취소되었거나, 허용되지 않습니다.

Firefox를 사용 중이며, GitHub 등에서 이미 패스키를 추가해 두었기 때문에 Firefox와 Vaultwarden 조합에서는 정상적으로 작동합니다. 그런데 이 특정 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: [2월 9, 2024, 5:28오후 UTC](https://meta.discourse.org/t/issues-using-passkeys-with-vaultwarden/294865/2 "2024-02-09T17:28:37Z")

</div>

Jappe님, 안녕하세요.

문의해 주셔서 감사합니다. Vaultwarden과 관련된 구체적인 문제이기 때문에 별도 주제로 옮겼습니다. (참고로 Vaultwarden은 [자신의 Discourse 포럼](https://vaultwarden.discourse.group)을 운영하고 있습니다 🎉 )

이 문제가 Firefox의 Vaultwarden 확장 프로그램에서만 발생하는지 알고 계신가요? 다른 브라우저도 시도해 보셨나요?

제가 이 문제를 테스트해 보려면 Vaultwarden 서버를 설정해야 할까요?

---

<div class="post-metadata">

### Author: ![JappeHallunken](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jappehallunken/32/362117_2.png) [@JappeHallunken](https://meta.discourse.org/u/JappeHallunken)
#### Post date: [2월 9, 2024, 6:07오후 UTC](https://meta.discourse.org/t/issues-using-passkeys-with-vaultwarden/294865/3 "2024-02-09T18:07:46Z")

</div>

vaultwarden과 bitwarden Firefox 플러그인이 문제가 아니라고 생각합니다. GitHub 같은 다른 서비스에서는 패스키 통합이 정상적으로 작동하기 때문입니다.

또한 이 특정 메시지는 [discourse의 yml 파일](https://github.com/discourse/discourse/blob/6311a80724cb781b1a252c07e8123f590d932350/config/locales/client.en.yml#L1536)에서도 찾을 수 있는데, 이는 `not_allowed_error`를 나타냅니다.

> [@pmusaraj](#):
>
> Firefox의 Vaultwarden 확장 프로그램에서만 이 문제가 발생하는지 아시나요?

정확히 말하면, 저는 Firefox용 공식 bitwarden 확장 프로그램을 사용 중이지만, 셀프호스팅된 Vaultwarden 인스턴스를 이용하고 있습니다.  
Fedora에서 Firefox도 시도해 보았는데, 원래 문제는 Windows용 Firefox에서 발생했습니다.  
이제 Windows용 Google Chrome으로 테스트해 보겠습니다.  
Chrome에서도 실패하더군요. 하지만 개발 도구를 확인해 보니 다음과 같은 내용이 있었습니다:

> **Firefox 콘솔 출력**
>
> ```plaintext
> Content-Security-Policy: Die Einstellungen der Seite haben das Laden einer Ressource auf blob:https://dietpi.com/b23d5e0c-dc61-4df8-b71b-88c5cd7f271a blockiert ("img-src").
> 
> Object { jqXHR: {…}, textStatus: "error", errorThrown: "" }
> errorThrown: ""
> jqXHR: Object { readyState: 4, getResponseHeader: getResponseHeader(e), getAllResponseHeaders: getAllResponseHeaders(), … }
> abort: function abort(e)
> always: function always()
> catch: function catch(e)
> done: function add()
> fail: function add()
> getAllResponseHeaders: function getAllResponseHeaders()
> getResponseHeader: function getResponseHeader(e)
> jqTextStatus: "error"
> overrideMimeType: function overrideMimeType(e)
> pipe: function pipe()
> progress: function add()
> promise: function promise(e)
> readyState: 4
> requestedUrl: "/forum/u/register_passkey.json"
> responseJSON: Object { errors: (1) […] }
> responseText: '{"errors":["The origin of the authentication request does not match the server origin."]}'
> setRequestHeader: function setRequestHeader(e, t)
> state: function state()
> status: 401
> statusCode: function statusCode(e)
> statusText: "error"
> then: function then(e, n, i)
> <prototype>: Object { … }
> textStatus: "error"
> <prototype>: Object { … }
> __defineGetter__ : function __defineGetter__ ()
> __defineSetter__ : function __defineSetter__ ()
> __lookupGetter__ : function __lookupGetter__ ()
> __lookupSetter__ : function __lookupSetter__ ()
> __proto__ : 
> constructor: function Object()
> hasOwnProperty: function hasOwnProperty()
> isPrototypeOf: function isPrototypeOf()
> propertyIsEnumerable: function propertyIsEnumerable()
> toLocaleString: function toLocaleString()
> toString: function toString()
> valueOf: function valueOf()
> <get __proto__ ()>: function __proto__ ()
> <set __proto__ ()>: function __proto__ ()
> chunk.6d10396b901f5b95b67e.d41d8cd9.js:1:2114375
> createPasskey https://dietpi.com/forum/assets/chunk.6d10396b901f5b95b67e.d41d8cd9.js:1
> 
> ```

Chrome에서도 거의 동일한 현상이 나타났습니다:

```plaintext
Failed to load resource: the server responded with a status of 401 ()
chunk.6d10396b901f5b95b67e.d41d8cd9.js:1 Object

```

그러므로 아마도 서버 설정 오류일까요?

> [@pmusaraj](#):
>
> 제가 이것을 테스트하려면 Vaultwarden 서버를 설정해야 하나요?

네, 또는 프로바이더를 사용하셔도 됩니다. Bitwarden 자체에는 개인 사용자를 위한 무료 플랜이 있습니다.  
필요하다면 더 많은 정보와 테스트 결과를 제공할 수 있습니다.

---

<div class="post-metadata">

### Author: ![JappeHallunken](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jappehallunken/32/362117_2.png) [@JappeHallunken](https://meta.discourse.org/u/JappeHallunken)
#### Post date: [2월 9, 2024, 6:27오후 UTC](https://meta.discourse.org/t/issues-using-passkeys-with-vaultwarden/294865/4 "2024-02-09T18:27:20Z")

</div>

추가 테스트를 해봤습니다:  
“추가” 버튼을 클릭하면 팝업이 나타나는 시점에 이미 콘솔에 `createPasskey` 함수에서 발생한 오류가 표시되고 있습니다.

```plaintext
Object { jqXHR: {…}, textStatus: "error", errorThrown: "" }
chunk.6d10396b901f5b95b67e.d41d8cd9.js:1:2114375
    createPasskey https://dietpi.com/forum/assets/chunk.6d10396b901f5b95b67e.d41d8cd9.js:1

```

그리고 나서 실제로 볼트에 추가하는 작업이 실패하는데, 이는 패스키가 생성되지 않았기 때문입니다.

~~이전 게시물에서 나온 첫 번째 오류 메시지는 이 문제와 관련이 없고 dietpi 서버의 CORS 관련 문제일 가능성이 높습니다.~~ `Content-Security-Policy`에 대한 첫 번째 오류 메시지는 Dark-reader 확장 프로그램에서 발생한 것입니다.

---

<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: [2월 9, 2024, 6:51오후 UTC](https://meta.discourse.org/t/issues-using-passkeys-with-vaultwarden/294865/5 "2024-02-09T18:51:56Z")

</div>

> [@JappeHallunken](#):
>
> 그러면 서버 설정 오류일 가능성이 높군요?

네, 게시하신 로그를 보면 주요 오류 메시지는 다음과 같습니다:

> 인증 요청의 출처가 서버 출처와 일치하지 않습니다.

패스키 및 보안 키 등록은 등록을 수행하는 사이트의 URL이 클라이언트(브라우저)와 서버 간에 일치하는지 확인합니다. 가장 가능성 높은 원인은 이 인스턴스에 불일치가 있다는 것이며, 때로는 http와 https의 차이, 다른 경우에는 프록시 문제입니다.

가장 먼저 확인해 볼 사항은 `force https` 사이트 설정이 활성화되어 있는지입니다.

---

<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: [2월 9, 2024, 6:53오후 UTC](https://meta.discourse.org/t/issues-using-passkeys-with-vaultwarden/294865/6 "2024-02-09T18:53:33Z")

</div>

그리고 @JappeHallunken, 일반적인 문제가 아닌지 확인하기 위해… 여기 메타에서 계정에 패스키를 추가해 볼 수 있을까요?

---

<div class="post-metadata">

### Author: ![JappeHallunken](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jappehallunken/32/362117_2.png) [@JappeHallunken](https://meta.discourse.org/u/JappeHallunken)
#### Post date: [2월 9, 2024, 6:58오후 UTC](https://meta.discourse.org/t/issues-using-passkeys-with-vaultwarden/294865/7 "2024-02-09T18:58:52Z")

</div>

> [@pmusaraj](#):
>
> 또한 @JappeHallunken, 일반적인 문제가 아닌지 확인하기 위해… 여기 메타에서 계정에 패스키를 추가해 볼 수 있나요?

네, 여기 메타에서 패스키를 성공적으로 추가했습니다.

> [@pmusaraj](#):
>
> 패스키 및 보안 키 등록은 등록을 요청하는 사이트의 URL이 클라이언트(브라우저)와 서버 간에 일치하는지 확인합니다. 아마도 이 인스턴스에서 불일치가 발생한 것 같으며, 때로는 http와 https의 차이이고, 다른 경우에는 프록시 문제일 수 있습니다.
> 
> 먼저 확인해야 할 사항은 `force https` 사이트 설정이 활성화되어 있는지입니다.

이 내용을 보고하겠습니다. 도움을 주셔서 감사합니다.

---

<div class="post-metadata">

### Author: ![MichaIng](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/michaing/32/251089_2.png) [@MichaIng](https://meta.discourse.org/u/MichaIng)
#### Post date: [2월 10, 2024, 1:00오후 UTC](https://meta.discourse.org/t/issues-using-passkeys-with-vaultwarden/294865/8 "2024-02-10T13:00:36Z")

</div>

우리가 직면한 첫 번째 문제는 CSP가 `blob:` 이미지 소스를 허용하지 않는 것이었습니다. 이제 실제로 어떤 설정이 누락되었거나 잘못된 것 같지만, 제가 그 설정을 찾을 수 없습니다:

```plaintext
[AdminSidebar] Custom link root_admin_additional_root_admin_upgrade must have a valid I18n label, got admin.docker.upgrade_tab chunk.6d10396b901f5b95b67e.d41d8cd9.js:1:2588880

Object { jqXHR: {…}, textStatus: "error", errorThrown: "" }
errorThrown: ""
jqXHR: Object { readyState: 4, getResponseHeader: getResponseHeader(e), getAllResponseHeaders: getAllResponseHeaders()
, … }
textStatus: "error"
<prototype>: Object { … }
chunk.6d10396b901f5b95b67e.d41d8cd9.js:1:2114375
    createPasskey https://dietpi.com/forum/assets/chunk.6d10396b901f5b95b67e.d41d8cd9.js:1

```

하지만 저는 당신이 옳다고 생각하며, 이것은 단순히 401 오류의 증상일 뿐인 것 같습니다.

HTTPS는 이미 Cloudflare 프록시와 웹 서버 리다이렉트, 그리고 `force https` 설정, HSTS, 프리로딩 등을 통해 강제되고 있으며, 이 Discourse 인스턴스에 일반 HTTP를 통해 접근하는 방법은 전혀 없습니다 😉.

문제는 Discourse가 도메인의 루트가 아닌 `/forum` 서브패스에 위치해 있다는 점일 수 있습니다.

---

<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: [2월 12, 2024, 2:38오후 UTC](https://meta.discourse.org/t/issues-using-passkeys-with-vaultwarden/294865/9 "2024-02-12T14:38:39Z")

</div>

> [@MichaIng](#):
>
> 문제가 될 수 있는 점은 Discourse가 도메인의 루트가 아닌 `/forum` 서브패스에 위치해 있다는 것일까요?

말씀이 맞으신 것 같습니다. 문제가 서브폴더 설정과 관련이 있는 것 같습니다. 곧 코드를 좀 더 자세히 살펴보겠습니다.

---

<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: [2월 12, 2024, 10:47오후 UTC](https://meta.discourse.org/t/issues-using-passkeys-with-vaultwarden/294865/11 "2024-02-12T22:47:34Z")

</div>

[FIX: Webauthn origin was incorrect for subfolder setups (#25651) · discourse/discourse@021a02c · GitHub](https://github.com/discourse/discourse/commit/021a02c3d880448a9478ebdbd766bdfebd9c7cfe) 를 방금 병합했습니다. @MichaIng 님, 사이트를 다시 빌드해 보시고 문제가 해결되는지 확인해 주시겠어요?

---

<div class="post-metadata">

### Author: ![MichaIng](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/michaing/32/251089_2.png) [@MichaIng](https://meta.discourse.org/u/MichaIng)
#### Post date: [2월 12, 2024, 11:23오후 UTC](https://meta.discourse.org/t/issues-using-passkeys-with-vaultwarden/294865/12 "2024-02-12T23:23:45Z")

</div>

완료되었습니다. @JappeHallunken 재시도해 주시겠어요?

---

<div class="post-metadata">

### Author: ![JappeHallunken](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jappehallunken/32/362117_2.png) [@JappeHallunken](https://meta.discourse.org/u/JappeHallunken)
#### Post date: [2월 14, 2024, 7:10오전 UTC](https://meta.discourse.org/t/issues-using-passkeys-with-vaultwarden/294865/14 "2024-02-14T07:10:55Z")

</div>

네, 이제 작동하네요, 좋습니다!  
이 문제를 해결해 주셔서 모두 감사합니다!

---

<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: [3월 15, 2024, 7:11오전 UTC](https://meta.discourse.org/t/issues-using-passkeys-with-vaultwarden/294865/15 "2024-03-15T07:11:20Z")

</div>

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