「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Spring Boot での OAuth 認証: Google と GitHub ログインを統合するためのガイド

Spring Boot での OAuth 認証: Google と GitHub ログインを統合するためのガイド

2024 年 11 月 3 日に公開
ブラウズ:535

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/

にアクセスしてください

プロジェクトを作成

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

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 にアクセスする必要があります

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

API サービスをクリック

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

認証情報 -> 認証情報の作成 -> OAuth クライアント ID

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

OAuth クライアント ID -> OAuth クライアント ID の作成

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

アプリケーションの種類Webアプリケーションに選択します

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

アプリケーション名を入力

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

承認されたリダイレクト URIをこの URL に設定します。ここではアプリケーションが 8000 ポートで実行されているため、アプリケーション ポートは 8000 です。次に、[作成] をクリックします

http://localhost:8000/login/oauth2/code/google
http://localhost:8000/login/oauth2/code/google

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

その後、OAuth クライアントが作成され、クライアント ID とクライアント シークレットを取得します。

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

両方をコピーして、application.properties ファイルのプロパティに置き換えます


spring.security.oauth2.client.registration.google.client-id=YOUR_GOOGLE_CLIENT_ID spring.security.oauth2.client.registration.google.client-secret=YOUR_GOOGLE_CLIENT_SECRET
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
http://localhost:8000/login/oauth2/code/google

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

次のような同様の応答が返されます

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

これでエンドポイントにアクセスできるようになりました。

GitHub認証

Spring Boot の GitHub 認証により、ユーザーは GitHub アカウントを使用してログインできるようになり、認証プロセスが合理化され、セキュリティが強化されます。 GitHub を OAuth 2.0 プロバイダーとして統合すると、アプリケーションは GitHub の信頼できるプラットフォームを通じてユーザーを認証できます。これには、アプリケーションを GitHub に登録してクライアント ID とクライアント シークレットを取得し、それらを Spring Boot アプリケーションで構成することが含まれます。ユーザーはログインのために GitHub にリダイレクトされ、認証が成功すると、アクセス トークンを使用してアプリケーションにリダイレクトされ、保護されたリソースに安全にアクセスできるようになります。この統合は、開発者や技術に精通したユーザーを対象としたアプリケーションに最適です。

GitHub アカウントを作成し、設定に移動します

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

左隅に

開発者設定が表示されます

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

OAuth アプリに移動

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

OAuth アプリの作成をクリックします

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

次のようなインターフェイスが得られます

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

アプリケーション ポートに従って ** 認可コールバック URL ** を設定します


http://localhost:8000/login/oauth2/code/github
http://localhost:8000/login/oauth2/code/google

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

して

ホームページのURLを設定します

http://localhost:8000
http://localhost:8000/login/oauth2/code/google
アプリケーションを登録すると、

クライアント ID とクライアント シークレット を取得します。

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

Application.properties ファイルのプロパティに置き換えます


spring.security.oauth2.client.registration.github.client-id=Ov23liBMLc5e1ItoONPx spring.security.oauth2.client.registration.github.client-secret=
http://localhost:8000/login/oauth2/code/google

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

GitHub ログインをテストする

GitHub でログイン: プロンプトが表示されたら、GitHub 認証情報を使用してログインします。

成功のリダイレクト: 認証が成功すると、アプリケーションの /home ページにリダイレクトされます。

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

私の GitHub リポジトリでユーザー認証サービスの完全なソース コードを探索できます。このプロジェクトでは、ユーザー登録、ログイン、認証に JWT を使用した安全なアクセスなどのさまざまな機能を紹介します。自由にチェックしたり、投稿したり、独自のプロジェクトの参考として使用したりしてください!

GitHub リポジトリ: https://github.com/ishrivasayush/oauth2-authentication-service

結論

Google と GitHub を認証プロバイダーとして使用して、Spring Boot で OAuth 2.0 を実装することは、アプリケーションのセキュリティと使いやすさを強化する強力な方法です。ユーザーが既存のアカウントでログインできるようにすることで、煩わしさが軽減され、よりスムーズなユーザー エクスペリエンスが提供されます。同時に、JWT で API エンドポイントを保護することで、認証されたユーザーのみが機密リソースにアクセスできるようになります。

このガイドでは、Google と GitHub での OAuth 認証情報の設定から、認証を処理してエンドポイントを保護するための Spring Boot アプリケーションの構成まで、すべてを説明しました。 OAuth 2.0 を初めて使用する場合でも、OAuth 2.0 をプロジェクトに統合しようとしている場合でも、これらの手順は安全でスケーラブルな認証システムを構築するのに役立ちます。

セキュリティは終わりのない旅ですが、適切なツールと実践方法を使用すれば、安全でユーザーフレンドリーなアプリケーションを構築できます。強固な基盤ができたので、プロバイダーを追加したり、ユーザー エクスペリエンスをカスタマイズしたり、JWT 構成をさらに詳しく調べたりすることができます。コーディングを楽しんでください!

リリースステートメント この記事は次の場所に転載されています: https://dev.to/ayushstwt/oauth-20-authentication-in-spring-boot-a-guide-to-integrating-google-and-github-login-2hga?1権利侵害、削除するには、[email protected] までご連絡ください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3