OAuth 2.0 によるセキュリティの強化: Spring Boot でのソーシャル ログインの実装
現代の Web 開発の世界では、アプリケーションを保護し、ユーザーの認証をできるだけスムーズにすることが最優先事項です。ここで OAuth 2.0 が登場します。OAuth 2.0 は、API を保護するだけでなく、ユーザーが Google や GitHub などのプラットフォームから既存のアカウントでログインできるようにする強力なツールです。これにより、誰にとっても作業が簡単になります。ユーザーはさらに別のパスワードを覚える必要がなくなり、開発者は認証を管理するための信頼できる方法を得ることができます。
このブログでは、Spring Boot アプリケーションで OAuth 2.0 をセットアップする方法を段階的に説明します。認証のために Google と GitHub の両方を統合するので、ユーザーはログインに使用するサービスを選択できます。また、JWT (JSON Web トークン) を使用して API エンドポイントを保護し、認証されたユーザーは、本来のリソースにアクセスできます。
新しいアプリを構築する場合でも、既存のアプリにセキュリティを追加する場合でも、このガイドでは Spring Boot アプリケーションを安全で使いやすいものに保つために必要なツールが提供されます。
https://start.spring.io/
にアクセスしてくださいプロジェクトを作成
zip をダウンロードして解凍し、プロジェクトを IDE にロードします。
Spring Boot の「OAuth2 Client」依存関係により、OAuth 2.0 認証と Google や GitHub などのプロバイダーとの統合が簡素化されます。ユーザーのプロバイダーのログイン ページへのリダイレクト、トークンの管理、API エンドポイントの保護など、OAuth ログイン フロー全体を処理します。この依存関係を追加すると、Spring Boot アプリケーションで安全でユーザーフレンドリーな認証を簡単に有効にすることができます。
Spring Boot の "Spring Web" 依存関係は、Web アプリケーションの開発にとって重要です。 RESTful API の作成、MVC アーキテクチャのサポート、HTML ビューを提供する機能などの重要な機能を提供します。 Spring Web を使用すると、HTTP リクエストと応答を簡単に処理し、ルーティングを管理し、他の Spring コンポーネントと統合できるため、堅牢な Web アプリケーションを構築するための基礎的な部分になります。
Google および GitHub での OAuth 2.0 認証用に Spring Boot アプリケーションを設定するには、application.properties ファイルを構成する必要があります。このファイルには、OAuth クライアント認証情報、ログ レベル、JWT 構成など、アプリケーションの重要な設定が含まれています。
spring.application.name=oauth2-authentication-service server.port=8000 #for google spring.security.oauth2.client.registration.google.client-id=YOUR_GOOGLE_CLIENT_ID spring.security.oauth2.client.registration.google.client-secret=YOUR_GOOGLE_CLIENT_SECRET #for github spring.security.oauth2.client.registration.github.client-id=YOUR_GITHUB_CLIENT_ID spring.security.oauth2.client.registration.github.client-secret= YOUR_GITHUB_CLIENT_SECRET
OAuth クライアント構成: YOUR_GOOGLE_CLIENT_ID、YOUR_GOOGLE_CLIENT_SECRET、YOUR_GITHUB_CLIENT_ID、および YOUR_GITHUB_CLIENT_SECRET を、アプリケーションの登録時に Google および GitHub から取得した認証情報に置き換えます。
OAuth 2.0 認証のためにアプリケーションを Google および GitHub に登録するには、https://console.cloud.google.com にアクセスする必要があります
アプリケーションの種類をWebアプリケーションに選択します
承認されたリダイレクト URIをこの URL に設定します。ここではアプリケーションが 8000 ポートで実行されているため、アプリケーション ポートは 8000 です。次に、[作成] をクリックします
http://localhost:8000/login/oauth2/code/google
http://localhost:8000/login/oauth2/code/google
SecurityConfig クラスは、OAuth2 を使用して Spring Boot アプリケーションのセキュリティを構成します。これは、セキュリティ ルールを設定する SecurityFilterChain Bean を定義します。 authorizeHttpRequests メソッドは、すべての受信リクエストに認証が必要であることを保証します。 .oauth2Login(Customizer.withDefaults()) 行は、デフォルト設定で OAuth2 ログイン機能を有効にします。最後に、securityFilterChain メソッドは http.build() を呼び出して、構成されたセキュリティ フィルター チェーンを返します。この設定により、アプリケーションの安全性が保証され、ユーザーの OAuth2 認証がサポートされます。
Chrome 経由でアプリケーションにアクセス
Spring Boot アプリケーションを開発およびテストする場合、Postman を介してアプリケーションを操作する方法を知ることが重要です。アプリケーションがポート 8000 でローカルに実行されている場合は、次のベース URL を使用してアクセスできます:
http://localhost:8000/login/oauth2/code/google
GitHub認証
GitHub アカウントを作成し、設定に移動します
開発者設定が表示されます
OAuth アプリの作成をクリックします
http://localhost:8000/login/oauth2/code/google
ホームページのURLを設定します
http://localhost:8000/login/oauth2/code/googleアプリケーションを登録すると、
クライアント ID とクライアント シークレット を取得します。
http://localhost:8000/login/oauth2/code/google
GitHub ログインをテストする
GitHub でログイン: プロンプトが表示されたら、GitHub 認証情報を使用してログインします。
成功のリダイレクト: 認証が成功すると、アプリケーションの /home ページにリダイレクトされます。
GitHub リポジトリ: https://github.com/ishrivasayush/oauth2-authentication-service
結論
このガイドでは、Google と GitHub での OAuth 認証情報の設定から、認証を処理してエンドポイントを保護するための Spring Boot アプリケーションの構成まで、すべてを説明しました。 OAuth 2.0 を初めて使用する場合でも、OAuth 2.0 をプロジェクトに統合しようとしている場合でも、これらの手順は安全でスケーラブルな認証システムを構築するのに役立ちます。
セキュリティは終わりのない旅ですが、適切なツールと実践方法を使用すれば、安全でユーザーフレンドリーなアプリケーションを構築できます。強固な基盤ができたので、プロバイダーを追加したり、ユーザー エクスペリエンスをカスタマイズしたり、JWT 構成をさらに詳しく調べたりすることができます。コーディングを楽しんでください!
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3