web-dev-qa-db-ja.com

openidはシングルサインオンをどのように実装しますか?

OpenIDの背後にあるセキュリティモデルは何なのかと思います。ケルベロスのようなものですか?

10
user705414

質問は非常に広範であり、あなたが実際に何を求めているかを推測することは困難です。仕様は http://openid.net/developers/specs/ にあります。

Kerberosは通常、制御された環境で使用されます。その環境には、既知の信頼できるKerberosサーバー(「鍵配布センター」)があります。 Kerberosサーバーは、サービスプロバイダーをクライアントに対して認証し、クライアントをサービスプロバイダーに対して認証します。したがって、Kerberosサーバーはすべてのクライアントとすべてのサービスプロバイダーを認識している必要があります。

OpenIDは、インターネットなどのオープン環境用に設計されています一般の。つまり、任意のサービスプロバイダー(Webサイト)は、任意のopenid-server(「アイデンティティプロバイダー」)と連携してクライアントを認証できます。

KerberosとOpenIDの違い

Kerberosは制御された環境で使用されるため、コンピュータへのログイン後、サービスへのログインは完全に透過的です。ただし、インターネットでは、openid-providerを選択してログインする必要があります。これらは2つの追加ステップです。さらに、サービスプロバイダーが悪意のある場合、openid-providerへのリダイレクトがフィッシングサイトに到達する可能性があります。

Openid-serverはユーザーのみを認識します。 Kerberosとは異なり、OpenIDプロバイダーはサービスプロバイダーを認証できません。したがって、多くのopenid-providerはID情報を渡す前に特定のWebサイトにログインすることを確認するようユーザーに要求します。制御された環境では、このような決定は代わりに管理者によって行われます(ユーザーよりもセキュリティについてよく理解していると想定)。この確認は、ドメインごとに保存できます。ただし、Kerberosとは異なり、認証は含まれません。ドメインの所有権が正当または不正な理由で変更された場合、これは通知されません。

結論

OpenIDには、Kerberosにはない多くの問題があります。ただし、Kerberosはオープン環境ではまったく機能しないため、OpenIDの一般的な使用例の代替手段にはなりません。

12

OAuth(OpenIDが実装するプロトコル))はKerberosの直接の子孫であることを理解しています。仕様へのポインタについては この説明 を参照してください。

3
Pete Wilson