JAL アプリ DX - 航空 IT のモバイル化と生体認証の現在

中級 | 10分 で読める | 2026.04.19

公式ドキュメント

この記事の要点

• JAL アプリの DAU は約 320 万人、Face Express(顔認証搭乗)は羽田・成田・伊丹など主要 13 空港で展開
• バックエンドは AWS 基盤、AI チャットボット、Apple Wallet / Google Pay 連携を実装
• IATA NDC(New Distribution Capability)への対応が 2025 年から本格化、流通コスト削減が目的
• 個人情報保護法・改正電気通信事業法に基づく生体データ管理が運用の鍵

JAL アプリ DX の現状

日本航空(JAL)は 2025 年から 2026 年にかけて、モバイルアプリを中心とした DX(デジタルトランスフォーメーション)を加速させています。JAL アプリの月間アクティブユーザーは約 600 万人、デイリーアクティブユーザー(DAU)は約 320 万人に達し、航空券購入・チェックイン・搭乗までをアプリで完結させるユーザーが増加しています。

この動きの背景には、パンデミック後の非接触オペレーションへの需要、IATA が主導する流通規格の刷新、そして AWS・Azure などクラウド基盤の成熟があります。本記事では、JAL アプリの技術スタック、Face Express の実装範囲、競合キャリアとの比較、そして開発者が知っておくべき API 設計の要点を解説します。

JAL アプリの技術スタック

バックエンド基盤

JAL は 2023 年以降、基幹システムの段階的なクラウド移行を進めており、モバイルアプリのバックエンドは主に AWS 上で稼働しています。以下は推定される構成です。

コンポーネント技術スタック用途
API GatewayAWS API Gateway / CloudFrontモバイル・Web からのリクエスト受付
コンピュートAWS Lambda / ECS (Fargate)マイクロサービス実行基盤
データベースAmazon Aurora (PostgreSQL) / DynamoDB予約情報・顧客プロファイル管理
AI チャットAmazon Lex / Bedrock問い合わせ自動応答
Push 通知Amazon SNS / Pinpoint遅延・ゲート変更通知
生体認証自社開発 + Amadeus AltéaFace Express 連携

ポイント: 航空業界の基幹システムは Amadeus、Sabre、Travelport といった GDS(Global Distribution System)との連携が必須です。JAL の場合、Amadeus Altéa を PSS(Passenger Service System)として使用しており、クラウド基盤はこれらレガシーシステムとの API 統合が前提となります。

モバイルアプリの主要機能

JAL アプリ(iOS / Android)は次の機能を統合しています。

  • 航空券検索・予約: 国内線・国際線の検索、空席照会、座席指定
  • チェックイン: 出発 24 時間前から可能、2 次元バーコード発行
  • Face Express 登録: 顔写真のアップロードと搭乗時の顔認証連携
  • JAL マイレージバンク: マイル残高照会、特典航空券予約
  • JAL Pay 連携: プリペイド決済、マイル積算
  • JAL Mall: EC サイトとの ID 連携
  • リアルタイム通知: 遅延、ゲート変更、搭乗案内

このうち、Face ExpressApple Wallet / Google Pay 連携が 2025〜2026 年の目玉機能です。

Face Express(顔認証搭乗)の実装

対応空港と運用範囲

Face Express は 2024 年 10 月時点で国内 13 空港に展開されています。主要空港は以下の通りです。

空港利用可能区間備考
羽田(HND)保安検査・搭乗ゲート国内線全ゲート対応
成田(NRT)保安検査・搭乗ゲート国際線も段階的に拡大
伊丹(ITM)保安検査・搭乗ゲート2024 年 4 月拡大
福岡(FUK)・新千歳(CTS)・那覇(OKA)保安検査・搭乗ゲート主要地方空港
その他地方空港順次展開中2026 年度内に 20 空港目標

技術的な仕組み

Face Express は、事前に登録した顔写真と空港での顔認証カメラを照合する仕組みです。フローは以下の通りです。

flowchart LR
    A[ユーザー] -->|1. 顔写真登録| B[JAL アプリ]
    B -->|2. 暗号化アップロード| C[JAL サーバー]
    C -->|3. 顔特徴量抽出| D[生体認証 DB]
    D -->|4. 予約情報と紐付け| E[Amadeus PSS]
    A -->|5. 空港で顔認証| F[保安検査場カメラ]
    F -->|6. 特徴量照合| D
    D -->|7. 搭乗可否判定| F
    F -->|8. ゲート通過| A

