OIDC とは
OpenID Connect(OIDC)は、OAuth 2.0 を土台にした認証の標準規格です。利用者が「誰か」を、アプリへ安全に伝えます。
概要
OIDC を使うと、各アプリがパスワードを個別に管理する必要がなくなります。認証を本サービス(issuer)に集約し、アプリはトークンを受け取るだけで利用者を識別できます。これにより、複数のアプリで一度のログイン(シングルサインオン)を実現できます。
基本の用語
- Issuer(発行者)
- トークンを発行する認証基盤そのもの。本サービスが issuer にあたります。接続先アプリには issuer の URL を設定します。
- Client(クライアント)
- 認証を利用する側のアプリ。管理コンソールで登録し、client ID とリダイレクト URI を設定します。
- Scope(スコープ)
- アプリが要求する情報の範囲。例: openid・profile・email。利用者は同意画面で許可します。
- Token(トークン)
- 認証結果を表す署名付きデータ。利用者情報を含む ID トークンと、API 呼び出しに使うアクセストークンがあります。
SAML との違い
SAML も、一度のログインで複数のサービスを使えるようにする代表的な規格です。OIDC はより新しく、やり取りするデータが軽いため、Web サービスからスマホアプリまで幅広く扱いやすいのが特長です。
| 観点 | OIDC | SAML |
|---|---|---|
| 得意な場面 | Web サービスからスマホアプリまで、幅広い場面で使えます。 | 主にパソコンのブラウザから使う、社内向けのログインが中心です。 |
| 扱いやすさ | やり取りするデータが軽く、動作が速くて設定もシンプルです。 | 受け渡すデータが大きめで、設定はやや複雑になりがちです。 |
| 互換性 | 世界共通のルールとして広く普及しており、多くのサービスにそのままつなげます。 | こちらも広く使われますが、つなぐたびにサービスごとの設定情報を交換する必要があります。 |
| 成り立ち | 近年に整備された、新しい標準規格です。 | 古くからある、企業向けの標準規格です。 |
Active Directory との違い
Active Directory(AD)は「規格」ではなく、利用者情報を保管・管理するMicrosoftが提供するディレクトリ・システムの通称です。OIDC とは競合するものではなく、AD を利用者マスターとし、 OIDC で SSO を提供する、といった併用ができます。
| 観点 | OIDC | Active Directory |
|---|---|---|
| 位置づけ | ログインをつなぐための共通ルール(仕組み)です。 | 利用者の情報を保管・管理する台帳です。 |
| 使う場所 | インターネット越しに、社外のサービスとも使えます。 | 主に社内ネットワークの中で使います。 |
| 主な役割 | 「この利用者は誰か」を、各サービスへ安全に伝えます。 | アカウントや所属・権限をまとめて管理します。 |
| 関係性 | 台帳の利用者情報をもとに、社外サービスへのログインをまとめられます。 | OIDC の裏側で、利用者情報の保管場所として一緒に使えます。 |
OIDC に関するよくある疑問
- OIDC を使うと何が便利ですか?
- サービスごとにパスワードを作らずに済み、一度のログインで複数のサービスを使えます(シングルサインオン)。管理する側にとっても、利用者の管理を 1 か所にまとめられる利点があります。
- SAML から乗り換えできますか?
- 多くのサービスは OIDC と SAML の両方に対応しています。新しく導入する場合は、設定がシンプルな OIDC が選ばれることが多いです。SAML にしか対応していないサービスとは、両方を併用することもできます。
- 社内で使っている利用者情報(Active Directory など)と併用できますか?
- できます。すでにある利用者情報を源として、OIDC で社外サービスへのログインをまとめられます。利用者を登録し直す必要はありません。
- スマホアプリでも使えますか?
- 使えます。OIDC は Web サービスだけでなくスマホアプリにも対応しており、幅広い場面で利用できます。
本サービス(クイックOIDC)での動作
ここまでは OIDC 全般の説明でした。ここからは、本サービス「クイックOIDC」に固有の動作を説明します。
このサービスの特徴
- メールに届く PIN でログインします。サービスごとにパスワードを覚えたり管理したりする必要はありません。
- 標準的な「認可コードフロー」に対応しており、一般的な OIDC 対応サービスとそのまま接続できます。
- ログインの管理を本サービスに集約し、複数のサービスで一度のログイン(シングルサインオン)を実現します。
認可コードフローへの対応
本サービスは、もっとも標準的な「認可コードフロー」に対応しています。おおまかな流れは次のとおりです。
- 1アプリが利用者を本サービスのログイン画面へリダイレクトします。
- 2利用者はメール PIN でログインし、要求されたスコープに同意します。
- 3本サービスがアプリのリダイレクト URI へ認可コードを返します。
- 4アプリが認可コードをトークンと交換し、ID トークンで利用者を識別します。
接続に必要な情報
アプリ側には、本サービスの issuer(例: https://your-domain/oidc)と、管理コンソールで発行される client ID を設定します。多くの言語・フレームワークには OIDC 対応ライブラリがあり、これらの値を渡すだけで接続できます。
具体的な導入手順は はじめかた を参照してください。