質問

Web サイトでは、OpenID (StackOverflow に基づく) を使用してログインを実装しました。

しかし、ログアウトできないようです。
私のホストではログアウトできますが、ユーザーが再度ログインしようとすると(特に Google で)、ユーザーが名前とパスワードを入力することなく認証が完了します。

ユーザーがサイトにログインしていないことを OpenID プロバイダーに通知するにはどうすればよいですか?

役に立ちましたか?

解決

OpenID は、サイト上でセッションを開始するときに、サイトに対してユーザーを認証します。あなたが破壊するか、 サイトのセッションを個別に無効にする ユーザーの OpenID プロバイダーとのセッションから。

ユーザーが joewidgets.com にアクセス > ユーザーが OpenID でログインします (新規または既存のプロバイダー セッションを使用) > ...ユーザーが「ログアウト」をクリックし、joewidgets.com がセッションを破棄または無効にします。

ユーザーが OpenID プロバイダーを使用してログイン状態を維持している場合、 そしてあなたのシステムは自動的に チェックすると、新しいローカル セッションが作成されます。(不)幸いなことに、ユーザーがいつ何をするか、何をしないかについて心配することはありません/心配することはできません。 彼らの OpenID の長所と短所であるプロバイダー。

で議論があります ソーシャルリップスティック これには「シングルサインアウト」が必要ですが、 OpenID は現在この機能を提供していません.

他のヒント

これはOpenIDのはサポートしていない、シングルログアウトまたはシングルサインアウトと呼ばれています。私の意見では、ログアウトせずにSSOは、大きなセキュリティホールです。他の人が数回クリックするだけで得ることができるかどうかを単一のサイトをログアウトすることはあまり意味するものではありません。

今のところ、我々は、プロバイダを覚えておく必要があります。それは私たちが知っている誰かの場合は、我々は彼らのためにログアウト処理をトリガします。グーグルの場合、URLは、

https://www.google.com/accounts/Logoutする

ログアウト・フローは醜いですが、それは仕事をしていません。

それは、一般的にOpenIDプロバイダによって扱わ何か - ユーザーの遺骨が自分のGoogleアカウントにログインして、特定のサイトのためのOpenID認証「記憶」にあるボックスをチェックすると、例えば、プロバイダは、透過的にリダイレクトそれらをログに記録しますログインプロンプトを表示せず、それらのバックます。

「それは機能ではありませんバグです」

IDプロバイダはクッキーを介してプロバイダの許可されたユーザを維持するように選択することができ、さらに先に(プロンプトで)共有された同一の情報を共有に関するプロンプトをユーザに再しないように選択することができます。サイトAのユーザーは、サイトBによって認可されるように求め、及びでリダイレクトされたときに、サイトBは、最初に彼または彼女の自己を認証するためにユーザーを求めました。それはあなたが自動的に将来的にこの同じ情報を共有したい場合は、この時点で、サイトAと、それはまた、通例要求されます(どの情報時には)任意の情報を共有する必要がある場合は、サイトBは尋ねました。一部のプロバイダは、いくつかは聞いてません、はい、いくつかノーを仮定します。サイトBはその後、サイトAと株式情報にリダイレクト、あなたは今でログインしているます。

もしサイトAがログインを要求するためにサイトBに2つ目のリダイレクトを行い、サイトBのかもしれません 1)すでにサイトBの現在のユーザーを認証クッキーを持っています 2)すでにサイトBとの共有に許容されるべき情報の記録を持っています 3)が自動的にすべてのユーザを促すために一時停止することなく、リダイレクトを介してこの情報を共有します。

利便性を中心としたこれが機能です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top