OAuth、OpenID Connectとは? 仕組みや違いについて解説
様々なWebサービスを連携する際に、「OAuth」や「OpenID Connect」という名前を聞くことがあるかもしれません。どちらも複数のサービスを手軽に利用するための仕組みである点では似ていますが、認証と認可の点で違いがあるため注意が必要です。
今回の記事では、OAuthとOpenID Connectの概要、特徴や仕組み、違いについて解説します。

目次
OAuthとは?
OAuthは、異なるWebサービス間で効率的に連携するための仕組みです。例えば、SNSアカウントを使って他のサービスにログインする際に利用されています。
OAuthの特徴は、ユーザーが各サービスにIDとパスワードを何度も入力する必要がないことです。一度認可の設定を行えば、その後はスムーズにサービス間の連携ができます。
例えば、予定管理アプリがGoogleカレンダーのデータにアクセスする場合、ユーザーは必要な範囲でのみアクセス権の付与が可能です。
OAuthによってユーザーは複数のWebサービスをシームレスに連携できるため、より便利にさまざまなサービスを利用できます。
OAuthの仕組み
ユーザーは、特定のGoogleなどのサービスプロバイダーに対して別のサービス、例えばECサイトなどに特定の機能の利用を許可する設定を行います。
サービスプロバイダーはアクセストークンと呼ばれる特別な許可証を発行します。アクセストークンは、どのリソースにアクセスできるか、どのような操作ができるかなどの情報が対象です。
連携先のサービスは、このアクセストークンを使って特定のリソースにアクセスできます。アクセストークンという一時的な許可証を使用することで、安全性の確保が可能です。
ユーザーは自分のアカウントの特定の機能やデータだけを選択して共有できるため、住所情報の使用は許可するが、メールなどほかのリソースへのアクセスは制限するなどの細かな制御ができます。
OpenID Connectとは?
OpenID Connect は、複数のWebサービス間で安全に認証情報を共有するための仕組みです。サービス提供者にとっては、セキュリティ対策が施された認証の仕組みを一から開発する必要がなく、簡単なソースコードの記述で手軽に導入ができます。
ユーザーにとっては、複数のサービスごとにIDとパスワードを作成・記憶する必要がなくなり、一つのアカウントで複数サービスの利用が可能です。また、信頼できる事業者による強固な認証基盤を利用できるため、セキュリティ面でも安心できます。
多くのWebサービスでこの仕組みが採用され、シングルサインオンの標準的な方式として普及しているのが現状です。
OpenID Connectの仕組み
OpenID Connectは、OAuthをベースに認証のために拡張された仕組みです。
最初に、Webサービスやアプリは、IDプロバイダーにIDトークンの発行を要求します。IDプロバイダーは、ユーザーに対して「このサービスにログイン情報を提供してよいか」という確認が必要です。
ユーザーが許可すると、IDプロバイダーはユーザーの識別情報を含むIDトークンを発行します。クライアントは受け取ったIDトークンを使って、リソースサーバーへのアクセスが可能です。
リソースサーバーはIDトークンを検証し、正しいユーザーであることを確認します OpenID Connect は OAuth の仕組みを利用しながら、認証に特化した機能の提供が可能です。
より、安全で統一された認証の仕組みを実現しています。
OAuthとOpenID Connectの違い

OAuthとOpenID Connectの主な違いは、目的と使用するトークンの種類にあります。
OAuthは認可が目的で、あるサービスの特定の機能やデータへのアクセス権を別のサービスに与えるための仕組みです。一時的な許可証になるアクセストークンを使用し、写真へのアクセスやカレンダーの参照など、具体的な権限を制御します。
一方、OpenID Connectは認証が目的で、本人であることを証明するための仕組みです。IDトークンと呼ばれる特別な認証情報を使用し、一つのアカウントで複数のサービスにログインできます。
OAuthは、何ができるかを制御し、OpenID Connectは、誰であるかを証明するものです。
「認証」と「認可」の違い
認証と認可は、情報セキュリティの基本的な概念として区別されています。
認証は誰であるかを確認するプロセスです。ユーザーIDとパスワードでログインする、指紋認証を行う、顔認証を使うなど利用者が本人であることを確認します。
認可は何ができるかを定義するプロセスです。認証済みのユーザーに対して、特定のリソースや機能へのアクセス権限を付与します。例えば、社内システムで一般社員は閲覧のみ、管理者は編集も可能といった権限の違いがあるのは、認可の仕組みによるものです。
この2つを適切に組み合わせることで、正しいユーザーに適切な権限を与えるシステムを構築できます。
まとめ

OpenID Connectは、複数のWebサービス間で安全に認証情報を共有するための仕組みです。サービス提供者にとっては、セキュリティ対策が施された認証の仕組みを一から開発する必要がなく、簡単なソースコードの記述で手軽に導入ができます。
OAuth と OpenID Connect の主な違いは、目的と使用するトークンの種類です。それぞれの特徴を理解し、認証と認可を区別した上で導入を検討しましょう。
また、IDaaSは、クラウド上で認証・認可の管理を一元化するソリューションで、セキュリティを強化しながら利便性を向上させます。認証と認可を適切に区別し、それぞれの特徴を活かした最適なソリューションを選ぶことが、安心・安全なシステム運用のカギとなるでしょう。
ぜひお気軽にご相談ください
ゼロトラストの構成要素に欠かせない統合的なID管理を実現します。
\詳しいPDF資料はこちら/
\お見積りや導入のご相談はこちら/