最新のネットワーク アプリケーションでは、セキュリティが非常に重要です。ユーザー データとシステム リソースを保護するには、アクセス トークンの検証が不可欠な手順です。 Keycloak は、強力な ID 認証およびアクセス管理ソリューションとして、開発者にシンプルで安全な検証方法を提供します。この記事では、PHP エディターの Xigua が、Keycloak を使用してアクセス トークンを検証し、アプリケーションのセキュリティを確保する方法を紹介します。この記事のガイダンスを活用すると、アクセス トークン検証を簡単に実装し、承認されたユーザーのみがアプリケーションにアクセスできるようにすることができます。
GOを使用したアクセストークン検証を実装しようとしています。しかし、オンラインで見た例では、TOKEN_SECRET を使用して検証しているだけのようです。ただし、私は Java Spring でのプログラミングに慣れているため、TOKEN_SECRET を使用する必要はありません。 jwk-set-uri を指定するだけで、有効性 (自動セキュリティ フィルターなど) がチェックされ、oauth サーバーと通信してこの検証が行われることがわかります。
Go には、oauth サーバーにリクエストを送信してトークンが有効かどうかを確認できるライブラリはありませんか?
oauth サーバーの userinfo エンドポイントにリクエストを送信することで、これを手動で実行できることはわかっています:
リーリー(キー認証のあるヘッダーにトークンを含めます)
しかし、これが基準を完全に満たしているかどうかはわかりません。
正しいアプローチは何ですか?
短い答え: go-oidc
を使用します。長い答え:
まず、Spring Security が JWT アクセス トークンを自動的に検証する方法を理解しましょう。慣例により、application.yaml
構成ファイルで OAuth 2.0 または OIDC クライアント プロパティを定義すると、Spring は自動的にセキュリティ フィルター チェーンにフィルターを接続し、jwk-set
を取得します。 Keycloakは、Keycloakがトークンに署名するために使用する鍵に対応する公開鍵のセットです。フィルターはすべての保護されたルートに適用され、Spring は公開キーを使用してトークンの署名が有効であることを確認し、該当する場合は他のチェック (オーディエンス、タイムアウトなど) を実行します。
jwk-set を受け入れ、それを使用してトークンを検証する単純なミドルウェアを作成できます。
alg 宣言をチェックして、どの署名アルゴリズムが使用されたかを確認し、対応する公開鍵を
jwk-set から選択して、署名が有効であることを確認する必要があります。次に、トークンをデコードし、
iss および
sub クレームを確認して、トークンが信頼できる発行者からのものであり、対象読者を対象としたものであることを確認し、有効期限が切れていないことを確認します。
nbf (以前ではない) および
iat (その後に発行) によって宣言された時間が正しいことを確認してください。最後に、必要に応じて、下流でトークンからの関連情報がリクエスト コンテキストに挿入されます。
リーリー
以上がGO アクセス トークン (keycloak) を認証するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。