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 サービスからスマホアプリまで幅広く扱いやすいのが特長です。

観点OIDCSAML
得意な場面Web サービスからスマホアプリまで、幅広い場面で使えます。主にパソコンのブラウザから使う、社内向けのログインが中心です。
扱いやすさやり取りするデータが軽く、動作が速くて設定もシンプルです。受け渡すデータが大きめで、設定はやや複雑になりがちです。
互換性世界共通のルールとして広く普及しており、多くのサービスにそのままつなげます。こちらも広く使われますが、つなぐたびにサービスごとの設定情報を交換する必要があります。
成り立ち近年に整備された、新しい標準規格です。古くからある、企業向けの標準規格です。

Active Directory との違い

Active Directory(AD)は「規格」ではなく、利用者情報を保管・管理するMicrosoftが提供するディレクトリ・システムの通称です。OIDC とは競合するものではなく、AD を利用者マスターとし、 OIDC で SSO を提供する、といった併用ができます。

観点OIDCActive Directory
位置づけログインをつなぐための共通ルール(仕組み)です。利用者の情報を保管・管理する台帳です。
使う場所インターネット越しに、社外のサービスとも使えます。主に社内ネットワークの中で使います。
主な役割「この利用者は誰か」を、各サービスへ安全に伝えます。アカウントや所属・権限をまとめて管理します。
関係性台帳の利用者情報をもとに、社外サービスへのログインをまとめられます。OIDC の裏側で、利用者情報の保管場所として一緒に使えます。

OIDC に関するよくある疑問

OIDC を使うと何が便利ですか?
サービスごとにパスワードを作らずに済み、一度のログインで複数のサービスを使えます(シングルサインオン)。管理する側にとっても、利用者の管理を 1 か所にまとめられる利点があります。
SAML から乗り換えできますか?
多くのサービスは OIDC と SAML の両方に対応しています。新しく導入する場合は、設定がシンプルな OIDC が選ばれることが多いです。SAML にしか対応していないサービスとは、両方を併用することもできます。
社内で使っている利用者情報(Active Directory など)と併用できますか?
できます。すでにある利用者情報を源として、OIDC で社外サービスへのログインをまとめられます。利用者を登録し直す必要はありません。
スマホアプリでも使えますか?
使えます。OIDC は Web サービスだけでなくスマホアプリにも対応しており、幅広い場面で利用できます。

本サービス(クイックOIDC)での動作

ここまでは OIDC 全般の説明でした。ここからは、本サービス「クイックOIDC」に固有の動作を説明します。

このサービスの特徴

  • メールに届く PIN でログインします。サービスごとにパスワードを覚えたり管理したりする必要はありません。
  • 標準的な「認可コードフロー」に対応しており、一般的な OIDC 対応サービスとそのまま接続できます。
  • ログインの管理を本サービスに集約し、複数のサービスで一度のログイン(シングルサインオン)を実現します。

認可コードフローへの対応

本サービスは、もっとも標準的な「認可コードフロー」に対応しています。おおまかな流れは次のとおりです。

  1. 1アプリが利用者を本サービスのログイン画面へリダイレクトします。
  2. 2利用者はメール PIN でログインし、要求されたスコープに同意します。
  3. 3本サービスがアプリのリダイレクト URI へ認可コードを返します。
  4. 4アプリが認可コードをトークンと交換し、ID トークンで利用者を識別します。

接続に必要な情報

アプリ側には、本サービスの issuer(例: https://your-domain/oidc)と、管理コンソールで発行される client ID を設定します。多くの言語・フレームワークには OIDC 対応ライブラリがあり、これらの値を渡すだけで接続できます。

具体的な導入手順は はじめかた を参照してください。

OIDC とは | ヘルプ