Digital Ocean Docker Dropletで https://hub.docker.com/r/jboss/keycloak/ を初期化しました。
$docker run -e KEYCLOAK_USER=admin -e -p 8080:8080 KEYCLOAK_PASSWORD={password with upcase etc.} jboss/keycloak
成功
すべてが正常に機能し、サーバーはポート8080のDroplets IPアドレスで起動しました。
URLのUIから管理コンソールに入ったときに問題が発生しました。 「HTTPS required」というメッセージがありました。これは本当の問題であり、私が見つけた唯一の解決策は、コンソールからKeycloakにログインし、UIなしで管理コンソールからHTTPS = requiredの設定を変更することです。
次に、Dockerコンテナのbashを開きました。
$docker exec -it keycloak bash
成功
Keycloak/binフォルダーにログインするコマンドを入力したとき:
cd keycloak/bin
keycloak/bin $./kcadm.sh config credentials --server http://<droplet IP>:8080/auth --realm master --user admin --password {password with upcase etc.}
bashがフリーズし、しばらくするとタイムアウトメッセージが表示されます
Bashからログインする理由は次のとおりです。
keycloak/bin $ ./kcadm.sh update realms/master -s sslRequired=NONE
。
これにより、必要なHTTPSの元の問題が解決されることが期待されます。
ポート8443(HTTPS)を公開し、8080(HTTP)の代わりに使用します。
docker run \
--name keycloak \
-e KEYCLOAK_USER=myadmin \
-e KEYCLOAK_PASSWORD=mypassword \
-p 8443:8443 \
jboss/keycloak
Keycloakは、このセットアップでhttpsの自己署名証明書を生成します。もちろん、これは生産セットアップではありません。
これは、開始点として https://hub.docker.com/r/jboss/keycloak/ を使用し、サービスプロバイダーとしてDigitalOceanを使用する場合、セキュリティなしで管理コンソールへのアクセスも許可するソリューションでした。
コンテナを開始:
$ docker run {containerName}
コンテナのbashを開きます:
$ docker exec -it {containerName} bash
へ引っ越す:
$ cd keycloak/bin
次を使用して新しい管理ユーザーを作成します。
$ ./add-user-keycloak.sh --server http://{IP}:8080/admin
--realm master --user admin --password newpassword
(多くの場所で提案されているadd-user.shではありません)
DigitalOceanなどでドロップレットを再起動して、シャットダウン前に作成されたアクティブ化された管理ユーザーに。ドロップレットログインを再起動した後:
$ ./kcadm.sh config credentials --server http://localhost:8080/auth
--realm master --user admin
レルムのssl設定の変更:
$ ./kcadm.sh update realms/master -s sslRequired=NONE
このソリューションではセキュリティは作成されませんが、管理コンソールにアクセスできます。
この後、次の作業を開始することをお勧めします。 https://www.keycloak.org/docs/latest/server_installation/index.html#setting-up-https-ssl
次の一連のコマンドは私のために働いた
ホストVMで:
docker run --name key -d -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin jboss/keycloak
docker exec -it key bash
コンテナ内:
cd keycloak/bin/
./kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin
Logging into http://localhost:8080/auth as user admin of realm master
Enter password: admin
./kcadm.sh update realms/master -s sslRequired=NONE
資格情報を設定しようとすると、bashのフリーズも発生しました。
--password
引数をconfig credentials
コマンドに追加すると、正常に実行されました。
./kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin --password {YOUR_PASSWORD_HERE}
引数を渡すセキュア/代替方法の例については、./kcadm.sh config credentials
を実行します。