モバイル開発におけるヘルスケアデータ認証:仕組・動作・HealthKitへのアクセス

著者: IT Sectr 公開日: 2026-05-22 読了時間: 8 分

ヘルスケアデータの認証は、モバイルプラットフォームのシステムAPIを通じて医療やフィットネスデータを読み取り、書き込むためにユーザーの明示的な同意を得るプロセスです。iOSでは、HealthKitを通じてHKHealthStoreおよびHKObjectTypeクラスで認証が実装され、AndroidではGoogle Fit APIを通じてOAuth 2.0およびFitnessOptionsで実装されます。Apple HealthKitドキュメンテーション、2025によると、ヘルスケアデータは高度に機密な情報のカテゴリに分類されています。医療的正確さと規制への遵守が不可欠な要件です。

ポイント

  • Health Data Authorizationは、ユーザーの医療データへのアクセスに同意を得るための必須プロセスです。
  • HealthKitは、HKHealthStoreやHKObjectTypeを含む、ヘルスケアデータを扱うためのAppleのフレームワークです。
  • Google Fit APIは、OAuth 2.0とFitnessOptionsを通じてフィットネスデータにアクセスするためのAndroidプラットフォームです。
  • HKHealthStoreは、認証をリクエストし、ヘルスケアデータを操作するための中心的なiOSクラスです。
  • ユーザーの同意は、ユーザーがアクセスを許可する特定のデータタイプを選択する必須のステップです。

ヘルスケアデータ認証とは?

ヘルスケアデータ認証は、ユーザーの医療およびフィットネスメトリクにアクセスする前に、明示的かつ書面的なユーザーの同意を必要とするメカニズムです。標準のパーミッション(連絡先、カレンダー)とは異なり、ヘルスケアデータは追加の法的規制によって管理されます:米国のHIPAA、ヨーロッパのGDPR、そしてロシアの連邦法第152-FZです。

iOSでは、ヘルスケア認証はHealthKitを通じて実装されます:ユーザーはアプリケーションがリクエストするすべてのデータタイプを一覧表示する画面を見て、アクセスを許可する特定のカテゴリを選択できます。

App Annie (2025)によると、ヘルスケアとフィットネスアプリケーションは年間28%の成長率で、モバイル市場で最も急成長しているセグメントの一つです。その一方、アプリケーションが収集目的の明確な説明を提供しない場合、71%のユーザーがヘルスケアデータへのアクセスを拒否します。

他のパーミッションとの主な違いは、一部的なアクセスを許可できることです。ユーザーは歩数の読み取りを許可するが、心拍数データや医療レコードへのアクセスは禁止できます。

iOSでのHealthKitの仕組み

HealthKitはiOS 8で導入されたAppleのフレームワークで、統合されたセントラルヘルスケアデータリポジトリを提供します。アプリケーションはHealthKitに直接アクセスできず、HKHealthStoreを通じて認証をリクエストし、ユーザーが提供するデータタイプを決定します。すべてのデータはデバイス上で暗号化され、エンドツーエンド暗号化でiCloudを通じてシンクされます。

HealthKitへのアクセスをリクエスト

認証プロセスはHKHealthStoreのインスタンスを作成し、requestAuthorization(toShare:read:)メソッドを呼び出すことから始まります。アプリケーションは2つのタイプセットを渡します:読み取り用タイプ(アプリケーションが読み取りたいHKObjectType)と書き込み用タイプ(アプリケーションが保存したいHKSampleType)です。システムは同意画面を表示し、ユーザーが各タイプを個々に有効または無効にできます。

重要な機能:HealthKitはユーザーが同意画面で許可した特定のタイプを開発者に表示しません。requestAuthorizationを呼んだ後、HKHealthStore.authorizationStatus(for:)を通じて各タイプへのアクセスを個々に確認する必要があります。WWDC Session 11108 (2024)によると、Appleは読み取りまたは書き込みの各操作の前に認証ステータスを確認することを推奨しています。

HKObjectTypeデータタイプ

HealthKitは数百のデータタイプをカテゴリに分けてサポートしています:(歩数、心拍数、カロリー)、特徴(身長、体重、生年月日)、臨床レコード(アレルギー、接種、検査結果)、症状および月経です。各タイプはHKObjectTypeのサブクラスで表されます:数値測定のためのHKQuantityTypeとカテゴリデータのためのHKCategoryTypeです。

iOS 18では、AppleはFHIRを通じて医療機関からのデータをサポートするようにHealthKitを拡張しました。ユーザーが自分の病院やクリニックをヘルスケアアプリに接続している場合、アプリケーションは構造化された医療レコードへのアクセスをリクエストできます。

AndroidでのGoolge Fit APIの仕組み

Google Fitは、OAuth 2.0認証を使用する、Android上でフィットネスデータを扱うためのプラットフォームです。HealthKitとは異なり、Google FitはOSレベルでシステムに組み込まれていません。これはGoogle Play Servicesの独立したサービスで、Google Play Consoleでの設定とOAuth 2.0クレデンシャルの作成が必要です。

Google FitとOAuth 2.0

Google Fitにアクセスするには、Google Cloud ConsoleでOAuth 2.0クライアントIDを登録する必要があります。認証はGoogleSignInAccountとGoogleSignIn.requestPermissions()を通じてリクエストされます。ユーザーは、リクエストされたスコープを含む標準のGoolge同意画面を見ます。

