<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cloudflare-Access on デジタルアーカイブシステムの技術ブログ</title><link>https://tech.ldas.jp/ja/tags/cloudflare-access/</link><description>Recent content in Cloudflare-Access on デジタルアーカイブシステムの技術ブログ</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Sun, 03 May 2026 10:00:00 +0900</lastBuildDate><atom:link href="https://tech.ldas.jp/ja/tags/cloudflare-access/index.xml" rel="self" type="application/rss+xml"/><item><title>GitHub App と Cloudflare Access で構築する組織向け管理コンソール</title><link>https://tech.ldas.jp/ja/posts/github-app-cloudflare-access-admin-console/</link><pubDate>Sun, 03 May 2026 10:00:00 +0900</pubDate><guid>https://tech.ldas.jp/ja/posts/github-app-cloudflare-access-admin-console/</guid><description>&lt;blockquote>
&lt;p>本記事は生成AIと共同で執筆しています。事実関係は可能な範囲で公式ドキュメント等と照合していますが、誤りが含まれている可能性があります。重要な判断を行う前にご自身でも一次情報をご確認ください。&lt;/p>&lt;/blockquote>
&lt;p>ある組織で運用している複数のデータベースサイトについて、データ更新を担当する非エンジニアの方が自分で再ビルドや再インデックスを実行できるよう、統合の管理コンソールを構築しました。&lt;/p>
&lt;p>GitHubアカウントもVercelアカウントも持たない作業者が、Webブラウザだけで操作できるようにするのが目的です。本記事ではその構成、特に GitHub への認証で &lt;strong>Personal Access Token (PAT) ではなく GitHub App を選んだ理由&lt;/strong> と、フロント側を &lt;strong>Cloudflare Access (Zero Trust)&lt;/strong> で守ることでアプリ側の認証コードを省いた設計を整理します。&lt;/p>
&lt;h2 id="構成">構成&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl">[作業者]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ↓ メール認証（Cloudflare Access / Zero Trust）
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[admin.example.com] ← Next.js on Cloudflare Pages
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ↓ GitHub App (installation token)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[GitHub Actions: workflow_dispatch]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ↓
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[各リポジトリの admin.yml が
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> npm run es:sync などを実行]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>ホスティング: Cloudflare Pages（&lt;code>@opennextjs/cloudflare&lt;/code>）&lt;/li>
&lt;li>認証: Cloudflare Access（メールワンタイムパスワード）&lt;/li>
&lt;li>認可（vs GitHub）: GitHub App の Installation Token&lt;/li>
&lt;li>実行基盤: GitHub Actions の &lt;code>workflow_dispatch&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>各サイトにあらかじめ用意してある &lt;code>npm run es:sync&lt;/code> 等のスクリプトをそのまま GitHub Actions から呼ぶ形にしたため、既存スクリプトには手を入れていません。&lt;/p></description></item></channel></rss>