# 患者承認によるクリニックアクセスリクエスト (CIBA)

> クリニックアクセスリクエストの背後にあるOpenID CIBAフロー：受付担当者が患者のメールアドレスを入力し、患者がアプリまたはメールで30日、90日、または365日間承認すると、クリニックのアプリケーションがトークンを受け取ります。

Source: https://developers.anpheros.com/ja/guides/clinic-access-request

**クリニックがAnpheros上の患者の記録にアクセスできるのは、患者がそれを承認した場合のみです。** クリニックのアプリケーションは、患者のメールアドレスと必要なアクセス権を指定したリクエストを送信します。患者はAnpherosアプリおよびメールでリクエストを受け取り、誰が何のために要求しているかを確認し、許可する期間を選択して、承認または拒否します。承認した場合、クリニックのアプリケーションはトークンを受け取り、アクセスが期限切れになるか患者が取り消すまで記録を読み取ることができます。

このフローは、標準のOpenID Connect Client-Initiated Backchannel Authentication (CIBA) フローであり、ポーリングモードです。これは、受付担当者が患者に電話やリンクを手渡す必要がないようにするためです。リクエストはクリニックの画面を経由せず、患者に直接送信されます。

## ステップバイステップ

1.  **受付が患者のメールを入力します。** クリニックのアプリケーションは、クライアント認証情報、患者のメールを`login_hint`として、必要な`scope`、および患者が表示する短い`binding_message`とともに、`POST /oauth/bc-authorize`を呼び出します。
2.  **プラットフォームはすべてのメールアドレスに対して同じように応答します。** レスポンスには、そのメールにAnpherosアカウントがあるかどうかを示す`auth_req_id`、有効期限、ポーリング間隔が含まれます。誰がレコードを持っているかは明らかになりません。アカウントを持っていない人へのリクエストは、単に期限切れになります。
3.  **患者が決定します。** 患者はAnpherosアプリとメールで通知を受け取ります。リクエストには、組織、スコープ、メッセージが表示されます。患者は30日、90日、または365日の期間を選択し、「許可」または「拒否」を押します。メール内のリンクは、メールスキャナーがリンクを開くため、開いても何も承認しません。患者はボタンを押す必要があります。
4.  **クリニックがポーリングします。** アプリケーションは、grant type `urn:openid:params:grant-type:ciba`と`auth_req_id`を指定して`POST /oauth/token`を呼び出します。患者がまだ決定していない間、応答は`authorization_pending`です。承認後、トークンは一度返されます。拒否は`access_denied`を返し、未回答のリクエストは`expired_token`を返します。
5.  **クリニックは、付与されたスコープ内で読み取り、書き込みを行います。** すべての読み取りはログに記録され、患者に表示されます。クリニックは、自身が書き込んだもののみを変更または削除できます。

## 患者を保護するもの

- **確認済みのメールアドレスのみ。** リクエストは、メールアドレスが確認済みの В аккаунт にのみ一致するため、他人の В аккаунт を作成して他人のリクエストを受け取ることはできません。
- **スコープ付きで時間制限付き。** アクセスはリソースタイプとアクションごとに行われ、指定された期間に限られます。誰も応答しないリクエストは、デフォルトで 1 日以内に、最大 7 日以内に期限切れになります。
- **いつでも取り消し可能。** 取り消しは、次回の В аккаунт へのリクエスト時に有効になります。クリニックは、В аккаунт へのアクセスを更新することはできません。
- **可視性。** 患者は、В аккаунт でのすべての接続とすべての В аккаунт へのアクセスを確認できます。[同意と В аккаунт モデル](https://developers.anpheros.com/ja/guides/consent) を参照してください。

## クリニックが構築する必要があるもの

- プラットフォームに登録された機密性の高いOAuthクライアント。そのシークレットはサーバー上に保持する必要があります。
- インターバルを尊重し、4つの結果を処理するポーリングループ。
- 患者の決定を受付に表示する方法（「患者待ち」、「…まで承認済み」、「拒否」）。
- 返却されたトークンを短命の認証情報として処理する方法：アクセストークンは30分間有効で、リフレッシュトークンは使用ごとにローテーションされます。[認証とOAuth](https://developers.anpheros.com/ja/guides/authentication)を参照してください。

例えば受付で患者の前に同意ページを開くことを希望するクリニックの場合、PKCEを使用した標準の認可コードフローとSMART on FHIRスタンドアロン起動もサポートされています。

## よくある質問

### 患者はクリニックにいる必要がありますか？

いいえ。患者はどこにいても、自身のスマートフォンやメールのリンクから承認できます。そのため、予約前にリクエストを送信でき、海外にいる患者でも承認することが可能です。

### 患者がAnpherosアカウントを持っていない場合はどうなりますか？

リクエストは承認されずに期限切れとなり、クリニック側ではアカウントの有無を確認できません。患者はアカウントを作成でき、クリニックは新しいリクエストを送信できます。

### アクセスはどのくらいの期間有効ですか？

患者は承認時に30日、90日、または365日を選択します。それより前に取り消すことも可能です。

### クリニックは記録のすべてを見ることができますか？

患者が承認したスコープのみです。スコープはリソースタイプとアクションごとに設定され、カテゴリでフィルタリングできます。

### リクエストフローは標準ですか？

はい。OpenID Connect CIBAを使用しているため、既存のOAuthライブラリを使用できます。より広範なモデルについては、[患者同意を得たヘルスケアAPI](https://developers.anpheros.com/ja/guides/healthcare-api-patient-consent)ガイドを参照してください。

### これはライブですか？

はい、プライベートベータ版のプラットフォームで利用可能です。本番環境へのアクセスには、認証済みの組織と署名済みのデータ処理契約が必要です。

## 関連情報

- [クリニック・病院向け患者データプラットフォーム](https://developers.anpheros.com/ja/guides/clinics-and-hospitals)
- [ヘルスアプリ向け患者同意プラットフォーム](https://developers.anpheros.com/ja/guides/patient-consent-platform)
- [SMART on FHIR を用いた患者同意の実装方法](https://developers.anpheros.com/ja/guides/smart-on-fhir-backend)
- [セキュリティ、プライバシー、データレジデンシー](https://developers.anpheros.com/ja/guides/security)
