Add support for mTLS / client TLS certificates
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 42/100
調査の方向性
The change belongs where the HttpClient used to call the Immich API is constructed; the issue suggests configuring a custom HttpClientHandler with ClientCertificateOptions and ClientCertificates, or using a named client from IHttpClientFactory. Start by finding that construction point and deciding how certificate settings reach it. Done means a configured client certificate is presented on Immich requests, with a test or manual check against an mTLS-protected Immich instance. The issue has no maintainer reply, so confirm the configuration design first.
索引モデルが issue の本文から書いたものです。
説明
Description
A common way to harden services exposed to the internet is to use mTLS. Such a setup requires clients to be in possession of a valid certificate in order to be allowed to communicate with the server.
This adds an additional layer of security comparable to using a VPN, e.g. preventing untrusted clients from abusing vulnerabilities in hosted applications. While the official Immich app already supports mTLS, it'd be great if ImmichFrame did so too, when it comes to querying Immich's API.
Use Case
Details
A common way to harden services exposed to the internet is to use mTLS. In a regular TLS setup, it is only the server which is in possession of a certificate, which it uses to prove to the client that it is who it claims to be. In mTLS, the client must also present a TLS certificate, deemed valid by the server, in order to be allowed to communicate with the server at all.
This provides an added layer of security, similarly to using a VPN, where e.g. potential vulnerabilities in a service's built-in authentication cannot be exposed by untrusted clients all over the web. Support for mTLS has been added to the official immich app ~two years ago. On the server side, this functionality is supported by the vast majority of reverse proxies, such as nginx, Traefik or caddy.
It'd be great if support for mTLS could be added to ImmichFrame, so that it can be used in conjunction with a such-secured Immich setup. To clarify this would be about ImmichFrame acting as a client towards the Immich API, and not about the ImmichFrame app when connecting to the ImmichFrame backend.
In the .NET world, this seems to be supported by instantiating one's HttpClient using a custom HttpClientHandler, on which one sets the ClientCertificateOptions and ClientCertificates properties.
Defining a custom handler is also supported by factories implementing IHttpClientFactory, although that seems to require a brief detour via a 'named' HTTP client.
Pre-Submission Checklist
-
This is a feature request and not a bug report
-
I have checked for related issues and checked the documentation
- 主要言語
- C#
- スター
- 2.4k
- フォーク
- 121
- 平均マージ
- 18日 20時間
- マージ済み PR(30日)
- 1
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
immichFrame/ImmichFrame のほかの issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
immichFrame/ImmichFrame#735 ·
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 56/100
immichFrame/ImmichFrame#733 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 76/100
immichFrame/ImmichFrame#732 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 22/100
immichFrame/ImmichFrame#731 · リアクション 1 件 ·
-
enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
immichFrame/ImmichFrame#729 ·
immichFrame/ImmichFrame の issue をすべて見る
似ている issue
-
Feature needs response
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
Adyen/adyen-dotnet-api-library#1907 ·
メンテナーはふだん 5 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
dimitar-radenkov/Pointframe#318 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
DotHarness/dotcraft#546 ·
メンテナーはふだん 1 日以内に返信
-
a-corriger bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
christian-raj/S-Aloha#303 · コメント 1 件 ·
-
Input editor says "Apply Changes" even when no changes have been made.対応中かも @hcooper が今日担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 72/100
MobiFlight/MobiFlight-Connector#3526 ·
メンテナーはふだん 1 日以内に返信