セキュリティ2026-07-01

【セキュリティ】Vercel上で構築する社内システムのための、Google Workspace OAuth2を用いたゼロトラスト認証設計


物理的な境界(VPN)によるセキュリティの限界と破綻

かつての「社内限定の管理画面」や「業務システム」は、社内ネットワークやVPN(Virtual Private Network)経由でしかアクセスできないように制限することで安全性を担保していました。

しかし、リモートワークが標準化し、複数のSaaSをまたぐビジネス構成が当たり前になった現在、**「一度VPNに侵入されれば、すべての社内システムにアクセスできてしまう」「VPN回線の帯域詰まりによる業務の遅延」「モバイル端末からの接続トラブル」**といった弊害が多発しています。

この「社内ネットワーク=安全」という前提を捨て、接続するすべてのアクセスを毎回検証する 「ゼロトラストセキュリティ」 へのシフトが急務となっています。

本記事では、すでに全社的に導入されていることが多い Google Workspaceのアカウント認証(OAuth2) と、Vercelのエッジコンピューティング を統合し、VPN不要で安全に社内限定アプリケーションへアクセスできるゲートウェイ設計を構築する方法を解説します。


2. 課題解決のビフォー・アフター

項目 従来のVPN(境界型防壁)(Before) Google OAuth + ゼロトラスト(After)
アクセスの快適性 接続が遅い、途中でよく切れる 一般のパブリックWebサイトと同等の超高速ローディング
セキュリティ強度 一度侵入されると内部で横展開(脆弱) デバイスごとのセキュリティ状態(2要素認証)などを常に強制
ユーザー管理 退職者のVPNアカウント削除漏れが頻発 Google Workspace(親アカウント)を停止した瞬間に即座にアクセス権消失
運用コスト 専用の物理ルーターや高額なVPNライセンスの維持費 インフラ側のサーバーレス認証のため運用費用は実質無料

3. 具体的な実装例:Next.js Middlewareでのドメイン制限と認証検証

Next.js(App Router)のEdge Middlewareでセッション情報を解析し、会社の公式Google Workspaceドメイン(例: @hadayalab.com)のメールアドレスを持つユーザーのみにシステムを開放するコード例です。

import { NextRequest, NextResponse } from "next/server";
import { getToken } from "next-auth/jwt";

export async function middleware(req: NextRequest) {
  const session = await getToken({
    req,
    secret: process.env.NEXTAUTH_SECRET,
  });

  const url = req.nextUrl.clone();

  // 1. セッションが存在しない場合はログイン画面へリダイレクト
  if (!session) {
    url.pathname = "/api/auth/signin";
    return NextResponse.redirect(url);
  }

  // 2. ユーザーのメールアドレスが社内ドメインであるか厳格にチェック
  const userEmail = session.email || "";
  const allowedDomain = "@hadayalab.com";

  if (!userEmail.endsWith(allowedDomain)) {
    // 社内ドメインでない場合は403(Forbidden)を表示、または強制ログアウト
    return new NextResponse(
      JSON.stringify({
        error: "Forbidden",
        message: "このアプリケーションはHadayaLab関係者専用です。承認されたGoogle Workspaceアカウントでログインしてください。",
      }),
      { status: 403, headers: { "Content-Type": "application/json" } }
    );
  }

  // 3. 認証・ドメイン制限を通過した場合はリクエストを通す
  return NextResponse.next();
}

// 認証チェックを適用するパスを設定(静的アセットやログインAPIを除外)
export const config = {
  matcher: [
    "/admin/:path*",
    "/dashboard/:path*",
    "/api/secure/:path*",
  ],
};

4. HadayaLabのゼロトラストセキュリティ導入パッケージ

HadayaLabでは、クラウド上で稼働するAIエージェントや業務画面が、外部の悪意あるアクセスから完全に保護されながらも、社員がどこからでも迅速に業務を遂行できるネットワークアーキテクチャの構築を提供しています。

  • Google Identity-Aware Proxy (IAP) とVercel連携: クラウドインフラレベルでの認証・認可ポリシーの統合。
  • モバイル端末とIDの厳格なバインド: クライアント証明書やGoogle WorkspaceのMFA(多要素認証)ポリシーの強制。
  • 機密ファイルの暗号化アップロード: Next.jsフロントエンドから、AWS S3やGoogle Driveの特定フォルダへ直接セキュアにファイルを送信する署名付きURL(Signed URL)設計。

「VPNの運用負荷をなくしたい」「社内システムをセキュアにVercelで立ち上げたい」というセキュリティ管理者の方は、ぜひHadayaLabのゼロトラストインフラ設計サービスをご検討ください。