1

WildFly にデプロイされた JAX-RS アプリケーションがあります。アプリケーションのエンドポイントは、Keycloak によって保護されますAccess Type: bearer-only。これは、WildFly バージョン 24 までは問題なく動作します。

WildFly 25 以降、Keycloak アダプターは非推奨になり、新しい Elytron サブシステムに移行する必要があります。この WildFly の問題https://issues.redhat.com/browse/WFLY-15485によると、OIDC アダプターはまだ動作する準備ができていませんbearer-only。ただし、Keycloak Wildfly アダプターを使用すればまだ可能であると述べられています。

また、最新の Keycloak ドキュメントGoogle グループのこのスレッドにも、これが記載されています。

そこで、この場所からアダプターをインストールし、インストール スクリプトを実行しました。

https://github.com/keycloak/keycloak/releases/download/16.1.1/keycloak-oidc-wildfly-adapter-16.1.1.zip

./bin/jboss-cli.sh --file=bin/adapter-elytron-install-offline.cli -Dserver.config=standalone-full.xml

アプリケーションをデプロイすると、次のエラー メッセージが表示されます。

java.lang.IllegalStateException: The required mechanism 'KEYCLOAK' is not available in mechanisms [BASIC, CLIENT_CERT, DIGEST, FORM] from the HttpAuthenticationFactory

設定

  • WildFly 26 (ジャカルタ EE 8)
  • キークローク 16.1.1

web.xml

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">

    <!-- Security configuration -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>admin-api</web-resource-name>
            <url-pattern>/administration/*</url-pattern>
            <url-pattern>/operations/*</url-pattern>
            <url-pattern>/applications/*</url-pattern>
            <url-pattern>/entities/*</url-pattern>
        </web-resource-collection>
    </security-constraint>

    <login-config>
        <auth-method>KEYCLOAK</auth-method>
        <realm-name>this is ignored currently</realm-name>
    </login-config>

    <security-role>
        <role-name>*</role-name>
    </security-role>

</web-app>
4

1 に答える 1