問題タブ [keycloak-rest-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
authentication - Keycloakでフロントエンドと残りのAPIを保護する方法
私は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 を使用しています。
しかし、結果はそのようになっています:
バックエンド API が正しくないことを確認して保護するために、間違った API またはアーキテクチャ全体を使用している可能性があります。誰かが問題の場所を理解するのを手伝ってくれますか?
keycloak - このキークローク REST API エンドポイントに到達できないのはなぜですか?
ロールに基づいてユーザー リストを取得しようとしています。私はこの役割を持っています: ROLE_ADMIN. この役割を持つすべてのユーザーを取得したいと思います。
このエンドポイントで試してみます:
http://10.10.10.10:5555/auth/demo-realm/clients/e286a05c-6641-49c3-bb7c-ffe5dd2d8c66/roles/ROLE_ADMIN/users
しかし、それは私にこれを送り返します:
{ "エラー": "RESTEASY003210: フル パスのリソースが見つかりませんでした: http://10.10.10.10:5555/auth/demo-realm/clients/e286a05c-6641-49c3-bb7c-ffe5dd2d8c66/roles/ROLE_ADMIN/users" }
ここでエンドポイントを見つけました: https://www.keycloak.org/docs-api/11.0/rest-api/index.htmlの下"Return List of Users that have the specified role name"
。
たとえば、次のエンドポイントに到達できます。
http://10.10.10.10:5555/auth/realms/demo-realm/protocol/openid-connect/token
私は何を取りこぼしたか?これが機能しない理由は何ですか?
前もって感謝します。