私はKeycloakサーバーに非常に慣れていないため、これを使用して、インターネット上で開かれているフロントエンドアプリとバックエンドレストAPIを保護したいと考えています. これまでのところ、私が理解して行ったことは、Keycloackで2つのクライアントを作成することです。1つは、アクセスタイプ(Public)でクライアントプロトコル(openid-connect)を使用するフロントエンド用であり、クライアント側では、アダプターを使用してユーザーをKeycloakログインにリダイレクトしていますページを開き、認証してトークンを取得します。ここで、バックエンド (rest-apis) のために、クライアント プロトコル (openid-connect) を再度使用しますが、アクセス タイプ (機密) と認証フローを使用する別のクライアントを作成しました: ブラウザー フローとダイレクト グラント フローの両方がダイレクト グラントであり、その後クライアントIDとクライアントシークレットを取得して、Keycloak REST APIを呼び出します。
ここで、ユーザーがフロントエンドから認証され、トークンを取得し、ヘッダー リクエストを残りの API に送信するときに、いくつかの Keycloak 残りの API を呼び出して、client_id と client_secret を提供してこのトークンを確認します。
フロントエンドで生成したトークンを検証するために、Keycloak の次の REST API を使用しています。
http://localhost:8120/auth/realms/evva_realm/protocol/openid-connect/token/introspect
しかし、結果はそのようになっています:
{
"active": false
}
バックエンド API が正しくないことを確認して保護するために、間違った API またはアーキテクチャ全体を使用している可能性があります。誰かが問題の場所を理解するのを手伝ってくれますか?