web-dev-qa-db-ja.com

Keycloak Docker HTTPSが必要です

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の元の問題が解決されることが期待されます。

9
user6947621

ポート8443(HTTPS)を公開し、8080(HTTP)の代わりに使用します。

docker run \
  --name keycloak \
  -e KEYCLOAK_USER=myadmin \
  -e KEYCLOAK_PASSWORD=mypassword \
  -p 8443:8443 \
  jboss/keycloak

Keycloakは、このセットアップでhttpsの自己署名証明書を生成します。もちろん、これは生産セットアップではありません。

17
Jan Garaj

これは、開始点として 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

9
user6947621

次の一連のコマンドは私のために働いた

ホスト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
3
rok

資格情報を設定しようとすると、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を実行します。

1
Jrodseth