1

これがすでに質問されているか、以前に議論されたかどうかはわかりません。

私のJenkinsでは、LDAP認証をセットアップしました。そのパスワードを使用して別のサーバーにリモートでログインし、そこでいくつかのタスクを実行するには、ジョブの1つでそのパスワードが必要です

リモート タスクが、ユーザー名パスワードを必要とする ant タスクで sshexec を介して実行されると仮定します。ユーザーがビルド パラメーターの形式でパスワードを再度入力することを望まないのですが、ビルド ジョブ内で Jenkins 認証に使用されるパスワードを取得する方法はありますか ???

4

2 に答える 2

3

[I] ビルド ジョブ内で Jenkins 認証に使用されるパスワードを取得する方法はありますか?

そうではありません。Jenkins は、ログイン後にパスワードを保持しません。認証される必要があることを確認するのに十分な時間、パスワードを LDAP サーバーに渡すだけです。

したがって、必要なのは、ビルド中に使用できる Jenkins に永続化された資格情報を定義することです。Credentials Binding プラグインを使用して、ジョブがアクセスできる固定のユーザー名/パスワードを設定できます。

資格情報をジョブのどのビルドにも使用できないようにする必要があるが、手動でビルドを開始するユーザーが資格情報を提供する必要がある場合 (つまり、スケジュールされたビルドまたはトリガーされたビルドは不可能であることを意味します)、これもサポートされていると思います。バージョン 1.1 以降。ジョブの資格情報タイプのパラメーターを定義し、バインディングで変数展開を介して使用します。次に、ユーザー構成ページでこれらのクレデンシャルをユーザーに定義してもらいます ( /me/configure)。次に、Build with Parametersを選択すると、自分の個人認証情報が表示され、選択できるようになります。ユーザーには、ジョブに対するCredentials/UseOwn権限が必要です。

将来の別のオプションは、パスワードをまったく保存しないユーザー名/パスワード資格情報のサブタイプであり (おそらく、jBCrypt を使用した単なる「ソルト」ハッシュ)、資格情報が有効であると見なされる前にパスワードの入力を求めるプロンプトが表示されます。 、おそらく数分後に期限切れになります。このモードは実装されていませんが、より厳しいセキュリティ要件を持つサイトに役立ちます。

(通常のクレデンシャルは暗号化されて保存されますが、デフォルトの安全なストレージ メカニズムではマスター暗号化キーが保持さ$JENKINS_HOMEれます。Jenkins 管理者ではない人にサーバーへのシェル アクセスを許可しない限り、もちろん安全です。マスター コンピューターのエグゼキューターがゼロになるように構成して、ユーザーがビルドを実行できないようにし、スレーブ上でのみマスター キーを挿入できるようにします。

于 2014-10-10T15:27:44.547 に答える
0

最善の方法は、リモート サーバーで jenkins ユーザーに許可を与えることです。

于 2014-10-10T15:15:21.673 に答える