
私は Keycloak サーバーをセットアップし、それを Linux サーバーと統合して、Keycloak のユーザーが Keycloak 資格情報を使用して Linux サーバーに認証できるようにすることに取り組んでいます。
ssh server-name@server-ip
理想的には、ユーザーがコマンドを実行すると、Keycloak ログイン ページが開き、資格情報を入力してシステムにアクセスできるようになります。
調査の結果、Linux サーバーと Keycloak の統合を構成する方法として PAM を検討することにしました。kc-ssh-pam バイナリをインストールし、/etc/pam.d/sshd ディレクトリに次の行を追加しました。
auth sufficient pam_exec.so expose_authtok log=/var/log/kc-ssh-pam.log /opt/kc-ssh-pam/kc-ssh-pam
その後、私は設定.toml以下に示すように、Keycloak 構成をファイルに記述し、実行してsudo systemctl restart sshd
ssh デーモンを再起動しました。ただし、ssh server-name@server-ip コマンドを実行しても期待どおりの結果が得られません。
realm = "realm_name"
endpoint = "https://keycloak_server_url"
clientid = "ssh_client_id"
clientsecret = "ssh_client_secret"
clientscop = "openid"
これは理想的な使用例でしょうか? これを実現するためのリソースが限られているため、これを実現するのに役立つ手順や推奨ガイドがあれば教えていただければ幸いです。
答え1
ユーザー ログイン用の Keycloak ページは開きません。ユーザーの資格情報に基づいて Keycloak からパスワード付与トークンを取得します。
ssh を実行する場合server-name@server-ip
、ユーザーはserver-ip
事前にパスワードの有無にかかわらずマシン上に存在している必要があります。このモジュールはユーザーを自動的には作成しません。ただし、手順には、初めてログインするときにユーザーを自動的に作成するために使用できるスクリプトが記載されています。