私が持っている2つの認証サーバアプリケーション(春ブーツ2.0.5)。
2つの認証サーバーアプリケーションは類似しています
ときに、ユーザーが尋ねるためにトークン、春はなり登録セッション、特定のユーザーのためにしてお返しトークンを、それとあなたがアクセスできるトークンアプリケーション1のリソースがありますが、アプリケーション2のリソースへのアクセスはできません。
私の質問は、アプリケーション1からトークンを生成するときに、アプリケーション2のリソースへのアクセスに使用できる同じセキュリティコンテキストを追加で共有する方法があるかどうかです。
あなたができることは、セキュリティに関してはアプリケーションをステートレスにすることです。
どういう意味ですか?
Spring Securityは、新しくログインしたユーザーのセッションを生成しなくなりました。ユーザーがログインすると、トークン(JWTなど)が発行されます。ユーザーが保護されたコンテンツにアクセスするたびに、トークンを提供する必要があり、アプリケーションはそのトークンを公開鍵または秘密鍵で検証します(使用するトークン暗号化のタイプ(対称または非対称)によって異なります)。最終的に、両方のアプリケーションが着信トークンを検証するために同じキーを持っている場合は、何も共有する必要はありません。
いくつかのヒント:
保護されたリソースへのアクセス要求ごとに送信するトークンは、「アクセストークン」と呼ばれます。それは作り期限切れとそれが短い(15分のように)住んでいたします。どうして?単純に削除できるセッションとは異なり、このトークンをすぐに無効にすることはできません。誰かがそれを乗っ取った場合でも、セキュリティで保護されたリソースにアクセスできます。
「アクセストークン」は短命であるため、ユーザーが15分ごとにログインするのは面倒です。その寿命を延ばすために、データベースに保存できる「リフレッシュトークン」と呼ばれる別のタイプのトークンを使用できます。このトークンは、データベースから削除するだけですぐに無効にできます。したがって、誰かがそれをハイジャックした場合でも、ユーザーはそれを取り消すことができ、ハイジャック犯は自分のセッションを延長することはできません。
参考資料:JWTによるステートレス認証
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加