> ## Documentation Index
> Fetch the complete documentation index at: https://developers.authlete.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Client Initiated Backchannel Authentication (CIBA)

> 新しいユーザー認証・認可フローである CIBA に関する技術情報です。

# CIBA とは

<img src="https://mintcdn.com/authlete/WGQFc11Y4wUplGrc/protocols-and-flows/advanced-flows/ciba_pr_english.png?fit=max&auto=format&n=WGQFc11Y4wUplGrc&q=85&s=110c38654f52d0ada5fc35a85c6440ac" alt="ciba use cases" width="1986" height="856" data-path="protocols-and-flows/advanced-flows/ciba_pr_english.png" />

**Client Initiated Backchannel Authentication (CIBA；シーバ)** は OpenID Foundation によって新たに策定された、新しいタイプの認証 (authentication) および認可 (authorization) に関する仕様の一つです。

従来の「リダイレクト」ベースの OAuth / OpenID Connect とは異なる、「デカップルド・フロー（decoupled flow）」に分類されるタイプの認証・認可フローです。この仕様を使うことで、新しい方法でエンドユーザーの同意を得ることができるため、ユーザー体験の向上が期待されます。

# CIBA フロー

<div class="embed-responsive embed-responsive-16by9">
  <iframe class="embed-responsive-item" width="560" height="315" src="https://www.youtube.com/embed/Cc_ersrkKW4" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
</div>

CIBA では、\*\*消費デバイス（Consumption Device）**と**認証デバイス（Authentication Device）\*\*の2種類のデバイスを定義しています。

CIBA フローは、**消費デバイス**が、対象となる OpenID Connect (OIDC) Relying Party と通信し、OIDC Identity Provider (IdP) とターゲットとなるユーザーの識別子を特定することから始まります。その後、**消費デバイス**は、IdP に対して、OIDC 認証リクエストを送信します。リクエストを受け取った IdP は、エンドユーザーの**認証デバイス**に対して、通知を送信します。エンドユーザーが**認証デバイス**上でリクエストを認証した後、IdP はアクセストークンやリクエストトークンを含むレスポンスを生成します。

このポイントの二つは、2つのデバイスが同一でなくてもよい (Decoupled) という点です。同じ場所になくてもかまいません。また、消費デバイスを用いてフローを開始するユーザーと、認証デバイスで認証するユーザーも同じ人物である必要がありません。そのため、従来のリダイレクトフローよりも、多様なユーザー認証・同意の仕組みを導入することが可能となります。

# Authlete と CIBA

<img src="https://mintcdn.com/authlete/oZd1VUaYFwHO2MBx/protocols-and-flows/advanced-flows/oidc_certification.png?fit=max&auto=format&n=oZd1VUaYFwHO2MBx&q=85&s=76adf6d34133115ec72551b2e6100de0" alt="OIDF Certified Mark" width="1000" height="563" data-path="protocols-and-flows/advanced-flows/oidc_certification.png" />

Authlete は CIBA 対応ソリューションのパイオニアです。2019年2月に [CIBA Core 1.0](https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1_0.html) に実装を完了し、 [Financial-grade API Client Initiated Backchannel Authentication Profile (FAPI-CIBA) conformance profiles](https://openid.net/certification/#FAPI-CIBA_OPs) も2019年9月の認定プログラム提供開始直後より取得しています。

実装だけでなく、[CIBA Core](https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1_0.html) や関連仕様（[FAPI -CIBA Profile](https://openid.net/specs/openid-financial-api-ciba-ID1.html) など）の仕様策定にも貢献しています。

# Authlete を使って CIBA を実装する

[こちらの記事](https://qiita.com/hidebike712/items/8fc2938055d0b49cfc0a)をご参照ください。

# 参考文献

1. [世界最先端の認証認可技術、実装者による『CIBA』解説](https://qiita.com/TakahikoKawasaki/items/9b9616b999d4ce959ba3)
2. [Authlete API リファレンス](https://docs.authlete.com/)