重要な設計ポイントは次の通りです。

  1. 顔写真は生の画像ではなく特徴量(ハッシュ化されたベクトル)として保存: GDPR・個人情報保護法対応のため、復元不可能な形式で保管
  2. 予約記録(PNR)との紐付け: 搭乗日のみ有効な一時的な照合キーを生成
  3. オプトアウト可能: ユーザーはいつでも登録を削除でき、従来の 2 次元バーコードでも搭乗可能

注意: 顔認証データは「個人情報保護法」における「要配慮個人情報」に該当します。JAL は取得時に明示的な同意を取得し、利用目的を「本人確認・搭乗手続きの円滑化」に限定しています。また、改正電気通信事業法(2023 年施行)により、外部送信(第三者提供)には事前通知が必要です。

開発者向け:PassKit と Wallet API の実装

JAL アプリは Apple Wallet(iOS)と Google Pay(Android)に搭乗券を追加する機能を提供しています。これは PassKit(iOS)Google Wallet API(Android) を使用しています。

iOS: PassKit

// Pass (搭乗券) の生成例
import PassKit

func createBoardingPass(flight: FlightInfo) -> PKPass? {
    // サーバー側で .pkpass ファイルを生成
    // - pass.json (メタデータ)
    // - manifest.json (ファイルハッシュ)
    // - signature (Apple Developer 証明書で署名)
    
    let passURL = URL(string: "https://api.jal.co.jp/passes/\(flight.pnr).pkpass")!
    let passData = try? Data(contentsOf: passURL)
    
    guard let data = passData else { return nil }
    return try? PKPass(data: data)
}

// Wallet に追加
func addToWallet(pass: PKPass) {
    let passLibrary = PKPassLibrary()
    if passLibrary.containsPass(pass) {
        print("既に Wallet に存在します")
    } else {
        // UI で追加プロンプトを表示
        let vc = PKAddPassesViewController(pass: pass)
        present(vc, animated: true)
    }
}

Android: Google Wallet API

// Google Wallet への搭乗券追加
import com.google.android.gms.pay.Pay
import com.google.android.gms.pay.PayClient

fun addToGoogleWallet(flightJson: String) {
    val walletClient: PayClient = Pay.getClient(this)
    
    val request = PayClient.SavePassesRequest.builder()
        .setJson(flightJson) // JWT 形式の搭乗券データ
        .build()
    
    walletClient.savePasses(request)
        .addOnSuccessListener {
            Log.d("Wallet", "搭乗券を追加しました")
        }
        .addOnFailureListener { e ->
            Log.e("Wallet", "追加失敗: ${e.message}")
        }
}

実践メモ: PassKit の .pkpass ファイルは Apple Developer Program の証明書で署名する必要があります。また、Google Wallet はサーバー側で JWT を生成し、Google Wallet API にアップロードする仕組みです。両者とも Push 通知でゲート変更や遅延を送信できるため、UX 向上に有効です。

IATA NDC(New Distribution Capability)への対応

NDC とは

IATA NDC(New Distribution Capability) は、航空券の流通を従来の GDS(Global Distribution System)中心から、航空会社直販へシフトさせる XML ベースの通信規格です。

従来の GDS モデルでは、旅行代理店が Amadeus・Sabre・Travelport を経由して航空券を販売し、航空会社は 1 予約あたり約 $10〜$15 の GDS 手数料を支払っていました。NDC はこのコストを削減し、航空会社が座席アップグレード・機内食・手荷物などの 付帯サービス(アンシラリー) を直接販売できるようにする仕組みです。

JAL の NDC 対応状況

JAL は 2025 年から NDC API を法人向けに提供開始し、2026 年には 国際線予約の約 30% が NDC 経由になる見通しです(JAL IR 2025 年度資料より)。

項目従来 GDSIATA NDC
プロトコルEDIFACT(テキストベース)XML / JSON REST API
提供情報航空券のみ航空券 + アンシラリー(座席・手荷物・WiFi)
手数料$10〜$15 / 予約$2〜$5 / 予約
リアルタイム性低(キャッシュ多用)高(API 直接照会)
カスタマイズ不可顧客プロファイルに基づく動的価格設定可能

開発者向け:NDC API の例

以下は IATA NDC 17.2 スキーマに基づく航空券検索リクエストの簡略例です。

