2011-11-30 23 views
48

Có cách nào để hạn chế người dùng chỉ xem một số công việc nhất định trong Jenkins hay không.Jenkins hạn chế giao diện công việc trên mỗi người dùng

Jenkins cho phép hạn chế khả năng của người dùng cho mỗi dự án thông qua "Chiến lược ủy quyền ma trận dựa trên dự án". Vấn đề là người dùng không thể truy cập vào bất cứ thứ gì không có cài đặt 'Nhìn chung' 'Đọc'. Điều này dường như cho phép họ xem tất cả các công việc.

Có plugin nào khác cho phép giới hạn công việc không?

Trả lời

42

Nghĩ đây là, những gì bạn đang tìm kiếm: Allow access to specific projects for Users

mô tả ngắn mà không ảnh chụp màn hình:
Sử dụng Jenkins "Matrix Authorization Chiến lược dự án dựa trên" trong mục "Quản lý Jenkins" => "Cấu hình hệ thống". Trên trang cấu hình của từng dự án, bây giờ bạn có "Bật bảo mật dựa trên dự án". Bây giờ, hãy thêm từng người dùng bạn muốn cho phép.

+1

Có vẻ như bạn vẫn cần phải mở cài đặt Đọc tổng thể như OP đề xuất. Tôi đã thử tất cả mọi thứ và không thể có được các thiết lập bảo mật dựa trên dự án để làm bất cứ điều gì mà không cần kiểm tra đọc tổng thể. Có thể là tôi đang sử dụng LDAP, nhưng nó hoạt động tốt ở cấp độ toàn cầu. – quickshiftin

+1

Bạn phải kiểm tra Đọc tổng thể, nhưng sau đó về dự án bạn đang bảo mật, chỉ cần đảm bảo kiểm tra "Không kế thừa quyền toàn cầu". Bằng cách đó, người dùng bạn không muốn xem dự án sẽ không nhìn thấy nó. – metaforge

0

Thử truy cập "Quản lý Jenkins" -> "Quản lý người dùng" đi tới người dùng cụ thể, chỉnh sửa cấu hình chế độ xem mặc định "Chế độ xem của tôi" của họ.

+6

Điều này chỉ ẩn công việc của người dùng, nó không ngăn cản truy cập vào nó. – stwalkerster

7

Bạn có thể sử dụng Chiến lược xác thực ma trận dựa trên dự án và bật quyền Đọc tổng thể, nhưng vô hiệu hóa Công việc đọc ở cấp hệ thống. Sau đó, bạn nên bật Công việc đọc cho từng dự án cụ thể mà bạn muốn hiển thị cho người dùng hiện tại. Vui lòng tham khảo this resolved issue để biết thêm thông tin. Một số thông tin từ đó:

Tôi đang triển khai quyền READ ở cấp công việc. Khi điều này được thực hiện, người dùng thiếu quyền READ cho một công việc cụ thể sẽ không: xem công việc đó trong bất kỳ chế độ xem nào, có thể truy cập trực tiếp vào trang công việc, xem bất kỳ tham chiếu nào đến công việc (ví dụ ở thượng nguồn hoặc hạ lưu phụ thuộc)

Ngoài ra, tôi khuyên bạn nên tiếp tục và xem Role Strategy Plugin. Nó có thể đơn giản hóa việc quản lý người dùng/vai trò, bạn có thể sử dụng mô tả ở trên để cấp quyền truy cập vào các công việc nhất định.

0

Bạn có thể cài đặt plugin "Giấy phép đọc mở rộng". Sau đó, trong "Cài đặt chung" hoặc trong cấu hình công việc riêng lẻ, bạn có thể cấp cho người dùng quyền "Đọc mở rộng".

2

Tôi sử dụng kết hợp nhiều plugin - để gán vai trò cơ bản và quyền tôi sử dụng Plugin chiến lược vai trò.

Khi tôi cần chia nhỏ vai trò tùy thuộc vào tham số (ví dụ: mọi người có job-runner có thể chạy công việc, nhưng UUU người dùng chỉ được phép chạy công việc triển khai để triển khai trên máy MMM), tôi sử dụng Python Plugin và xác định tập lệnh python như bước xây dựng đầu tiên và kết thúc bằng sys.exit (-1) khi lệnh cấm bị cấm với sự kết hợp các thông số đã cho.

Xây dựng plugin của người dùng Vars cung cấp cho tôi thông tin về người dùng thực hiện công việc dưới dạng biến môi trường.

E.g:

import os 
import sys 

print os.environ["BUILD_USER"], "deploying to", os.environ["target_host"] 

# only some users are allowed to deploy to servers "MMM" 
mmm_users = ["UUU"] 

if os.environ["target_host"] != "MMM" or os.environ["BUILD_USER"] in mmm_users: 
    print "access granted" 
else: 
    print "access denied" 
    sys.exit(-1) 
7

Chỉ một plugin giúp tôi: Role-Based Strategy:

wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin

Nhưng chính thức tài liệu (wiki.jenkins-ci.org/display/JENKINS/Role+Strategy + Plugin) là người nghèo.

Đây là ví dụ thực tế của một tài liệu tuyệt vời:

kblearningacademy.com/configure-role-strategy-plugin-in-jenkins

tôi chuyển đổi trang này để pdf trong trường hợp dừng làm việc:

kblearningacademy_com_jenkins_Role+Strategy+Plugin

Tôi hy vọng điều này sẽ giúp một ai đó.

+0

Đây là chìa khóa trong tài liệu - 'Bước 9. Thêm Vai trò Dự án dựa trên từng dự án.' –

0

Như đã đề cập ở trên bởi Vadim Sử dụng Jenkins "Chiến lược ủy quyền ma trận dựa trên dự án" dưới "Quản lý Jenkins" => "Định cấu hình hệ thống". Đừng quên thêm người dùng quản trị của bạn ở đó và cấp mọi quyền. Bây giờ thêm người dùng bị giới hạn ở đó và cấp quyền truy cập đọc tổng thể. Sau đó đi đến trang cấu hình của từng dự án, bây giờ bạn có tùy chọn "Bật bảo mật dựa trên dự án". Bây giờ, hãy thêm từng người dùng bạn muốn cho phép.

Các vấn đề liên quan