0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

OpenID Connectの簡単な説明

Last updated at Posted at 2021-04-28

OpenID Connectとは何か

あるシステムが外部のIDプロバイダー(IdP)にユーザを識別と認証をしてもらう時の、システム間のやりとりの仕方を標準化したもの。
OpenID ConnectをサポートしたIdPを利用することで、利用側はIdPがユーザの識別と認証をした結果としてのユーザ識別子をid_tokenという形式で得ることができます。
またクライアント側で必要であれば、IdPが持つユーザ情報(userinfo)を取得することができます。

ユーザの識別と認証とは

ユーザの識別とはある特定のユーザであると見分けることです。
よくあるログイン画面ではメールアドレスをIDとして入力しますが、そのケースではメールアドレスをもって識別することになります。
認証とは、パスワードの一致の確認など、色々な手段を用いて、アクセスしてきたユーザがある特定の人(メールアドレスなどで識別された人)であることを確認することです。

id_token

OpenID Connectではユーザ識別子はID TokenというJSONの形でIdPが発行します。
ID TokenはJSONなのでissやsubといったユーザ識別子としての重要データの他、ID TOKEN発行元情報やID TOKEN発行時間などが含まれていて、利用側がID TOKENの受信時に妥当性を確認できるようになっています。

OpenID Connectには関係ないもの

以下のものはOpenID Connectの規格とは関係ありません。

ユーザアカウント作成

OpenID Connectは認証に関するシステム連携の仕方しか規定していません。
アカウント作成は認証に先立って行う必要がありますので、OpenID Connectの規格の範囲外です。

認証方法

OpenID Connectでは認証を外部にお願いしたいサービス(Client)と、ユーザ識別子を外部に提供するサービス(IdP)との間の、ユーザ認証依頼〜ユーザ識別子が提供されるまでの連携方法しか規定してません。パスワード認証や指紋認証といった認証自体の方法は規定していません。規格の範囲外です。

セッション管理

OpenID ConnectをサポートするIdPが、それを利用するサービスのセッションを管理してくれることはありません。
例えばECサイトがGoogleログインを実装する場合、当たり前ですがECサイトのセッションはECサイト側で作成、管理する必要があります。

マイクロサービスのセキュリティ

OpenID Connectでは「トークン」や「JWT」といった、マイクロサービスでのセキュリティに関する実装に使われる用語が出てくるので勘違いされる方もいますが、OpenID Connectという規格はマイクロサービス間の通信のような「1つのサービス内でのシステム間連携」には関係ありません。
また、OpenID Connectの規格がベースとしているOAuth2は認可(データアクセス権の制御)の仕組みを規定していますが、OpenID Connectは利用側のシステムの認可についても関係ありません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?