Google Fitはデータタイプごとに読み取りと書き込みのパーミッションを区別しています。アプリケーションは書き込みパーミッションをリクエストせずに、歩数の読み取りへのアクセスをリクエストできます。Google Fit API v2からは、すべての認証リクエストにデータ利用目的の説明を含める必要があり、これがないとリクエストはGoogleの審査で拒否されます。

FitnessOptionsとスコープ

FitnessOptionsクラスを使うと、どのデータタイプにアクセスが必要かを宣言的に指定できます。各タイプについて、アクセスレベルを設定できます。パーミッションセットは、ユーザーアカウントと共にGoolgeSignin.requestPermissions()に渡されます。

利用可能なタイプには歩数、カロリー、心拍数、距離、活動、眠眠があります。各タイプには独自の更新頻度とパーミッション要件があります。

ヘルスケアデータへのアクセス用コード例

ヘルスケアデータ認証リクエストの実装はiOSとAndroidで大きく異なります。以下は、HealthKitおよびGoogle Fit APIの実践的な例です。

SwiftでのHealthKit

Swiftでは、HealthKit認証リクエストは読み取りと書き込みのタイプを指定してHKHealthStoreを通じて実行されます。

swift
import HealthKit

let healthStore = HKHealthStore()

let readTypes: Set<HKObjectType> = [
    HKObjectType.quantityType(forIdentifier: .stepCount)!,
    HKObjectType.quantityType(forIdentifier: .heartRate)!
]

let writeTypes: Set<HKSampleType> = [
    HKObjectType.quantityType(forIdentifier: .stepCount)!
]

guard HKHealthStore.isHealthDataAvailable() else {
    fatalError("このデバイスではHealthKitを利用できません")
}

healthStore.requestAuthorization(toShare: writeTypes, read: readTypes) { success, error in
    if success {
        // 各タイプのステータスを個別に確認
        let status = healthStore.authorizationStatus(for: readTypes.first!)
        print("HealthKit認証: \(status.rawValue)")
    } else {
        print("HealthKit認証エラー: \(error?.localizedDescription ?? "不明")")
    }
}

KotlinでのGoolge Fit

Androidでは、Google Fit認証はGoogleSignInとFitnessOptionsを通じて実行されます。

kotlin
val fitnessOptions = FitnessOptions.builder()
    .addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
    .addDataType(DataType.TYPE_CALORIES_EXPENDED, FitnessOptions.ACCESS_READ)
    .build()

val account = GoogleSignIn.getAccountForExtension(this, fitnessOptions)

if (!GoogleSignIn.hasPermissions(account, fitnessOptions)) {
    GoogleSignIn.requestPermissions(
        this,
        REQUEST_GOOGLE_FIT,
        account,
        fitnessOptions
    )
} else {
    // パーミッションはすでに許可されています — データを読み取り中
    readGoogleFitData(account)
}

// パーミッションリクエスト結果の処理
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (requestCode == REQUEST_GOOGLE_FIT && resultCode == RESULT_OK) {
        val account = GoogleSignIn.getSignedInAccountFromIntent(data)
        account?.let { readGoogleFitData(it) }
    }
}

セキュリティと規制遵守

ヘルスケアデータは個人データの特にセンシティブなカテゴリに属します。HealthKitまたはGoogle Fitを使用するアプリケーションの開発者は、ユーザーの在住地域の規制要件を守る必要があります。

ヘルスケアデータのためのHIPAAとGDPR

米国では、ヘルスケアデータはHIPAAによって管理されており、医療情報の保管、伝送、処理に関する厳密な要件を設けています。

ヨーロッパ連合では、ヘルスケアデータはGDPRの下で個人データの特別なカテゴリとみなされます。このようなデータの処理には、ユーザーの明示的同意と、大多数の場合、データ保護インパクト評価が必要です。

ロシアでは、ヘルスケアデータの収集は連邦法第152-FZによって規制されています。2025年から、ロシア国民の医療データを処理するすべてのアプリケーションは、認証された暗号化ツールを使用し、ロシア連邦内のサーバーにデータを保管する必要があります。

推奨:ヘルスケアデータを扱うアプリケーションを公開する前に、地域の規制に従っているかを確認するために法務部門に相談してください。

FAQ

HealthKitとGoogle Fitの違いは?

HealthKitは、ローカルで暗号化されたヘルスケアデータリポジトリを持つ組み込みのiOSフレームワークです。Google Fitは認証にOAuth 2.0を使用します。

ユーザーはヘルスケアデータへの一部的なアクセスを許可できますか?

はい、両プラットフォームで可能です。iOSでは特定のデータタイプを選択できます。AndroidではGoogleアカウント設定から個々のパーミッションを取り消せます。

HKHealthStoreとは?

HKHealthStoreはiOSのHealthKitフレームワークの中心クラスです。すべてのヘルスケアデータの認証、読み取り、書き込みを管理します。

Google Fitアクセスを取り消すには?

Google設定からアクセスを取り消せます。

HIPAAは必須?

データをサーバーに伝送する場合、HIPAA従従が必須です。

まとめ

  • Health Data Authorization — 医療データへのアクセスに明示的な同意が必要
  • HealthKit — iOSのHealthKitフレームワーク
  • Google Fit API — Androidのフィットネスデータプラットフォーム
  • データタイプ — 量的、カテゴリ、臨床データ
  • 一部的アクセス — 両プラットフォームで可能
  • HIPAA・GDPR — 米国・EUで必須
  • ロシア規制 — 152-FZによる規制

ターンキー方式のモバイルアプリケーションを開発します

IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください