Java を使用して OAuth2 に基づく認証および認可システムを開発する方法
1. はじめに
OAuth2 は、サードパーティの認証を許可するために使用されるオープン標準の認可プロトコルです。アプリケーションは、ユーザーの資格情報を共有せずに、ユーザーが別のアプリケーションに保存したリソースにアクセスします。この記事では、Java を使用して OAuth2 ベースの認証および認可システムを開発する方法を紹介します。
2. OAuth2 の基本原則
OAuth2 の基本原則は、トークンを介してユーザーのリクエストを認証することです。開発者は、独自のアプリケーションでクライアント ID と秘密キーを申請し、そのクライアント ID と秘密キーをサードパーティ アプリケーションに提供します。サードパーティ アプリケーションがリクエストを開始すると、クライアント ID、秘密キー、およびユーザー認証情報が送信され、認証サーバーにリクエストが送信されます。認証サーバーはクライアント ID と秘密キーを検証し、サードパーティ アプリケーションにトークンを返します。サードパーティのアプリケーションは、トークンを使用してユーザーのリソースにアクセスできます。
3. 開発環境の準備
まず、Java 開発環境を準備する必要があります。 Java 開発キット (JDK)、統合開発環境 (IDE)、および関連する Java 開発ライブラリをインストールします。
4. 依存関係ライブラリの追加
コードを記述する前に、OAuth2 の開発をサポートするために Java 依存関係ライブラリを追加する必要があります。
Maven 依存関係:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-oauth2-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
5. コードを記述します
-
Spring Boot プロジェクトを作成し、OAuth2 の関連パラメーターを構成します。
@SpringBootApplication @EnableOAuth2Client @EnableWebSecurity public class OAuth2DemoApplication { public static void main(String[] args) { SpringApplication.run(OAuth2DemoApplication.class, args); } }
-
OAuth2 クライアント ID、秘密キー、認証サーバー アドレス、およびその他のパラメーターを application.properties ファイルで構成します。
spring.security.oauth2.client.registration.example-client.client-id=client_id spring.security.oauth2.client.registration.example-client.client-secret=client_secret spring.security.oauth2.client.registration.example-client.provider=example-provider spring.security.oauth2.client.registration.example-client.redirect-uri={baseUrl}/login/oauth2/code/{registrationId} spring.security.oauth2.client.provider.example-provider.authorization-uri=https://example.com/oauth2/authorize spring.security.oauth2.client.provider.example-provider.token-uri=https://example.com/oauth2/token spring.security.oauth2.client.provider.example-provider.user-info-uri=https://example.com/oauth2/userinfo spring.security.oauth2.client.provider.example-provider.user-name-attribute=name
-
サードパーティ アプリケーションからのリクエストを処理するコントローラーを作成し、OAuth2 クライアントを使用してユーザーのリクエストを認証します。
@Controller public class OAuth2Controller { @Autowired private OAuth2AuthorizedClientService authorizedClientService; @GetMapping("/auth") public String authorize(Principal principal) { OAuth2AuthenticationToken authentication = (OAuth2AuthenticationToken) principal; OAuth2AuthorizedClient authorizedClient = this.authorizedClientService .loadAuthorizedClient( authentication.getAuthorizedClientRegistrationId(), authentication.getName()); String accessToken = authorizedClient.getAccessToken().getTokenValue(); // 使用令牌来访问用户资源 // ... return "redirect:/"; } }
6. テスト
- アプリケーションを起動し、認証サーバーのログインページにアクセスします。
- サードパーティ アプリケーションのログイン ボタンを使用してログインします。
- 認証サーバーが検証に合格すると、トークンがサードパーティ アプリケーションに返されます。
- サードパーティ アプリケーションは、トークンを使用してユーザーのリソースにアクセスできます。
7. 概要
この記事では、Java を使用して OAuth2 に基づく認証および認可システムを開発する方法を紹介します。 OAuth2 を通じて、サードパーティ アプリケーションがユーザー リソースにアクセスするための承認機能を実装できます。 Spring Boot と Spring Security の OAuth2 クライアント ライブラリを使用すると、開発プロセスを簡素化し、安全で信頼性の高い認証および認可システムを迅速に構築できます。
上記は単なる例であり、実際の開発では、エラー処理や権限管理など、さらに詳細な考慮が必要になる場合があります。この記事が読者に役立ち、Java を使用して OAuth2 ベースの認証および認可システムを開発する方法について予備的な理解を与えることができれば幸いです。
以上がJava を使用して OAuth2 ベースの認証および認可システムを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ドリームウィーバー CS6
ビジュアル Web 開発ツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
