質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
OpenID

OpenIDは、様々なWebサイトで 1つのID情報のみで認証が可能にするサービスです。

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

Q&A

解決済

1回答

4076閲覧

OpenID2.0で一度ログインした後の処理について

takenyaan

総合スコア119

OpenID

OpenIDは、様々なWebサイトで 1つのID情報のみで認証が可能にするサービスです。

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

0グッド

0クリップ

投稿2017/01/28 07:55

OpenID2.0についての質問です。
※OpenID Connectではありません。

OpenIDを利用した認証にて、
OP(OpenIDProvider)での初回認証後、そのユーザが既に認証済みということをRPはどのように判断するのでしょうか。

初回認証以降の話はOpenIDの仕様として定められていない認識です。
初回認証成功時にトークンを発行し、そのトークンをクライアント側がCookieなりlocalStorageなりに保持し、
リクエストの度にそのトークンを検証する形になるのでしょうか?
SSOを実現する(異なるRPにて)場合は、どのような実装が必要になるのかイメージが湧きませんでした。

ご教示いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

OP(OpenIDProvider)での初回認証後、そのユーザが既に認証済みということをRPはどのように判断するのでしょうか。

このあたりは、 SAML, OpenID Connect でも同じ考え方だと思いますが、「そのユーザが既に認証済みということ」をRPは判定しません。 RP は、 OP に認証を委譲するだけです。すでに認証済みの場合のフローは以下のようになります。

  1. RP が OP にリダイレクト(認証要求)
  2. OP が Cookie を識別して、OPにログイン済みであることを確認
  3. OP はユーザの身元保証をするアサーションをリダイレクトで返答
  4. RP がアサーションを確認して、リソースへのアクセスを許可

RPはユーザがIDとパスワードを入力したかどうかを知りません。上記 2. のところはエンドユーザとOPとの間でのやり取りであり、RPは関与していません。ID、パスワードを入力したかどうかも知りません。ログイン操作をした場合でもログイン済みの場合でもアサーションを受け取るだけです。

SSOというのは、一度、ID、パスワードを入力すると、二度目はID、パスワードを入力しなくて良いということであり、その実装は OP に任されています(=SAML、OpenID の仕様では規定されていません)。最近は2要素認証、二段階認証など複雑な認証過程があり、SSOなのかどうなのかわかりにくいものがありますが、RPはその一切について責任をもっていないということです。

投稿2017/01/28 11:26

mit0223

総合スコア3401

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問