「ログインしたユーザーが何でもできる」とは、認証されていないユーザーがプロジェクトの詳細を表示したり、アーティファクトにアクセスしたりできるようにすることを意味する理由がわかりません...とにかく、ログインしたユーザーが何でも、ログインしていないユーザーのためにすべてを非表示にします。助けてください?
4 に答える
これは、Role-Strategyプラグインを使用して実行できます。
プラグインをインストールし、「匿名」という新しいグループを追加して、すべてのチェックを外します。次に、「認証済み」という別のグループを追加して、すべてをチェックします。このグループに既存のユーザーを追加します。Jenkinsは、この方法でログインを求めるプロンプトをすぐに表示します。
https://wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Pluginを使用できます
ロールを定義してユーザーにロールを割り当てるように指定できます。ロールを持たないユーザーには、jenkinsUIも表示されません。
古い質問に答えますが、DockerでJenkinsインスタンスを自動起動しようとして同じ問題が見つかったため、ここで検索しました。
質問されたときにこのオプションが利用できなかった可能性があります。現時点では(v2.222.3ですが、どれくらい前かはわかりません)、追加のプラグインをインストールしなくてもこれを実行できることがわかりました。
手動で
グローバルセキュリティに移動します(Jenkins> Jenkinsの管理>グローバルセキュリティ)
[認証]セクションを[ログインしたユーザーは何でもできる]に更新します。
チェックを外す 匿名の読み取りアクセスを許可する
認証されていないアクセスは、今すぐログインにリダイレクトされます。
セットアップウィザードを使用してJenkinsをセットアップすると、匿名の読み取りアクセスがデフォルトで無効になっていることに注意してください。この動作が必要で、jenkinsを自動的に構成する場合は、このまま読み進めてください。
Dockerで自動化
私の状況では、リポジトリをチェックアウトし、作成ファイルを実行して、すべてのconfig / users/pluginsなどを準備したいと思っていました。興味があれば、ここに詳細を投稿してください。
一言で言えば:
Dockerfile
FROM jenkins/jenkins:lts-alpine
# Disable setup wizard since security.groovy creates our user
ENV JAVA_OPTS="-Djenkins.install.runSetupWizard=false"
COPY security.groovy /usr/share/jenkins/ref/init.groovy.d/security.groovy
security.groovy
#!groovy
import jenkins.model.*
import hudson.security.*
def instance = Jenkins.getInstance()
// Create Admin User
def hudsonRealm = new HudsonPrivateSecurityRealm(false)
hudsonRealm.createAccount("admin", "admin") // Dont do this. This is bad
instance.setSecurityRealm(hudsonRealm)
// Set Auth to Full Control Once Logged In and prevent read-only access
def strategy = new FullControlOnceLoggedInAuthorizationStrategy()
strategy.setAllowAnonymousRead(false)
instance.setAuthorizationStrategy(strategy)
instance.save()
特に、strategy.setAllowAnonymousRead(false)
必要なのは
さらに、バージョン管理システムとしてGitHubを使用している場合は、GitHubOAuthプラグインを使用できます。「匿名」がページに到達すると、GitHubに自動的にリダイレクトされます。