2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Keycloakをお手軽に試したい(2)

Last updated at Posted at 2019-06-20

[Keycloakをお手軽に試したい(1)]
(https://qiita.com/suzanHud/items/65aba4b9ef9b2c9b1017)で、ユーザ登録を「add-user-keycloak.sh」で行いました。
「docker-entrypoint.sh」を見ると判りますが、
シェル変数か環境変数でKEYCLOAK_USERとKEYCLOAK_PASSWORDが定義されている場合、
「add-user-keycloak.sh」が実行されます。
起動を以下とします。

docker run -it -e "KEYCLOAK_USER=admin" -e "KEYCLOAK_PASSWORD=admin" -p 8080:8080 kazu:keycloak

これでユーザ登録は不要になります。「6.0.1」のjboss/keycloakと同じですね。
[サンプルアプリケーションでKeycloakのSSO動作を確認してみよう (1/3)]
(https://www.atmarkit.co.jp/ait/articles/1710/04/news008.html)からデモのURLを転載します。

アプリケーション URL
product-app http://localhost:8080/product-portal/
customer-app http://localhost:8080/customer-portal/
database-service http://localhost:8080/database/

6.0.1でQuickstarts

今までの作業で、大体の設定が分かってきた。
Dockerfileで書くと、こんな感じでしょうか。

from centos
RUN yum update -y && yum -y install xmlstarlet saxon augeas bsdtar unzip java-1.8.0-openjdk-devel git file which && yum clean all
RUN groupadd -r jboss -g 1000 && useradd -u 1000 -r -g jboss -m -d /opt/jboss -s /sbin/nologin -c "JBoss user" jboss && chmod 755 /opt/jboss
WORKDIR /opt/jboss
ENV KEYCLOAK_VERSION=6.0.1
COPY keycloak-$KEYCLOAK_VERSION.zip /opt/jboss
COPY keycloak-wildfly-adapter-dist-$KEYCLOAK_VERSION.zip /opt/jboss
COPY keycloak-saml-wildfly-adapter-dist-$KEYCLOAK_VERSION.zip /opt/jboss
ENV MAVEN_VERSION=3.3.9
USER root
RUN curl -fsSL https://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz | tar xzf - -C /usr/share && mv /usr/share/apache-maven-$MAVEN_VERSION /usr/share/maven && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
ENV MAVEN_HOME=/usr/share/maven
USER jboss
RUN cd /opt/jboss \
    && unzip keycloak-$KEYCLOAK_VERSION.zip \
    && git clone https://github.com/keycloak/keycloak-quickstarts.git
RUN cd /opt/jboss/keycloak-$KEYCLOAK_VERSION \
    && unzip -o ../keycloak-wildfly-adapter-dist-$KEYCLOAK_VERSION.zip \
    && unzip -o ../keycloak-saml-wildfly-adapter-dist-$KEYCLOAK_VERSION.zip
ENV JAVA_HOME=/usr/lib/jvm/java
ENV JBOSS_HOME=/opt/jboss/keycloak-$KEYCLOAK_VERSION
ENV LAUNCH_JBOSS_IN_BACKGROUND=1
RUN cp /opt/jboss/keycloak-quickstarts/service-jee-jaxrs/config/keycloak-example.json \
/opt/jboss/keycloak-quickstarts/service-jee-jaxrs/config/keycloak.json
RUN cp /opt/jboss/keycloak-quickstarts/app-profile-jee-html5/config/keycloak-example.json \
/opt/jboss/keycloak-quickstarts/app-profile-jee-html5/config/keycloak.json
RUN cp /opt/jboss/keycloak-quickstarts/app-profile-jee-jsp/config/keycloak-example.json \
/opt/jboss/keycloak-quickstarts/app-profile-jee-jsp/config/keycloak.json
RUN cp /opt/jboss/keycloak-quickstarts/app-profile-saml-jee-jsp/config/keycloak-saml-example.xml \
/opt/jboss/keycloak-quickstarts/app-profile-saml-jee-jsp/config/keycloak-saml.xml
RUN cp /opt/jboss/keycloak-quickstarts/app-jee-html5/config/keycloak-example.json \
/opt/jboss/keycloak-quickstarts/app-jee-html5/config/keycloak.json
RUN cp /opt/jboss/keycloak-quickstarts/app-jee-jsp/config/keycloak-example.json \
/opt/jboss/keycloak-quickstarts/app-jee-jsp/config/keycloak.json
RUN cp /opt/jboss/keycloak-quickstarts/app-angular2/config/keycloak-example.json \
/opt/jboss/keycloak-quickstarts/app-angular2/config/keycloak.json
RUN cp /opt/jboss/keycloak-quickstarts/app-authz-jee-servlet/config/keycloak-example.json \
/opt/jboss/keycloak-quickstarts/app-authz-jee-servlet/config/keycloak.json
RUN cp /opt/jboss/keycloak-quickstarts/app-authz-jee-vanilla/config/keycloak-example.json \
/opt/jboss/keycloak-quickstarts/app-authz-jee-vanilla/config/keycloak.json
RUN mvn package -f /opt/jboss/keycloak-quickstarts/pom.xml \
  && rm -rf ~/.m2/repository
RUN cd /opt/jboss/keycloak-quickstarts \
  && find -name *.war | grep -v ear | xargs -I {} cp {} /opt/jboss/keycloak-$KEYCLOAK_VERSION/standalone/deployments/ \
  && cp quickstart-realm.json /opt/jboss/keycloak-$KEYCLOAK_VERSION
# RUN /opt/jboss/keycloak-$KEYCLOAK_VERSION/bin/jboss-cli.sh -c --file=/opt/jboss/keycloak-$KEYCLOAK_VERSION/bin/adapter-install.cli
# RUN /opt/jboss/keycloak-$KEYCLOAK_VERSION/bin/jboss-cli.sh -c --file=/opt/jboss/keycloak-$KEYCLOAK_VERSION/bin/adapter-install-saml.cli
ADD docker-entrypoint.sh /opt/jboss/
EXPOSE 8080
ENTRYPOINT ["/opt/jboss/docker-entrypoint.sh"]
CMD ["-b","0.0.0.0","-Dkeycloak.import=/opt/jboss/keycloak-$KEYCLOAK_VERSION/quickstart-realm.json"]
CMD ["/bin/sh","-c","/bin/bash"]

cpがあるのはそのままでは mvn 実行時にエラーになるからです。みなさん困ってないのかな。adapterのインストールはコメントにしていますが、サーバ実行中に別Windowでexecし、またユーザも追加しました。再度standalone.shで立ち上げてみます(行間詰めています)。

[root@2d4dd25cb4f7 keycloak-6.0.1]# bin/standalone.sh -b 0.0.0.0 -Dkeycloak.import=/opt/jboss/keycloak-6.0.1/quickstart-realm.json
=========================================================================
  JBoss Bootstrap Environment
  JBOSS_HOME: /opt/jboss/keycloak-6.0.1
  JAVA: java
  JAVA_OPTS:  -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true
=========================================================================
02:16:06,727 INFO  [org.jboss.modules] (main) JBoss Modules version 1.9.0.Final
02:16:10,699 INFO  [org.jboss.msc] (main) JBoss MSC version 1.4.5.Final
02:16:10,778 INFO  [org.jboss.threads] (main) JBoss Threads version 2.3.3.Final
02:16:11,757 INFO  [org.jboss.as] (MSC service thread 1-1) WFLYSRV0049: Keycloak 6.0.1 (WildFly Core 8.0.0.Final) starting
  (省略)
02:18:00,732 INFO  [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0212: Resuming server
02:18:00,745 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://127.0.0.1:9990/management
02:18:00,749 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
02:18:00,751 ERROR [org.jboss.as] (Controller Boot Thread) WFLYSRV0026: Keycloak 6.0.1 (WildFly Core 8.0.0.Final) started (with errors) in 118430ms - Started 1330 of 1606 services (2 services failed or missing dependencies, 624 services are lazy, passive or on-demand)

2つサービスの起動でエラーになっています。ま、良しとしよう。

試してみる

Getting Started Guideを見ながら、vanillaのclientを登録し、standalone/configuration/standalone.xmlを更新、keycloakサーバを再起動する。 http://localhost:8080/vanilla
にアクセス、ログインボタンを押し、ログインする。

LOGOUT
You are logged in!
Principal	f9344940-0328-4758-8b41-482293310c14

と表示されました(^^)/

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?