Đối với khách hàng của chúng tôi, một công ty lớn của Bỉ có chi nhánh ở Hoa Kỳ và Trung Quốc, chúng tôi đề nghị tích hợp Azure Active Directory với Redmine. Chúng tôi nghĩ: "Redmine có hỗ trợ gốc của LDAP, vì vậy đây không phải là vấn đề." Mỗi khi bạn nói "đây không phải là vấn đề", bạn đang được thưởng thức.
Sản phẩm Azure Active Directory tương đối mới đối với khách hàng của chúng tôi vào thời điểm đó. Gần đây, họ chỉ mới đồng bộ hóa người dùng của mình với Azure Active Directory (AAD) bằng ADConnect, vì vậy họ nghĩ đến việc sử dụng cơ sở dữ liệu người dùng Azure cho một lần đăng nhập (SSO) trong Redmine. Giải pháp thay thế là tạo một cơ sở dữ liệu người dùng Redmine cục bộ trùng lặp, điều này có vẻ quá xa vời. Vì khách hàng của chúng tôi đã quen thuộc với các công nghệ của Microsoft, điều đầu tiên tôi nghĩ đến là LDAP.
Họ cho rằng việc kích hoạt LDAP trong thư mục Azure chỉ là chuyển một công tắc. Ai biết nó không phải. Để làm cho LDAP hoạt động trong Azure, khách hàng của chúng tôi cần thiết lập thêm Dịch vụ Azure Active Directory. Để làm cho một câu chuyện dài trở nên ngắn gọn: hóa ra lại quá phức tạp và tốn kém.
Trong quá trình này, khách hàng của chúng tôi phát hiện ra rằng Azure hỗ trợ oAuth và Saml, các giao thức mới hơn để xác thực người dùng. Những giao thức này dường như nằm sau "nút đăng nhập" mà mọi người đều quen thuộc: đăng nhập bằng Google và đăng nhập bằng Facebook.
May mắn thay, có một plugin tên là redmine_ mất ngủ_azure đó là thủ thuật. Chúng tôi đã cài đặt nó trong Redmine của mình mà không gặp vấn đề gì. Tất cả những gì khách hàng của chúng tôi phải làm về cài đặt là làm theo hướng dẫn tại https://github.com/Gucin/redmine_omniauth_azure. Khách hàng của chúng tôi cũng phải đăng ký một ứng dụng theo hướng dẫn tại https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app và thêm một URL chuyển hướng. URL chuyển hướng là nơi người dùng đến sau khi đăng nhập vào Azure. Trong trường hợp của chúng tôi, đó là URL Redmine cơ sở https://client.redmine-x.com.
Trong plugin Redmine, chúng tôi cần thiết lập các trường sau mà chúng tôi nhận được từ khách hàng của mình.
ID khách hàng:
Bí mật khách hàng:
ID người thuê:
Để hoàn tất thiết lập, chúng tôi cần có thể kiểm tra xác thực. Đó là lý do tại sao chúng tôi yêu cầu một người dùng thử nghiệm trong thư mục Azure. Khi đăng nhập lần đầu tiên, chúng tôi cần thêm kiểm tra MFA (Xác thực đa yếu tố) vào tài khoản thử nghiệm, vì vậy chúng tôi đã sử dụng https://www.office.com cho lần đăng nhập đầu tiên.
Sau đó, chúng tôi vẫn gặp lỗi sau khi đăng nhập bằng cách sử dụng Azure Active Directory. Để giải quyết vấn đề này, chúng tôi đã mất một khoảng thời gian đáng kể và chúng tôi sẽ sẵn lòng trợ giúp bạn trong quá trình tích hợp.
Vì vậy, dòng chảy là:
- Người dùng nhấp vào nút "Đăng nhập qua Azure"
- Sau đó, họ được chuyển hướng đến Azure nơi họ đăng nhập bằng thông tin đăng nhập Azure của họ
- Họ được chuyển hướng trở lại Redmine và tự động đăng nhập
- Nếu Redmine được đặt chính xác, tất cả người dùng sẽ nhận được thông báo "Tài khoản của bạn đã được tạo và hiện đang chờ quản trị viên phê duyệt."
Tích hợp Azure vào Redmine một cách mượt mà với Michael từ RedmineX
Liên hệCảnh báo: nếu người dùng cố gắng đăng nhập lại, anh ta sẽ gặp lỗi nội bộ vì Redmine không thể hiển thị thông báo lỗi do con người hướng tới. Chúng tôi biết cách giải quyết chuyện này và sẽ rất vui được giúp đỡ bạn.
Một vài nhận xét cuối cùng:
- Mọi thứ đã được thiết lập cho một URL Redmine cụ thể. Nếu bạn cần thay đổi URL trong tương lai, bạn sẽ cần phải kiểm tra điều này và thay đổi tất cả các URL trong Azure
- Bạn cần thiết lập thông báo. Các cài đặt đều có trong Redmine
https://client.redmine-x.com/settings?tab=notifications
và trên máy chủ trong tệp config.yml trong /config. Các địa chỉ email phải trùng khớp.
Vì vậy, đây là trải nghiệm Azure của chúng tôi. Nếu bạn cần bất cứ điều gì tương tự, chúng tôi sẵn sàng giúp bạn.
Bạn có muốn trải nghiệm Redmine MỚI & Tăng năng suất của mình không?
Nhận bản demo MIỄN PHÍChia sẻ cái này nếu bạn thích nó!
Hãy nhìn vào chúng tôi Kênh Youtube.