目次
シロとは:
Shiro は、認証、認可、暗号化、セッション管理を完全に処理する、強力で柔軟なオープンソース セキュリティ フレームワークです。
シロの主な機能は次のとおりです。
- 認証: ユーザーの ID を検証して、ユーザーが正当であることを確認します。
- 承認: システム リソースへのユーザーのアクセスを制御し、ユーザーが承認された部分のみにアクセスできるように制限します。
- セッション管理: ユーザー セッションを管理し、ユーザーのログイン ステータスとアクティビティを追跡し、セッション永続性のサポートを提供します。
- 暗号化: パスワードの暗号化と復号化のサポートを提供し、保存および送信中のユーザー パスワードのセキュリティを確保します。
- Web サポート: 主流の Web フレームワーク (Spring、Struts など) や Web リクエストを処理するフィルターの統合など、Web アプリケーションとの統合のサポートを提供します。
シロの主なコンポーネントと相互作用:
-
主題:
- 件名は、現在アプリケーションを操作しているユーザーを表します。人、デバイス、またはその他のシステム エンティティを指定できます。
- サブジェクトは、ユーザーの ID と関連するセキュリティ操作 (ログイン、ログアウト、権限チェックなど) をカプセル化します。
-
保安管理者:
- SecurityManager は、Shiro の中核コンポーネントであり、すべてのセキュリティ操作の調整と管理を担当します。
- SecurityManager は、認証と認可のために 1 つ以上のレルムを管理します。
-
Realm(域):
- Realm は、Shiro と安全なデータ ソース (データベース、LDAP など) の間のブリッジです。
- Realm は、データ ソースからユーザーの ID および許可情報を取得し、それを検証および認可操作のために SecurityManager に提供する責任を負います。
-
認証者:
- Authenticator はユーザーの認証を担当します。
- Authenticator は Realm を使用してユーザーの ID 情報を取得し、それをユーザーが提供した資格情報と比較して、ユーザーが正当であるかどうかを判断します。
-
承認者:
- オーソライザーは、ユーザーを承認し、ユーザーが特定のリソースにアクセスする権利を持っているかどうかを判断する責任があります。
- Authorizer は Realm を使用してユーザーのロールと権限の情報を取得し、それをアプリケーション定義のロールと権限と照合して、ユーザーがリソースへのアクセスを許可されているかどうかを判断します。
-
セッションマネージャー:
- SessionManager はユーザー セッションの管理を担当します。
- SessionManager は、ユーザー セッションを作成、維持、終了し、セッション永続性のサポートを提供します。
-
SessionDAO (セッション データ アクセス オブジェクト):
- SessionDAO は、セッション データの読み取りと保存のためのインターフェイスです。
- SessionDAO は、データベースまたは他のストレージ メディアと対話して、セッション データを永続化するか、永続ストレージからセッション データを読み取ります。
これらのコンポーネントは連携して、Shiro のセキュリティ フレームワークを形成します。サブジェクトは、Realm を使用してユーザーの ID および許可情報を取得する SecurityManager を通じて認証および認可操作を実行します。そして、Realms の認証と認可を実装する必要があります。Authenticator は認証を担当し、Authorizer は承認を担当し、SessionManager はセッション管理を担当します。SessionDAO は、セッション データの読み取りと保存をサポートします。これを通して
この対話を通じて、Shiro はアプリケーションのセキュリティを保護するための包括的なセキュリティ機能を提供します。
シロ認定プロセス:
- ユーザーが ID 情報を送信する: ユーザーは、アプリケーションのログイン ページにユーザー名とパスワードを入力し、ID 情報を送信します。
- サブジェクトが ID 情報を送信する: アプリケーションは、ユーザーによって送信された ID 情報を受信した後、それを Subject オブジェクトにカプセル化します。
- SecurityManager による認証の開始: SecurityManager は、Shiro のコア コンポーネントであり、すべてのセキュリティ操作の調整と管理を担当します。サブジェクトが送信した ID 情報を受信した後、認証を開始します。
- SecurityManager は認証のために Authenticator を呼び出します: SecurityManager は、認証のために設定された Authenticator を呼び出します。
- Authenticator は ID 情報を取得します: Authenticator はレルム (単一のレルムまたは複数のレルムの組み合わせ) を使用して、データ ソースからユーザーの ID 情報を取得します。
- Realm はユーザー ID 情報を取得します。Realm は、Shiro と安全なデータ ソースの間のブリッジです。設定された方法 (データベース、LDAP など) に基づいてユーザーの ID 情報を取得します。
- Authenticator は ID 照合を実行します。Authenticator は、ユーザーによって送信された ID 情報と Realm によって取得されたユーザー ID 情報を照合して、ユーザーが正当であるかどうかを判断します。
- 認証結果は SecurityManager に返されます。Authenticator は認証結果 (成功または失敗) を SecurityManager に返します。
- SecurityManager は認証結果を処理します。SecurityManager は認証結果に従って、認証が成功した場合、ユーザーは認証済みとしてマークされ、ユーザーの ID 情報は後で使用できるように Subject に保存されます。認証が失敗した場合は、適切な例外がスローされます。
- 認証結果はアプリケーションに返されます。SecurityManager は認証結果をアプリケーションに返し、アプリケーションは認証結果に基づいてその処理方法を決定できます。
シロ認証プロセス:
-
-
ユーザーによるアクセス要求の開始:
ユーザーは、特定の URL へのアクセスや操作の実行など、アプリケーション内のリソースへのアクセス要求を開始します。 -
サブジェクトが認可リクエストを開始する:
Subject オブジェクトは、現在のユーザーの ID 情報と関連するセキュリティ操作をカプセル化します。ユーザーがアクセス要求を開始すると、Subject オブジェクトは承認要求を SecurityManager に送信します。 -
SecurityManager による認証の開始:
SecurityManager は、Shiro のコア コンポーネントであり、すべてのセキュリティ操作の調整と管理を担当します。サブジェクトの認可リクエストを受信すると、認可処理を開始します。 -
SecurityManager は認可のために Authorizer を呼び出します。
SecurityManager は、認可操作のために設定された Authorizer を呼び出します。 -
オーソライザーはユーザーのロールとパーミッション情報を取得します。
オーソライザーはレルム (単一レルムまたは複数のレルムの組み合わせ) を使用して、データ ソースから現在のユーザーのロールとパーミッション情報を取得します。 -
ロールと権限の照合用のオーソライザー:
オーソライザーは、ユーザーのロールと権限の情報をアプリケーション定義のロールと権限と照合して、要求されたリソースにアクセスする権限がユーザーにあるかどうかを判断します。 -
認可結果は SecurityManager に返されます。
Authorizer は認可結果 (アクセス許可またはアクセス拒否) を SecurityManager に返します。 -
SecurityManager は認可結果を処理します。
認可結果に基づいて、認可が成功した場合、SecurityManager はユーザーが要求されたリソースにアクセスできるようにします。認可が失敗した場合、対応する例外がスローされるか、他の処理手段が講じられます。 -
認可結果はアプリケーションに返されます。SecurityManager
は認可結果をアプリケーションに返し、アプリケーションは認可結果に基づいてユーザーのアクセス要求を処理する方法を決定できます。
-
情報の入手方法
【メッセージ777】
ソースコードやその他のチュートリアル資料を入手したいお友達は、「いいね!」 + コメント + 収集を3 回続けてお願いします。
3ラウンド連続で終わったら、コメント欄に個別メッセージを送ります〜