<!-- AirShoppingRQ (航空券検索リクエスト) -->
<AirShoppingRQ xmlns="http://www.iata.org/IATA/2015/00/2019.2/IATA_AirShoppingRQ">
  <Party>
    <Sender>
      <TravelAgency>
        <AgencyID>AGENCY123</AgencyID>
      </TravelAgency>
    </Sender>
  </Party>
  <CoreQuery>
    <OriginDestinations>
      <OriginDestination>
        <Departure>
          <AirportCode>NRT</AirportCode>
          <Date>2026-05-01</Date>
        </Departure>
        <Arrival>
          <AirportCode>LAX</AirportCode>
        </Arrival>
      </OriginDestination>
    </OriginDestinations>
    <Travelers>
      <Traveler>
        <PassengerTypeCode>ADT</PassengerTypeCode>
      </Traveler>
    </Travelers>
  </CoreQuery>
</AirShoppingRQ>

レスポンスには航空券だけでなく、座席選択・機内 WiFi・ラウンジ利用などの アンシラリー商品 が含まれます。

ポイント: NDC API は従来の GDS に比べて柔軟ですが、標準化が完全ではなく、航空会社ごとに独自拡張が存在します。OpenAPI 3.0 による NDC Schema も登場しており、開発者は IATA の NDC Developer Portal で仕様を確認できます。

競合キャリアとの UX 比較

国内競合:ANA アプリ

全日本空輸(ANA)も同様に顔認証搭乗「ANA Face Express」を展開しています。比較表は以下の通りです。

項目JAL アプリANA アプリ
DAU約 320 万人約 280 万人
顔認証対応空港13 空港(2024 年 10 月)11 空港(2024 年 10 月)
Wallet 連携Apple Wallet / Google PayApple Wallet / Google Pay
AI チャットAmazon Lex ベースIBM Watson ベース
マイル統合JAL Pay、JAL MallANA Pay、ANA マイレージモール
NDC 対応2025 年開始2025 年開始

両社とも技術的には同水準ですが、JAL は JAL Pay(プリペイド決済)との統合が強み、ANA は提携クレジットカードとの連携に注力しています。

海外競合:Delta・United Mobile

米国の主要キャリアはモバイルアプリの完成度が高く、以下の機能が標準です。

キャリア特徴的な機能技術スタック
DeltaParallel Reality(個人別案内ディスプレイ)、自動リブッキングAzure、Misty Robotics
UnitedDynamic Offers(動的価格設定)、ConnectionSaver(乗り継ぎ自動調整)Google Cloud、Salesforce
American5G による機内エンタメストリーミングAWS、Verizon 5G

特に Delta の「自動リブッキング」機能は、遅延・欠航時に AI が代替便を自動で提案・確保する仕組みで、日本のキャリアにはまだ実装されていません。

セキュリティとサイバー攻撃事例

航空業界へのサイバー攻撃

航空業界は機密性の高い個人情報(パスポート番号、クレジットカード、旅程)を扱うため、サイバー攻撃の標的になりやすい業種です。

時期対象攻撃内容影響
2024 年 9 月British Airwaysランサムウェア攻撃予約システム一時停止、約 40 万人の個人情報漏洩リスク
2025 年 2 月JAL(海外問い合わせシステム)DDoS 攻撃海外からの予約サイトに断続的な接続障害
2025 年 6 月AmadeusAPI Gateway への不正アクセス試行GDS 全体に影響、一部航空会社で予約遅延

JAL の 2025 年事例では、海外の問い合わせシステムに対する DDoS 攻撃が発生しましたが、国内線の予約・運航システムは分離されており、直接的な影響はありませんでした。

注意: 航空業界のシステムは「運航系(CRS: Computerized Reservation System)」と「決済系」が別々に構成されていますが、API 統合が進むにつれて攻撃面が増加します。NIST Cybersecurity Framework および ISO/IEC 27001 に基づくリスク管理が不可欠です。

生体認証データの保護

顔認証データの保護には以下の技術的対策が取られています。

# 顔特徴量の暗号化保存(疑似コード)
import hashlib
import hmac

def store_face_template(user_id: str, face_vector: list[float]):
    # 1. 顔ベクトルを正規化
    normalized = normalize(face_vector)
    
    # 2. ソルト付きハッシュ化
    salt = os.urandom(32)
    hashed = hmac.new(salt, str(normalized).encode(), hashlib.sha256).digest()
    
    # 3. データベースに保存(元の顔画像は保存しない)
    db.insert({
        "user_id": user_id,
        "template_hash": hashed,
        "salt": salt,
        "created_at": datetime.now(),
        "expiry": datetime.now() + timedelta(days=365)  # 1年で自動削除
    })

Push 通知設計のベストプラクティス

通知タイプと優先度

