Oauth2.0 シーズン 2 の分散型認証と認可によるシングル サインオンの実現

Oauth の概要

1.0 質問の概要

1. トークンの送信に jwttoken を使用すると、リソース サーバーはトークンをローカルでどのように検証しますか?

1.1 oauthの基本内容

1.1.1 認証とは何ですか

1.1.2 Oauth の役割

1.1.3 oauth 認証プロセス

1.1.4 4 つの Oauth モード

1.2 oauth2.0を使用する理由

1. 単一アーキテクチャを導入し、session を使用してセッション情報を保存する

2. フロントエンドとバックエンドの分離プロジェクト、メソッドの呼び出し

セッション アーキテクチャはフロントエンドとバックエンドの分離プロジェクトには適していません

3. 解決策、oauth2.0 への誘導

1.3 検証対象

構成ファイルはポートとコンテキスト パスを構成します

 アクセス時: http://localhost:8090/auth/lgoin /auth のレベルが設定されていない場合は、

http://localhost:8090/lgoin

2ケース構造

2.1 親プロジェクトのビルド

2.2 認証センターサービスの構築

2.2.1 認証センターのセキュリティと認証構成

1. 認証センターの構成

 

2. セキュリティ設定

3. エンドポイントにアクセスする

いわゆるアクセス エンドポイントは、アクセスを提供する URL インターフェイス アドレスです。

4. 4 つの検証モードの検証をテストします。

5. パスワード モードを構成ファイルに追加する必要があります:authenticationManager(xxxx) インスタンス

 6. クライアントモード

 

 2.2.2 リフレッシュトークン

一定期間使用した後、トークンの有効期限が切れたら、新しいトークンを取得し、パラメータと必要な設定を引き継ぐ必要があります。

 

 

 2.2.3 Redis管理トークン

 

 コンテナに追加する

  2.2.4 jdbc管理トークン

   2.2.5 jdbc管理認可コード

  2.2.6 クライアント情報の保存

2.2.8 認証情報エンドポイントの検証

 

 2.2.9 RBAC に基づくクエリデータベース認証

2.3 リソースマネージャーサービスの構築

2.3.1 原理の概要

リソース サービス サーバーは、実際には、注文サービス、製品サービス、会員サービスなど、呼び出されるさまざまなマイクロサービスです。マイクロサービス アーキテクチャでは、各マイクロサービスはリソースであり、ユーザーがマイクロサービス リソースを要求すると、まず認証サーバーによって認証と認可が行われ、その後、対応するリソースにアクセスできるようになります。

 2.3.2 リソースサービスプロジェクトの構築

 

 2.3.3 リソースサーバーテストのリクエスト

1. トークンなしの直接アクセス

 2. アクセス用のトークンを持ち歩く

  2.3.4 リソース要求スコープの設定

セッションを無効にする

2.4 認証と認可に jwtToken を使用する

2.4.1 jwt を使用する理由

リソース サービスにアクセスするたびにトークンの有効性を検証する必要があり、リモート呼び出し認証サービスでもトークンの有効性を検証する必要があります。アクセス量が多いとシステムのパフォーマンスに影響を与えます。解決策は jwt を使用することです。jwt にはユーザーの基本情報が含まれています。クライアントはリソースにアクセスするために jwt を運びます。リソース サーバーは事前に合意されたアルゴリズムを通じて jwt を解析し、jwt トークンを検証します。毎回リモートで認証サーバーを要求します。

2.4.2 認証サービスの設定 jwt 対称キー

 以下に示すように:

各アクセス リソース サーバーは、このメソッドを実行してトークンの正当性を検証する必要があります。これにより認証サーバーに過大な負荷がかかるため、この状況を解決するメカニズムが必要です。jwt を使用すると、検証のために認証センター サービスの接続を呼び出すことなく、リソース サーバーで直接自身を検証できます。

への変更:

コンテナに登録する

 アクセス:

2.4.3 リソース構成jwtの対称キー

 1. 呼び出し側認証サービスコードをコメントアウトします。

2. jwt認証を追加する

3. コンテナの登録

 2.4.4 認証サービスの設定 jwt 非対称キー

 

 

  2.4.5 リソースサービス設定 jwt 非対称キー

3つのoauth2.0分散認証認可

3.1 分散型認証および認可プロセス

3.2 エウレカ登録センターの構築

 3.3 eurekaに登録するリソースサーバと認証サーバの構成

1.pom の依存関係を構成する

2.ymlファイルを設定する

3. スタートアップ クラスにアノテーションを追加する 

  3.4 ゲートウェイ zuul の構成

3.4.1. 基本的なゲートウェイ設定

 

 3.4.2. ゲートウェイ設定リソースサービス設定クラス

 1. リリースとフィルタ判定のパスを設定する

 3.4.3. ゲートウェイセキュリティ設定クラス

1. Springセキュリティ構成クラスを構成する

  3.4.4. 認証フィルターの設定

 2. クロスドメイン ソリューション

 3.5. リソースサービスの解析と認可

3.5.1 フィルタは認可を実装します

マイクロサービスのゲートウェイによって転送されたトークンを受信した後、マイクロサービスの認証と認可を完了するために Authentication オブジェクトを構築する必要があります。これにより、マイクロサービスは、対応するリソースがユーザーによって使用できるかどうかを、ユーザーのアクセス許可。

 2. 認証のカプセル化

 3. アクセスを確認する

  3.6. client1 および client2 のシステム構成からゲートウェイへの統合シングル サインオン

1. 登録エウレカ情報を設定する

2. 認証サービスのポートをゲートウェイのポート 7001 に変更します。

 3.7 クライアント リソース サービス インターフェイスはトークン トークンを伝送します

 2. OAuth2RestTemplate の構成

 

3.client1 がリソースサーバーをリクエストします

 

 

おすすめ

転載: blog.csdn.net/u011066470/article/details/132510749