web-dev-qa-db-ja.com

OpenID Connectを使用してソーシャルログインを実装できますか?

OAuthを使用してソーシャルログインを実装することは安全ではありません( https://tools.ietf.org/html/rfc6819#section-4.4.2.6 )OAuthは認証を提供せず、承認のみを提供します。この問題は、ローカルアプリケーションが誤って、特定のアクセストークンがID情報を返すため、そのIDを持つユーザーがOAuthプロバイダーなので、ローカルアプリケーションで対応するユーザーとして認証できます。

上記とは対照的に、OIDCは認証を実行し、ローカルアプリケーションを対象とするIDトークンを返します。したがって、トークンエンドポイントから返されたときにIDトークンがすぐに使用されると想定して、IDトークンを使用してユーザーを安全に認証できますか?このアプローチに明らかなセキュリティ上の影響はありますか?

1
Sean Kelleher

ソーシャルログインは、多数の実装オプション/アーキテクチャに相当する包括的な用語です。使用する必要がある基本的なプロトコルは、IDプロバイダーによって異なります。 OpenID Connectは、認証とid_tokenはこの目的のために依存パーティによって使用できます。

...しかし、すべての主要なソーシャルプラットフォームがOpenID Connectをサポートしているわけではありません。たとえば、これを書いている時点では、FacebookログインはoAuthに基づいています。あなたが正しく指摘したように、oAuthは認証フレームワークであり、そのために緩やかなものです。そのため、FacebookはLogin forを一連のライブラリとして展開しましたおよび標準のoAuth風の承認に加えて、Facebook独自の方法で認証のユースケースをカバーします。

OpenID ConnectをサポートするGoogleのようなプラットフォームの場合、悪魔は詳細にあり、「セキュリティの影響」も含まれます。良いニュース:多くの脅威モデリング作業 すでに行われています OpenID Connectで。悪いニュース: それは複雑です

3
identigral