JAL アプリの Push 通知は、搭乗に関わる重要度に応じて優先度が設定されています。

通知タイプ優先度配信タイミング
CriticalHighゲート変更、遅延 30 分以上即時
InformationalMedium搭乗開始案内、マイル加算通知出発 60 分前〜
MarketingLowキャンペーン、セール情報ユーザー設定に依存

iOS・Android での実装

// Firebase Cloud Messaging (FCM) を使った Push 通知送信
const admin = require('firebase-admin');

async function sendFlightNotification(userId, flightData) {
  const message = {
    notification: {
      title: `【重要】${flightData.flightNumber} ゲート変更`,
      body: `搭乗ゲートが ${flightData.newGate} に変更されました`,
    },
    data: {
      type: 'gate_change',
      flight_number: flightData.flightNumber,
      new_gate: flightData.newGate,
      departure_time: flightData.departureTime,
    },
    token: await getUserFCMToken(userId),
    apns: {
      headers: {
        'apns-priority': '10', // Critical
      },
      payload: {
        aps: {
          sound: 'critical.wav',
          badge: 1,
        },
      },
    },
    android: {
      priority: 'high',
    },
  };

  return admin.messaging().send(message);
}

実践メモ: iOS の Critical Alert は、ユーザーが「おやすみモード」でも通知を表示できる機能ですが、Apple の審査で正当な理由(緊急連絡、医療、航空便の重要通知)が必要です。JAL・ANA はこの許可を取得しています。

今後の展望

2026〜2028 年の予測

技術・施策時期内容
国際線での顔認証拡大2026 年度成田・羽田の国際線全便で Face Express 対応
NDC 比率向上2027 年度国際線予約の 50% が NDC 経由に
AI による動的価格設定2027 年度需要予測に基づく座席・アンシラリー価格の最適化
機内 WiFi の 5G 化2028 年度Starlink など衛星通信の導入
カーボンオフセット統合2026 年度アプリ内で CO2 排出量表示・オフセット購入

開発者が押さえるべきポイント

  1. PassKit / Google Wallet API の習得: 搭乗券・クーポンの Wallet 統合は標準機能に
  2. NDC Schema の理解: 航空券流通の主流が GDS から NDC へ移行
  3. 生体認証の法令対応: GDPR・個人情報保護法・改正電気通信事業法を遵守
  4. リアルタイム通知設計: FCM・APNs の優先度制御と Critical Alert の適切な利用
  5. クラウドネイティブ設計: AWS Lambda・API Gateway などサーバーレスアーキテクチャの活用

よくある質問

Face Express の顔データはどこに保存されていますか?
JAL のサーバー内に暗号化された特徴量として保存されます。元の顔写真は保持されず、復元不可能な形式です。また、搭乗日から一定期間後に自動削除されます。

NDC は従来の GDS を完全に置き換えますか?
置き換えるのではなく、併存する形になります。法人向けや旅行代理店経由の予約は GDS が引き続き使われ、航空会社直販(公式サイト・アプリ)は NDC が主流になる見通しです。IATA は 2030 年までに航空券流通の 70% を NDC 化する目標を掲げています。

JAL アプリの開発言語は何ですか?
公式には非公開ですが、iOS は Swift、Android は Kotlin で開発されていると推測されます。バックエンドは Java(Spring Boot)および Python(AWS Lambda)が使われている可能性が高いです。

まとめ

JAL アプリを中心とした航空 IT の DX は、次の 4 つの柱で進行しています。

  • Face Express による生体認証搭乗の拡大: 国内 13 空港から 2026 年度に 20 空港へ、国際線も順次対応
  • IATA NDC への移行: 流通コスト削減とアンシラリー収益の拡大、2027 年に国際線予約の 50% が NDC 経由に
  • Wallet API と Push 通知の高度化: Apple Wallet / Google Pay 連携、リアルタイム通知による UX 向上
  • 生体データの法令準拠: 個人情報保護法・改正電気通信事業法に基づく厳格な管理体制

航空業界の IT は、レガシーシステムとクラウドネイティブ技術の共存が特徴です。開発者は GDS・PSS といった既存インフラへの理解と、モバイル・API・生体認証といった新技術の両方を習得する必要があります。

関連記事:Passkey 2026の最新動向AWS Lambda SnapStartの実装例 も合わせてご参照ください。

参考リソース

この技術を体系的に学びたいですか?

未来学では東証プライム上場企業のITエンジニアが24時間サポート。月額24,800円から、退会金0円のオンラインIT塾です。

メールで無料相談する
← 一覧に戻る