動画で解説!認証連携「Open ID Connect」とは?
01.
Open ID Connectとは?
Open ID Connectとは、サービス間でID情報をやりとりし、認証を行うための標準仕様です。
利用者がOpen ID提供サイトに登録したIDトークンを使うことで、他のOpen IDに対応している別のサイトにログインが可能になります。
つまり、サービスが異なる場合でも、IDトークンを使用することで、共通のIDとパスワードを取り扱えるのです。
はじめに、Open ID Connectの仕組み・特徴を詳しく解説します。
認証と認可
Open ID Connectを理解するうえで必要な「認証」と「認可」を確認していきましょう。
認証とは、相手が「誰であるのか」を特定することで、いわゆる本人確認を指します。
認証には、IDやパスワードを使用したり、顔や指紋などを使用したりなど、様々な方法があります。
一方の認可とは、システムにログインしようとしている人に対し、システムの所有者側がアクセスを許可する動きです。
認証と認可をそれぞれ行うことで、全てのユーザーではなく、限られたユーザーのみにアクセス権限を付与でき、セキュリティ強化に繋がります。
Open ID Connectの仕組み
ユーザーがどこの誰であるかを示す「IDトークン」を使用し、認証を行うOpen ID Connectの仕組みを解説します。
- クライアント(Webサービスやアプリなど)から、IDプロバイダーへ「IDトークン」の発行を要求する
- IDプロバイダーは、サービスを利用するユーザーに対してIDトークンの発行許可を問い合わせる
- 許可後、IDプロバイダーはIDトークンをクライアントに発行
- リソースサーバーで、クライアントが持っているIDトークンを使用して認証を行う
Open ID Connectは、クライアントとIDプロバイダー間で、IDトークンの要求と発行を標準化したものです。
02.
Open ID Connectのメリット
Open ID Connectは、従来のOpen IDを使用する認証システムに比べて、導入しやすいメリットがあります。
従来の認証システムの導入には、高度な技術が求められていましたが、Open ID Connectは、簡単なコードをサービスに書き入れるだけで導入可能です。
そのため、GoogleやSalesForce、Microsoftなどでも使用されています。
また、Open ID Connectには、IDとパスワードの管理がしやすくなるメリットもあります。
IDトークンを使用することで、共通のIDとパスワードを使用できるためです。
IDトークンの使用は、迅速な認証も実現できるうえ、セキュリティ強化にも繋がります。
03.
Open ID Connectのデメリット
たくさんのメリットがあるOpen ID Connectですが、反対にデメリットも挙げられます。
IDトークンを不正に発行されてしまうと、勝手にログインされてしまうリスクがあります。
Open ID Connectで使用するIDトークンは、共通のIDとパスワードで複数のサービスにログインできるシステムです。
そのため、IDトークンさえあれば、複数のサービスへ不正ログインが可能となってしまいます。
不正ログインを防ぐためにも、IDトークン発行の許可は、適切に行う必要があります。
04.
OAuthとは?
つづいて、Open ID Connectとよく混同されてしまうOAuthを解説します。
OAuthは、認可のためのプロトコルです。アクセストークンを使用し、ユーザーがサービスを使用していいかを検証します。
アクセストークンとは、どのようなアクセス権限を持っているのかが分かるため、認可する際に使われるものです。
アクセストークンを使用することで、サービス同士でのアクセス権限の移譲が可能となります。
OAuthの仕組み
前提として、アプリやWebサービスとリソースサーバーの間で、データのやり取りをする場合、APIを通してデータの受け渡しを行います。
APIとは、プログラムを介してソフトウェアの資源を使用するための接続口です。APIにより、ソフトウェア機能の共有が可能になります。
しかし、何も保護していないAPIは、データを不正に抜き取られてしまうリスクがあります。
このAPIを保護するために誕生したのがOAuthです。
OAuthは、リソースサーバーの資源を使用していいかを認可し、APIを守ってくれます。
OAuthの流れは以下の通りです。
- クライアント(webサービスやアプリなど)から認可サーバーへアクセストークンの発行を要求
- 認可サーバーよりユーザーに対して、アクセストークン発行の可否を問い合わせる
- ユーザーから許可が出たら、認可サーバーがアクセストークンを生成
- クライアントより、発行されたアクセストークンでデータの移譲を要求
- リソースサーバーはAPIを介し、アクセストークンが正しいものか検証
- 認可後は、APIを介しデータを移譲
OAuthは、アクセストークンの要求と返答を標準化した技術であり、APIの保護に役立ちます。
OAuthの特徴
OAuthの大きな特徴として、アクセストークンの使用が挙げられます。
アクセストークンの使用は、IDとパスワードがいらないため、アクセス権限の移譲が容易です。
また、アクセストークンには、有効期限を付けられるため、もしアクセストークンを不正に取得された場合でも、有効期限が過ぎてしまえば、不正アクセスはできません。
不正な取得を避けるためにも、ユーザー側が容易に発行許可をしない心構えが必要です。
05.
Open ID ConnectとOAuthの違い
Open ID ConnectとOAuthの大きな違いとして、認証をするためのプロトコルか、認可をするためのプロトコルかの差があります。
Open ID Connectは、認証のためのプロトコルで、認証に使用するIDトークンを発行します。
IDトークンは、認証に使用するトークンであり、認証情報を含んでいるため、Open IDが対応している別のサービスでも、共通の認証情報を使用可能です。
一方のOAuthは、認可のためのプロトコルで、認可に使用するアクセストークンを発行します。
アクセストークンにより、別サービスでアクセス権限を委譲し、APIの保護が可能です。
06.
まとめ
Open ID Connectとは、サービス間でID情報をやりとりさせ、認証を行うプロトコルです。
導入することでユーザーの負担を減らし、作業効率のアップを図れ、「認証」の機能によってセキュリティ面においても安心して利用できます。
Open ID Connectは、比較的簡単に導入できるため、煩雑なID・パスワードの管理をやめたい、ユーザビリティを向上させたいといった場合には利用を検討されることをおすすめします。
※エントリーの内容・画像等は、公開時点での情報に基づきます。
※Sitecoreのバージョンによって実装されている機能が異なります。