0

を構成ファイルに追加しmatch-claimsても何も起こらないようです。実際、ゲートキーパーは、リソースを開くときに常に同じエラーをスローします (プロパティの有無にかかわらず)。

私のKeycloakサーバーはdockerコンテナー内にあり、内部ネットワークからはasとしてhttp://keycloak:8080アクセスでき、外部ネットワークからはasとしてアクセスできますhttp://localhost:8085

内部ネットワークの Keycloak サーバーに接続しているGatekeeperがあります。リクエストは外部からのものであるため、'iss'トークン クレームdiscovery-urlと一致しません。

ゲートキーパーはdiscovery-urlas 'iss'クレームを使用しようとしています。これをオーバーライドするために、match-claims次のようにプロパティを追加しています。

discovery-url: http://keycloak:8080/auth/realms/myRealm
match-claims:
  iss: http://localhost:8085/auth/realms/myRealm

ログは次のようになります。

始めるとき

keycloak-gatekeeper_1  | 1.5749342705316222e+09 info    token must contain
  {"claim": "iss", "value": "http://localhost:8085/auth/realms/myRealm"}

keycloak-gatekeeper_1  | 1.5749342705318246e+09 info    keycloak proxy service starting
  {"interface": ":3000"}

要求に応じて

keycloak-gatekeeper_1  | 1.5749328645243566e+09 error   access token failed verification
  { "client_ip": "172.22.0.1:38128",
    "error": "oidc: JWT claims invalid: invalid claim value: 'iss'.
           expected=http://keycloak:8080/auth/realms/myRealm,
           found=http://localhost:8085/auth/realms/myRealm."}

これは、403 Forbidden応答で終了します。


Keycloak-Gatekeeper 8.0.0および5.0.0で試しましたが、どちらも同じ問題です。

  1. これは、私が使用しようとしている方法で機能するはずですか?
  2. そうでない場合、何が欠けていますか? どうすればissを検証するか、この検証をバイパスできますか? (できれば前者)?
4

2 に答える 2