<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>CloudflareZeroTrust on 屑籠というかゴミ箱</title><link>https://blog.teandt.net/tags/cloudflarezerotrust/</link><description>Recent content in CloudflareZeroTrust on 屑籠というかゴミ箱</description><generator>Hugo -- gohugo.io</generator><language>ja-jp</language><lastBuildDate>Sat, 18 Apr 2026 19:42:34 +0900</lastBuildDate><atom:link href="https://blog.teandt.net/tags/cloudflarezerotrust/index.xml" rel="self" type="application/rss+xml"/><item><title>Paperless-ngxを追加</title><link>https://blog.teandt.net/posts/2026/04/20260418-194234/</link><pubDate>Sat, 18 Apr 2026 19:42:34 +0900</pubDate><guid>https://blog.teandt.net/posts/2026/04/20260418-194234/</guid><description>&lt;h1 id="経緯"&gt;経緯
&lt;/h1&gt;&lt;p&gt;最近自宅のサーバのスペックが上がってCPUとかメモリとかかなり遊んでいるので自宅ホストのサービスを増やしちゃお、ってことでこれまでドキュメントスキャナでPDF化だけしてHDDに眠っていた書類たちをPaperless-ngxにまとめてみることにした。&lt;/p&gt;
&lt;p&gt;Paperless-ngx使えなさそうでもHDD管理に戻るだけなのでひとまず試してみるということで構築&lt;/p&gt;
&lt;h1 id="構成"&gt;構成
&lt;/h1&gt;&lt;p&gt;今回もRHEL10のサーバを使ってPodman ＆ docker-composeをsystemdで管理する構成で。&lt;br&gt;
wallabagも同様だったので同じ仮想マシンで動かす構成。&lt;/p&gt;
&lt;p&gt;外部公開はいつも通りCloudflare Tunnel＆Access&lt;/p&gt;
&lt;h1 id="追加設定"&gt;追加設定
&lt;/h1&gt;&lt;p&gt;基本的には標準のcompose.ymlファイル構成で、追加の設定として&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;NASをマウントしてmediaディレクトリとして使用する場合Sambaだと難しそう（Podmanのrootlessの運用と相性が悪い感じ）&lt;/p&gt;
&lt;p&gt;NFSであれば問題ないのでNFSで&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;environmentに&amp;quot;PAPERLESS_CONSUMER_POLLING: 10&amp;quot;、&amp;ldquo;PAPERLESS_DATE_ORDER: YMD&amp;quot;あたりは設定しておく必要がありそう&lt;/p&gt;
&lt;p&gt;PAPERLESS_DATE_ORDERは指定しないと日付の推測をdd/mm/yyyyでやってしまうので日本語と相性が相当に悪い&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ログイン失敗のログを出力しようとすると&amp;quot;PAPERLESS_LOGGING&amp;quot;で色々設定しないとダメそう&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;という感じ。&lt;/p&gt;
&lt;h1 id="cloudflare-tunnelの設定注意点"&gt;Cloudflare Tunnelの設定注意点
&lt;/h1&gt;&lt;p&gt;アプリでServiceTokenで認可させようとする場合/api/*以下をServiceTokenで、/をIdPで認証させようとした場合色々うまくいかない。（/api/以下をwebアクセス時も使っているみたい）&lt;br&gt;
なので、api用にサブドメインでアクセスできるようにしてWebアクセス用とAPIアクセス用でアクセスする名前を変えてWebアクセス用の名前のAccess設定をIdP、APIアクセス用の名前をServiceTokenで設定する。&lt;/p&gt;</description></item><item><title>Navidromeの構築メモ</title><link>https://blog.teandt.net/posts/2026/02/20260207-191240/</link><pubDate>Sat, 07 Feb 2026 19:12:40 +0900</pubDate><guid>https://blog.teandt.net/posts/2026/02/20260207-191240/</guid><description>&lt;p&gt;段階的に構築進める想定なのでちょっとずつメモ増やしていく予定&lt;/p&gt;
&lt;h1 id="navidrome"&gt;Navidrome
&lt;/h1&gt;&lt;iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.navidrome.org%2F" title="Navidrome" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"&gt;&lt;/iframe&gt;[www.navidrome.org](https://www.navidrome.org/)
&lt;p&gt;SubsonicAPI対応の音楽ストリーミングサーバ。&lt;/p&gt;
&lt;p&gt;同種のソフトを比較しているところでサーバのリソース消費がかなり少ないという評価だったので選択。&lt;/p&gt;
&lt;iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fyamanekovillage.com%2Farticles%2Fselfhosted_navidrome%2F" title="【宅鯖×音楽ストリーミング】いろいろ試してNavidromeに落ち着いた" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"&gt;&lt;/iframe&gt;[yamanekovillage.com](https://yamanekovillage.com/articles/selfhosted_navidrome/)
&lt;p&gt;最初のファイルスキャン中は結構激しく動いている感じだったけどその後はおとなしいので、録画サーバからほぼ単純NASになってリソースがあまり気味のサーバで動かすことにした。&lt;/p&gt;
&lt;p&gt;スマホのストレージを節約しつつ大量の音楽を聴けるようにしようとするとSpotifyとか使うかセフルホストのミュージックサーバ立てるかなんだけど、セルフホストのミュージックサーバてててみることにした。&lt;br&gt;
ブラウザから再生するときもリプレイゲインを有効に出来るので良い。&lt;br&gt;
リプレイゲインが有効なプレーヤーが必須なので個人的にはこの機能がかなり大きい。&lt;/p&gt;
&lt;p&gt;スマホからの再生に関してはこれまでPowerAmpを使っていたんだけど、そのままでは連係に使えなさそうなのでクライアントはSymphoniumあたりを検討中。&lt;br&gt;
外からの接続に関してはCloudflare Tunnel経由を想定しているけどうまく連係出来るかな？&lt;/p&gt;
&lt;h1 id="lastfmとの連係"&gt;last.fmとの連係
&lt;/h1&gt;&lt;p&gt;last.fmやListenBrainzとの連係も可能。&lt;/p&gt;
&lt;p&gt;last.fmと連携する場合はAPIキーを発行して有効にする必要がある。&lt;/p&gt;
&lt;iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.navidrome.org%2Fdocs%2Fusage%2Fintegration%2Fexternal-services%2F" title="External Integrations" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"&gt;&lt;/iframe&gt;[www.navidrome.org](https://www.navidrome.org/docs/usage/integration/external-services/)
&lt;p&gt;dockerで立てる場合は&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ND_LASTFM_ENABLED&lt;/li&gt;
&lt;li&gt;ND_LASTFM_APIKEY&lt;/li&gt;
&lt;li&gt;ND_LASTFM_SECRET&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;を指定する必要がある。&lt;br&gt;
APIKEYとSECRETはlast.fmで登録したら発行される。&lt;/p&gt;
&lt;p&gt;指定してNavidromeの管理者から個人設定で「Last.fmへscrobbleする」が有効になっているので、これをONにしてlast.fmの接続確認が出るのでOKすれば完了。&lt;br&gt;
last.fmの設定→Applicationsに登録した名称のアプリケーションがConnected Applicationsに登録されていればOK&lt;/p&gt;
&lt;p&gt;各種Configはここを確認&lt;/p&gt;
&lt;iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.navidrome.org%2Fdocs%2Fusage%2Fconfiguration%2Foptions%2F%23configuration-file" title="Navidrome Configuration Options" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"&gt;&lt;/iframe&gt;[www.navidrome.org](https://www.navidrome.org/docs/usage/configuration/options/#configuration-file)
&lt;p&gt;last.fmのAPI Keyの詳細、あとから見たい場合はここから見られるみたい&lt;br&gt;
&lt;a class="link" href="https://www.last.fm/api/accounts" target="_blank" rel="noopener"
 &gt;https://www.last.fm/api/accounts&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="外部アクセス"&gt;外部アクセス
&lt;/h1&gt;&lt;p&gt;家の外からのアクセスについてはCloudflare Tunnel経由でAccess認証通してつながるようにしたい。&lt;br&gt;
ということでサクッとnavidrome.ドメイン名という感じのサブドメイン定義してAccess設定をして、Tunnelに先程のサブドメインとローカルのNavidromeアドレスを割り当てて公開。&lt;br&gt;
前やってしまったけど、Access設定する前にTunnelで割り当ててしまうとAccess設定するまでアクセスし放題になるので要注意。&lt;/p&gt;
&lt;p&gt;&lt;del&gt;※ Cloudflare Tunnel経由でSymphoniumでアクセスしようとするとうまくいかないどうもバグっぽいことがフォーラムに記載があるけどどうなんだろ&lt;/del&gt;&lt;/p&gt;
&lt;h2 id="symphoniumのcloudflare-tunnelとの連係について"&gt;SymphoniumのCloudflare Tunnelとの連係について
&lt;/h2&gt;&lt;p&gt;Symphoniumのメディアプロバイダ設定でSubsonicのプロキシ認証設定にカスタムヘッダのCF-Access-Client-Id、CF-Access-Client-Secretを設定する必要がある。&lt;br&gt;
これはCloudflare Zero Trust、というかCloudflare Accessでサービストークンを発行して、そのクライアントID、クライアントシークレットを設定する形になる。&lt;/p&gt;
&lt;p&gt;設定順としては&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;サービストークンの発行（サービス資格情報からサービストークンを作成）&lt;/li&gt;
&lt;li&gt;Accessのアプリケーション設定でアクセスポリシーの先頭に新規ポリシーを追加（Service Auth設定でポリシーを作成して、先程作ったService Tokenをルールに設定）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これを行ったうえで、symphoniumのプロキシ認証でカスタムヘッダにCF-Access-Client-Id、CF-Access-Client-Secretを指定。値はCloudflare Accessでトークン発行したときの値を設定&lt;br&gt;
こんな感じ&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="382px" data-flex-grow="159" height="752" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.teandt.net/posts/2026/02/20260207-191240/image-001.png" srcset="https://blog.teandt.net/posts/2026/02/20260207-191240/image-001_hu_ddeddeac31b6a0ff.png 800w, https://blog.teandt.net/posts/2026/02/20260207-191240/image-001.png 1200w" width="1200"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;カスタムヘッダーの設定&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;これで外からSymphoniumでアクセス出来た。&lt;br&gt;
課題としては屋内からでもTunnel経由になってしまうのでLAN内で完結しなくなること。&lt;br&gt;
そろそろちゃんと家庭内DNS整備してフォールバックするような環境が必要か？&lt;br&gt;
→ 「優先する接続」をローカルのIPアドレスに、予備の接続をパブリックなドメイン接続に設定しておけば良さそうなのでスマホはそういう設定にしようかと思っている。今のところ家の中のタブレットだけ設定しているから影響がわからん&lt;/p&gt;</description></item><item><title>Cloudflare ZeroTrustのTunnelとかAccessを使ったセルフホストサービスの公開とEntraID連携</title><link>https://blog.teandt.net/posts/2025/09/20250927-203921/</link><pubDate>Sat, 27 Sep 2025 20:39:21 +0900</pubDate><guid>https://blog.teandt.net/posts/2025/09/20250927-203921/</guid><description>&lt;h1 id="やったこと"&gt;やったこと
&lt;/h1&gt;&lt;p&gt;Cloudflare ZeroTrustの機能を使って、自宅サーバのEPGStationとOpenobserveを外から確認できるように設定しました。&lt;/p&gt;
&lt;p&gt;機能的にはTunnelを使ってドメインにプライベートネットワーク内のサービスを紐づけ、インバウンドのFW公開設定をせずにインターネット上に公開しつつ認証にはEntraIDのパスキーを使用して認可はCloudflare Accessで行うという感じ。&lt;/p&gt;
&lt;p&gt;認証にパスキー使えるのは便利で良いです。&lt;/p&gt;
&lt;h1 id="設定について"&gt;設定について
&lt;/h1&gt;&lt;p&gt;前提としては個人のドメインを持っていること、AzureというかEntraIDを使えるようにしていること。あとはCloudflare ZeroTrust自体は使っていること。&lt;br&gt;
Tunnel自体も既に構築済みの前提です。&lt;br&gt;
あとはDNSもCloudflare使っている想定で。&lt;/p&gt;
&lt;h1 id="entraidの連携"&gt;EntraIDの連携
&lt;/h1&gt;&lt;p&gt;CloudflareZero Trustは各種IdPに対応していますがAzureの勉強をしようと思ってEntraID連携に決めました。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="392px" data-flex-grow="163" height="532" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.teandt.net/posts/2025/09/20250927-203921/image-001.png" srcset="https://blog.teandt.net/posts/2025/09/20250927-203921/image-001_hu_ea2ff4f0b9460030.png 800w, https://blog.teandt.net/posts/2025/09/20250927-203921/image-001.png 871w" width="871"&gt;&lt;/p&gt;
&lt;p&gt;まだAzure ADとなっていますがEntraIDに名称変更になって既に数年経っている気がする。&lt;br&gt;
参考にした情報はCloudflareZeroTrustの設定ページにかかれていたので基本はそこを見て設定しました。&lt;br&gt;
日本語の参考情報としてはこちら&lt;/p&gt;
&lt;iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.sataku.jp%2Fblogs%2F20240418_cloudflare_with_azuread" title="Cloudflare Zero TrustとAzure Entra IDを連携する。 - たくまるのブログ" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"&gt;&lt;/iframe&gt;[www.sataku.jp](https://www.sataku.jp/blogs/20240418_cloudflare_with_azuread) 
&lt;p&gt;かなり詳しく記載されているのでこちらを参照すると良いと思います。以降は記事が消えたとき用の自分の備忘録です。&lt;/p&gt;
&lt;h2 id="entraid側の設定"&gt;EntraID側の設定
&lt;/h2&gt;&lt;p&gt;AzureにアクセスしてMicrosoft EntraIDを選択、メニューに「エンタープライズアプリケーション」があるのでこれを選択。&lt;br&gt;
メニューから「新しいアプリケーション」をクリックして作成します。&lt;br&gt;
前述のページに記載がありましたが、テンプレートは使わず個別に設定していきます。&lt;br&gt;
メニューから「独自のアプリケーションの作成」を選択して「アプリケーションを登録してMicrosoft Entra IDと統合します」を選択して作成します。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="379px" data-flex-grow="158" height="358" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.teandt.net/posts/2025/09/20250927-203921/image-002.png" width="566"&gt;&lt;/p&gt;
&lt;h2 id="アプリケーションの登録"&gt;アプリケーションの登録
&lt;/h2&gt;&lt;p&gt;アプリケーションの登録を行います。&lt;br&gt;
EntraIDのメニューに「アプリの登録」がありますのでここから登録します。&lt;br&gt;
「新規登録」をクリックしてアプリケーション登録を進めます。&lt;/p&gt;
&lt;p&gt;リダイレクト先は&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;https://&amp;lt;Zero Trustのチーム名&amp;gt;.cloudflareaccess.com/cdn-cgi/access/callback
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;アカウントは個人利用ならシングルテナントで十分なはず。&lt;/p&gt;
&lt;h2 id="アプリのシークレットの確認"&gt;アプリのシークレットの確認
&lt;/h2&gt;&lt;p&gt;登録したアプリケーションの各IDとクライアントシークレットの作成をします。&lt;br&gt;
クライアントシークレットは作成後確認するすべがなさそうなので、作成時に控える必要があります。&lt;br&gt;
控え忘れた場合は再作成できるのでそこまで問題はないですが。&lt;/p&gt;
&lt;p&gt;EntraIDのページメニューから「アプリの登録」を選択します。&lt;br&gt;
そのままだと表示されないので、「ディレクトリ内のすべてのアプリケーションを表示」のボタンを押すと先程作成したアプリが表示されますのでこれを選択します。&lt;br&gt;
選択するといくつかのIDが表示されますので控えます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;アプリケーションID&lt;/li&gt;
&lt;li&gt;オブジェクトID&lt;/li&gt;
&lt;li&gt;ディレクトリID&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;また、クライアントの資格情報をクリックしてシークレットを作成します。&lt;br&gt;
ここで注意なのは、作成したクライアントシークレットの値は作成後マスクされるので控えておく必要があります。&lt;br&gt;
控えずに先に進んで作り直しました…&lt;/p&gt;
&lt;h2 id="apiアクセスの権限"&gt;APIアクセスの権限
&lt;/h2&gt;&lt;p&gt;EntraID→「アプリの登録」→「アプリ名」を選択後、メニューにある「APIのアクセス許可」を選択してアクセス権を付与します。&lt;br&gt;
必要な権限はCloudflare ZeroTrustの設定ページに記載の通りですが&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;email&lt;/li&gt;
&lt;li&gt;offline_access&lt;/li&gt;
&lt;li&gt;openid&lt;/li&gt;
&lt;li&gt;profile&lt;/li&gt;
&lt;li&gt;User.Read&lt;/li&gt;
&lt;li&gt;Directory.Read.All&lt;/li&gt;
&lt;li&gt;GroupMember.Read.All&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;をチェックして登録します。&lt;br&gt;
これでEntraID側の設定は完了。&lt;/p&gt;
&lt;h1 id="cloudflare-zerotrust側の設定"&gt;Cloudflare ZeroTrust側の設定
&lt;/h1&gt;&lt;p&gt;結構頻繁に画面変わるので参考程度に。&lt;br&gt;
「設定」→「認証」→ ログイン方法を「新規追加」→「Azure AD」を選択&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;アプリケーションID&lt;/li&gt;
&lt;li&gt;アプリケーションシークレット&lt;/li&gt;
&lt;li&gt;ディレクトリID&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;は先程控えた値を貼り付けます。&lt;br&gt;
オプションは「サポートグループ」のみONにしました。&lt;br&gt;
SCIMはEntraID Freeだと使えないのでOFFです。&lt;/p&gt;
&lt;p&gt;ここまで設定して「テスト」ボタンを押すとうまく行けば以下のような画面になります。&lt;br&gt;
&lt;img class="gallery-image" data-flex-basis="586px" data-flex-grow="244" height="335" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.teandt.net/posts/2025/09/20250927-203921/image-003.png" srcset="https://blog.teandt.net/posts/2025/09/20250927-203921/image-003_hu_971eb7be256b0458.png 800w, https://blog.teandt.net/posts/2025/09/20250927-203921/image-003.png 818w" width="818"&gt;&lt;/p&gt;
&lt;p&gt;うまくいかない場合はエラーでますので設定を見直してください。&lt;/p&gt;
&lt;h1 id="cloudflare-accessの設定"&gt;Cloudflare Accessの設定
&lt;/h1&gt;&lt;p&gt;Warpのログイン設定や外部アクセス設定などはAccessの設定で行います。&lt;br&gt;
Access→「ルールグループ」を選択して新しいグループを追加します。これまで使用していたルールに新規に追加する場合はそちらを選択してORでルールを追加してください。&lt;/p&gt;
&lt;p&gt;ルールのセレクターに「Azure Groups」を選択して値を登録しますが、SCIM使用していないため選択できません。&lt;br&gt;
ただし、この値を選択した状態でペーストすると値を貼り付け出来てリストに表示出来ますので先程控えたオブジェクトIDをペーストします。&lt;/p&gt;
&lt;h1 id="tunnelの設定"&gt;tunnelの設定
&lt;/h1&gt;&lt;p&gt;ネットワーク→「Tunnels」→ 使用するトンネルを選択→「公開されたアプリケーションルート」タブを選んで&lt;br&gt;
「公開されたアプリケーションルートを追加する」&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="993px" data-flex-grow="413" height="290" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.teandt.net/posts/2025/09/20250927-203921/image-004.png" srcset="https://blog.teandt.net/posts/2025/09/20250927-203921/image-004_hu_5dcf9d5221101690.png 800w, https://blog.teandt.net/posts/2025/09/20250927-203921/image-004.png 1200w" width="1200"&gt;&lt;/p&gt;
&lt;p&gt;基本的にはアプリケーションごとにサブドメインつけて設定しています。&lt;br&gt;
※ ここでTunnelで設定するとCloudflareのDNS設定が自動で付与されて公開されてしまうので、Accessを先に設定したほうが良いと思います。&lt;/p&gt;
&lt;h1 id="accessの設定アプリケーション"&gt;Accessの設定（アプリケーション）
&lt;/h1&gt;&lt;p&gt;Access→「アプリケーション」でアプリケーーションを追加する→「セルフホスト」&lt;/p&gt;
&lt;p&gt;各種設定を行いますが「Accessポリシー」のところがアクセス条件です。&lt;br&gt;
Access→「ポリシー」で設定したアクセスポリシーを設定します。&lt;/p&gt;
&lt;p&gt;私はWarpプロキシを経由したうえでAzureAD認証しないとアクセス出来ないように設定しました。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="618px" data-flex-grow="257" height="325" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.teandt.net/posts/2025/09/20250927-203921/image-005.png" srcset="https://blog.teandt.net/posts/2025/09/20250927-203921/image-005_hu_e8aaedd23aaa4e50.png 800w, https://blog.teandt.net/posts/2025/09/20250927-203921/image-005.png 837w" width="837"&gt;&lt;/p&gt;
&lt;p&gt;以上で設定完了です。&lt;br&gt;
動作確認としてWarpをバイパスしたらログインできなくなるところとかをチェックして完了。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="746px" data-flex-grow="310" height="293" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.teandt.net/posts/2025/09/20250927-203921/image-006.png" srcset="https://blog.teandt.net/posts/2025/09/20250927-203921/image-006_hu_f68d7a15e1e30d99.png 800w, https://blog.teandt.net/posts/2025/09/20250927-203921/image-006.png 911w" width="911"&gt;&lt;/p&gt;
&lt;h1 id="注意事項"&gt;注意事項
&lt;/h1&gt;&lt;p&gt;EntraIDのパスキーはMSのAuthenticaterアプリのパスキーしか駄目みたいなので注意。&lt;br&gt;
あと認証情報とか残っているとうまくログイン出来ないケースがあるので、うまく認証出来ない場合はブラウザのシークレットモードで試してみると良いかも&lt;/p&gt;</description></item><item><title>Cloudflare ZeroTrustをAndroidでまともに使う</title><link>https://blog.teandt.net/posts/2025/08/20250809-191323/</link><pubDate>Sat, 09 Aug 2025 19:13:23 +0900</pubDate><guid>https://blog.teandt.net/posts/2025/08/20250809-191323/</guid><description>&lt;h3 id="cloudflare-zerotrustをandroidで使うときの課題"&gt;Cloudflare ZeroTrustをAndroidで使うときの課題
&lt;/h3&gt;&lt;p&gt;Cloudflare ZeroTrustをAndroidで使おうとすると、CloudflareのCA証明書を多くのアプリケーションが使ってくれないのでTLS復号→再暗号化による影響で証明書エラーで通信失敗扱いになる問題がある。&lt;br&gt;
Androidの確かバージョン7以降くらいから、rootをとらないとシステム全体で使用するCA証明書をユーザーが登録できなくなっていて一部のアプリからしか利用されなくなっていてダメみたい。iPadOSだと特に問題なかったんだけどAndroidだとこれが問題になる。&lt;/p&gt;
&lt;h3 id="方針の検討"&gt;方針の検討
&lt;/h3&gt;&lt;p&gt;TLS復号をZero TrustのオプションでOFFにすると正常に通信できることは確認しているけど、いつも使っているWindowsのPCからはちゃんとTLSインスペクションしてほしい、ということでAndroidのときだけTLS復号をバイパス出来ないか検討。&lt;br&gt;
TLS復号しないとGatewayのチェックがほぼ有効にならないし、最近の通信はほぼhttpsなので使えないAndroid以外はちゃんとチェックするようにしたいというのが要件。&lt;/p&gt;
&lt;p&gt;Gatewayの設定条件に「デバイスポスチャチェック」があるので、これを利用してWarp（Cloudflare One）アプリのデバイスチェックでAndroidかどうかをチェックするようにしてみた。&lt;/p&gt;
&lt;h3 id="設定方法"&gt;設定方法
&lt;/h3&gt;&lt;p&gt;設定→WARPクライアント→WARPクライアントチェック&lt;/p&gt;
&lt;p&gt;に新規追加して「OS Version」を選択。Androidのバージョンを低めに指定してGreater than 7.0.0とかに設定。7とか7.0だとルールに合致しないと登録できなかったので3桁必要っぽい。ドキュメントを読もう&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="985px" data-flex-grow="410" height="264" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.teandt.net/posts/2025/08/20250809-191323/image-001.png" srcset="https://blog.teandt.net/posts/2025/08/20250809-191323/image-001_hu_d2dce4b1ca75f0f7.png 800w, https://blog.teandt.net/posts/2025/08/20250809-191323/image-001.png 1084w" width="1084"&gt;&lt;/p&gt;
&lt;p&gt;ここで設定したポスチャチェックの名前がGatewayのデバイスポスチャチェックの値リストにでてくるので、これを指定してGatewayのフィルタを作成する&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="1655px" data-flex-grow="689" height="174" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.teandt.net/posts/2025/08/20250809-191323/image-002.png" srcset="https://blog.teandt.net/posts/2025/08/20250809-191323/image-002_hu_945d475425b8223d.png 800w, https://blog.teandt.net/posts/2025/08/20250809-191323/image-002.png 1200w" width="1200"&gt;&lt;/p&gt;
&lt;p&gt;デバイスポスチャチェックのOK/NGはLogsのポスチャに表示されるので、設定が正しいかはここで確認。&lt;br&gt;
AndroidのCloudflare Oneの詳細設定からもポスチャでの検出内容が確認できるのでそちらでもチェックは可能。どうも5分毎にチェックしているっぽい？&lt;/p&gt;
&lt;p&gt;この条件でZero TrustをAndroidでONにしてエラーなく通信できることを確認できた。&lt;/p&gt;</description></item><item><title>Cloudflare Zero Trustの導入</title><link>https://blog.teandt.net/posts/2022/12/20221220-012919/</link><pubDate>Tue, 20 Dec 2022 01:29:19 +0900</pubDate><guid>https://blog.teandt.net/posts/2022/12/20221220-012919/</guid><description>&lt;h3 id="きっかけ"&gt;きっかけ
&lt;/h3&gt;&lt;p&gt;Twitterで以下のツイートを見て、Yubikeyほしぃ…ということでCloudflare Zero Trustを試してみることに。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;Cloudflareユーザ限定、Yubikey 5 NFCを特別価格10ドルで購入できるキャンペーンは2022年12月31日まで。自分の手元には今日届いた。Cloudflareは無料でアカウント作れるし、届いたYubikeyはCloudflare以外のサービスにも使えるよ。 / “Cloudflare Zero TrustとYubicoでシー…” &lt;a class="link" href="https://t.co/u34qDeWBA2" target="_blank" rel="noopener"
 &gt;https://t.co/u34qDeWBA2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;— 年末u (@matsuu) &lt;a class="link" href="https://twitter.com/matsuu/status/1592515523027214336?ref_src=twsrc%5Etfw" target="_blank" rel="noopener"
 &gt;2022年11月15日&lt;/a&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
 &lt;script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt; 
&lt;p&gt;ちょっとずつ試しているので、追記していく&lt;br&gt;
試した端末は&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows10&lt;/li&gt;
&lt;li&gt;iPadOS&lt;/li&gt;
&lt;li&gt;Android&lt;/li&gt;
&lt;li&gt;Linux(Ubuntu)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="cloudflare-zero-trustとはなにか"&gt;Cloudflare Zero Trustとはなにか？
&lt;/h3&gt;&lt;p&gt;Cloudflareが提供するゼロトラスト実現のための環境郡という言い方がいいのか、いわゆるゼロトラストソリューション。&lt;/p&gt;
&lt;p&gt;ZTA、ZTNAって差がわかりにくいけどCloudflareのはZTNAベースかな&lt;/p&gt;
&lt;iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.cloudflare.com%2Fja-jp%2Fproducts%2Fzero-trust%2F" title="Zero Trust | ハイブリッドワークフォースを保護" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"&gt;&lt;/iframe&gt;[www.cloudflare.com](https://www.cloudflare.com/ja-jp/products/zero-trust/)
&lt;p&gt;機能群としては&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DNSフィルタ&lt;/li&gt;
&lt;li&gt;クラウドProxy&lt;/li&gt;
&lt;li&gt;クラウドFW&lt;/li&gt;
&lt;li&gt;ネットワークコネクタ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;あたりがメイン機能っぽい感じだけど、説明見るとCASBとかの機能もありそう。&lt;br&gt;
このあたりの基本機能が、なんとFreeプランで大体使えるという太っ腹戦略なので個人で試してみるのにも良さそうということで登録。&lt;/p&gt;
&lt;p&gt;Cloudflare登録している人はダッシュボードからZeroTrustを選択して進む。残念ながら英語のみっぽいけど下手な日本語にされるよりよっぽどマシ。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="1172px" data-flex-grow="488" height="53" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.teandt.net/posts/2022/12/20221220-012919/image-001.png" width="259"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Cloudflare Zero Trust&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;ダッシュボードにやることが出ているはずなので読んでいけばいいけどマニュアルはこれ&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Access Groupsにユーザとして登録するメールアドレスを含めるように作成&lt;/li&gt;
&lt;li&gt;Cloudflareのルート証明書をインストール&lt;/li&gt;
&lt;li&gt;Warpアプリをインストール&lt;/li&gt;
&lt;li&gt;最初に登録したメールアドレスでログイン&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;と言った感じで進める。特に何も指定しないとメール宛にワンタイムコードが送られてくるので、それでログインするとTLSでCloudflareと接続しトンネルを使って各種サービスにアクセスする…という流れ&lt;br&gt;
ログインに関しては各種サービスと連携もできるし、AzureADとの連携が一番良さそうな感じ&lt;/p&gt;
&lt;h3 id="使ったときに遭遇した問題"&gt;使ったときに遭遇した問題
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Androidで何故か証明書入れなくても動いた。でも再ログインしたら全くダメに&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これについては原因が大体わかっていて、AndroidのアプリケーションはCA証明書をどのように使うか指定する必要があって、おそらく殆どのアプリがシステムにデフォルトで入っている証明書のみを利用している。なので、証明書エラーでほとんどのアプリがまともに使えなくて諦めた。&lt;/p&gt;
&lt;p&gt;まともに使えたのChromeくらいかな&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;iOSはほぼ問題無しに使えている&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;問題が出たのはウマ娘くらい？ CloudflareZeroTrustはIPが北アメリカのものになるのでこれが原因で弾かれていそう&lt;br&gt;
SplitTunnel通してもいいかなと思ったけど、iOS、AndroidはSplitTunnelのドメイン指定でサブドメインの指定が出来ない（反映されない）みたいなのでまともに運用できずってことでここだけ課題か&lt;/p&gt;
&lt;p&gt;Windowsは本当に問題に遭遇してい…Zwiftだけ駄目だったわ。&lt;br&gt;
ZwiftはGatewayのフィルタに*.zwift.comをDo Not Inspectで指定してやったら通るようになったので、もしかしたらこれも証明書エラーかな？&lt;br&gt;
あと、ウマ娘と同じ原因っぽいのがサーバから応答が帰ってこないケースがあっておそらくIPアドレスで弾かれているのだと思われるページがいくつかあったのでそこは課題。&lt;br&gt;
対象のページをNot InspectにしてもProxy自体は通ってるからIPアドレスは変わらないんだよなー&lt;/p&gt;</description></item></channel></rss>