2009-07-20 20 views
6

私は現在、私のウェブサイトの1つにOpenIDログインを使用すべきかどうか議論しています。私は既に登録とログインコードが書かれているので、OpenIDは実装するのが難しくなるかもしれませんが、これはちょうど時間を考慮したものです。従来のウェブサイトのユーザアカウントシステムとは対照的に、OpenIDの利点と欠点は何ですか?OpenIDを使用するメリットとデメリットは何ですか?

答えて

5

利点

あなたはシングルサインオンあちこちのアカウントの多くを持つ人々のために、特に、実際にはかなりクールです持っています。

openidサーバはユーザに関する基本情報を提供し、いつもの基本情報を書き留める必要がなくなります。この意味で、あなたはユーザーに面倒を保存します。

これは従来のユーザー/パス機構をかなり良くしています。同時に両方のシステムを提供するサイトはたくさんあります。

信頼関係を複数の当事者から1人に移動します。現時点では、私が登録しているサイトのいずれかがパスワードをクリアテキストで保存していて、同じパスワードを持っていると仮定して他のサイトでそれを使用しようとしているかどうかわかりません。

委任の技術的利点。あなたは同じプロバイダを使用するよう強制されません。切り替えることができます。あなたはまだ新しいパラダイムを理解していないか、彼らは(多分彼らはそれを持っていますが、彼らは知らない)のOpenIDを持っていない人に、ユーザ/パスワードを提供する必要が

デメリット

。それがあなたが対処しようとしている広範な人々であれば、あなたはそれらを怖がらせることができます。

また、深刻な問題には使用しません。私は私の銀行に私のopenidだけでなく、多くの電子商取引サイトにもログインするように頼んでいます。重要でないものは大丈夫です。

openidプロバイダは、すべての認証要求を受け取るため、ユーザーの習慣を追跡できます。だから私は私の個人的なプロバイダを展開したのです。

最後に、私が見た限りでは、多くのopenidサーバが平文でパスワードを移動していますが、これは私の理解であり、間違っている可能性があります。私は自分のopenidプロバイダを導入しました。私はopenidがhttpとマークされていても、パスワードがhttps経由で転送されるように多大な努力をしました。

1

私が見る主な利点ですが、あなたの既存のシステムを維持したい、私はパスワードの保存について心配する必要はありません。

多くの人が同じパスワード(または小さなパスワードセット)をすべて使用しているため、私のサイトが侵害された場合(私は十分に熟練していないことを願っていますが、セキュリティは複数層獣なので、余分なセキュリティを追加するものは私の本でいいです)、攻撃者はパスワードを取得できませんでした。

ユーザーにとって、正当な理由ですべてのパスワードを1つだけ持つことができます。彼らは信頼できるOpenID Providerを使用しています.Out IDプロバイダは、Webサイトでインターネット上でどんなトミークッキーやハリーを信じる必要はありません。

1

SOを例として取り上げると、両方をサポートしています。 OpenIDで自分のGoogleアカウントを使用してログインしていますが、OpenIDにリンクするにはアカウント/ユーザー名が必要です。私はあなたがOpenIDを介したログインだけを許可しているが、あなたのユーザがあなたのサイトをOpenIDサーバとしてログインすることを許可していないと仮定します。

これをクリアするには多くのログイン/ログアウトコードを使用することができます。唯一の違いは、自分のデータベースではなくサードパーティを通じて認証することだけです。擬似コードでは、次のように想像してみてください。

authenticate_from_db(String username, String password) 
{ 
     fetch username and password where username = username 
     if username = username and password = hash_of(password) 
     { 
      return true; 
     } 
     else 
     { 
      return false; 
     } 
} 

authenticate_from_openid(String openId_provider) 
{ 
    provider = contact_openID_provider(openID_provider) 
    if(provider) 
    { 
     login.username = map(returned_user, your_db) 
     return true 
    } 
    else 
    { 
     return false; 
    } 
} 

あなた自身が使用されている間はほとんどの認証プロセスが変更されています。

利点は非常に明確である:

  • は、ユーザーが自分のOpenIDプロバイダを介して既存のアカウントでログインすることができます。

    • 敵対のOpenIDプロバイダ(?スパム)自分のスパムロボットを認証するなど
    • その他のセキュリティ:
    • 既存のユーザーは、自分のOpenIDプロバイダ

    欠点は、(私が想像できる)されて、ログインを必要に応じことができ第三者にユーザーの認証を許可することによる懸念事項


私はOpenIDをサポートしても、既存のユーザーのために何も変更してはならないと強調したいと思います。

OpenIDユーザーはまだアカウントを持っている必要があり、サードパーティを通じて認証されています。

+0

実際、OpenIDは認証要素(彼らが誰であるか)を形成します。アプリケーションのユーザーアカウントは、承認要素(ユーザーができること)を定義します。 –

関連する問題