Trong thời đại công nghệ đám mây phát triển nhanh chóng, trong đó Cơ sở hạ tầng dưới dạng Dịch vụ (IaaS) và Nền tảng dưới dạng Dịch vụ (PaaS) không thể thiếu trong nhiều dự án, nhu cầu tích hợp liền mạch các dịch vụ đám mây đa dạng là không thể phủ nhận. Microsoft, một công ty lớn trong lĩnh vực này, đã đầu tư thời gian đáng kể vào việc tạo ra dịch vụ Microsoft Entra ID thân thiện với người dùng. Tuy nhiên, bất chấp những hướng dẫn tỉ mỉ từ nhà cung cấp, các chuyên gia vẫn thường gặp phải vấn đề khi định cấu hình tích hợp với các nền tảng như Slack, Salesforce hoặc Datadog. Tài liệu không cung cấp câu trả lời cho các câu hỏi cụ thể.
Nhóm Nhóm Khám phá Xã hội cũng phải đối mặt với những thách thức này và trong bài viết này, chúng tôi sẽ cung cấp thông tin chi tiết về cách điều hướng và giải quyết chúng.
Trong danh mục hơn 50 nền tảng hẹn hò của mình, Social Discovery Group sử dụng nhiều công nghệ và dịch vụ đám mây khác nhau để đảm bảo tính bảo mật và độ tin cậy của chúng. Chúng tôi có nhiều kinh nghiệm trong việc tích hợp và định cấu hình các hệ thống khác nhau, bao gồm các kết nối ngang hàng giữa các đám mây khác nhau.
Microsoft Entra ID là giải pháp đám mây để quản lý danh tính và quyền truy cập, đóng vai trò là dịch vụ thư mục và xác thực hoạt động trên đám mây. Microsoft Entra ID cung cấp dịch vụ xác thực và ủy quyền cho nhiều dịch vụ khác nhau của Microsoft và không phải của Microsoft. Trong bài viết này, chúng ta sẽ khám phá sự tích hợp của các hệ thống đám mây sau: Slack, MongoAtlas, ElasticCloud, Salesforce và Datadog.
Do không có hướng dẫn chính xác, chúng tôi quyết định tạo hướng dẫn của riêng mình, trình bày chi tiết tất cả những vấn đề đau đầu nảy sinh trong quá trình thực hiện. Vì vậy, hãy điều hướng đến phần "Ứng dụng doanh nghiệp" trong Azure.
Cần phải tạo một ứng dụng công ty mới (việc này có thể được thực hiện chỉ bằng vài cú nhấp chuột). Tiếp theo, truy cập ứng dụng chúng tôi vừa tạo và định cấu hình Đăng nhập một lần – SAML. Thực hiện thay đổi từ trên xuống dưới:
Tạo vai trò "Thành viên" (hoặc chọn tên khác). Tiếp theo, tạo người dùng thử nghiệm trong Microsoft Entra ID và thêm họ vào ứng dụng của chúng tôi. Sau đó, đi tới Trung tâm quản trị trong Slack. Thực hiện theo các bước: Quản trị viên Slack - Xác thực - Cấu hình SAML - Định cấu hình
Bước tiếp theo là định cấu hình SAML. Chúng tôi khuyên bạn nên chú ý đến cài đặt "Tên hiển thị". Hơn nữa, trong cài đặt, bỏ chọn "Cập nhật hồ sơ khi đăng nhập", không cho phép thay đổi địa chỉ email và Tên hiển thị.
Ngoài ra còn có tùy chọn tùy chỉnh văn bản trên nút đăng nhập và cấm người dùng đăng nhập bằng bất kỳ phương thức nào khác ngoại trừ SSO. Sau này, bạn sẽ có thể đăng nhập vào Slack bằng tài khoản Microsoft của mình. Nếu cần bất kỳ trường hoặc cài đặt bổ sung nào, việc này có thể được thực hiện thông qua Cung cấp Azure AD.
Để thêm thuộc tính mới, hãy chuyển đến Thuộc tính người dùng và chọn Thêm bản đồ mới. Chọn thuộc tính nguồn mong muốn mà bạn muốn hiển thị trong Slack và liên kết nó với thuộc tính Slack tương ứng.
Sau khi thêm các thuộc tính cần thiết và lưu cài đặt, hãy tiến hành Cung cấp theo yêu cầu để kiểm tra chức năng. Khi có kết quả tích cực, bạn sẽ nhận được những điều sau:
Tiếp theo, bạn cần truy cập Slack và chỉ định những thuộc tính nào sẽ hiển thị trong hồ sơ người dùng hoàn chỉnh và nơi lấy chúng. Đi tới Hồ sơ và chọn thông tin sẽ được hiển thị cũng như nơi thông tin sẽ được lấy từ đó. Trong trường hợp này, SCIM tương ứng với Azure AD.
Tiếp theo, chúng tôi khuyên bạn nên thêm những người dùng cần thiết từ Active Directory vào Slack để trải nghiệm quá trình tích hợp liền mạch. Chúng tôi cũng muốn lưu ý đến một vấn đề gặp phải khi xóa người dùng: nếu người dùng bị xóa thủ công khỏi Slack (thông qua trung tâm quản trị Slack), lỗi sẽ vẫn tồn tại, cho biết rằng người dùng không thể được chuyển sang Slack do không đủ quyền. Điều này xảy ra do Entra ID giữ lại thông tin về người dùng trong phạm vi và gán cho họ một ID duy nhất. Việc xóa và thêm lại người dùng trong Slack được Entra ID coi là người dùng mới, dẫn đến các vấn đề về quyền trong quá trình cập nhật.
Kiểm tra tài liệu ở đây .
Đối với MongoAtlas, quá trình này đi theo một lộ trình tương tự. Bạn cũng sẽ cần tạo một ứng dụng công ty mới; để dễ dàng, hãy nhập "MongoDB Atlas — SSO" vào trường tìm kiếm. Hướng dẫn chi tiết hơn có thể được tìm thấy ở đây.
Tiếp theo, tiến hành cài đặt Đăng nhập một lần, tại đây bạn sẽ cần nhập thông tin sau:
Trong trường văn bản "Mã định danh", hãy nhập URL bằng mẫu sau: https://www.okta.com/saml2/service-provider/<Customer_Unique>
Trong trường văn bản "URL phản hồi", hãy nhập URL bằng mẫu:
https://auth.mongodb.com/sso/saml2/<Customer_Unique>
Trong trường văn bản "URL đăng nhập", hãy nhập URL bằng mẫu: https://cloud.mongodb.com/sso/<Customer_Unique>
Chúng tôi khuyên bạn nên chú ý đến phần Thuộc tính và định cấu hình nó như trong ảnh chụp màn hình bên dưới (điều cần thiết là phải thêm "memberOf").
Tiếp theo, trên trang "Thiết lập đăng nhập một lần bằng SAML", hãy đi tới phần "Chứng chỉ ký SAML" và tìm siêu dữ liệu XML cho liên kết. Chọn "Tải xuống" để tải xuống chứng chỉ và lưu chứng chỉ cục bộ (XML siêu dữ liệu liên kết). Chúng ta sẽ cần nó sau trong MongoDB Atlas.
Trong phần "Thiết lập MongoDB Atlas — SSO", hãy sao chép các URL tương ứng. Tiếp theo, điều hướng đến MongoDB Atlas -> Tổ chức -> Cài đặt -> Cài đặt xác thực liên kết .
Bắt đầu bằng cách thêm nhà cung cấp thông tin xác thực Microsoft Entra ID vào Atlas. Nhập các URL tương ứng được đề cập ở bước trước từ cổng Microsoft (URI nhà phát hành, URL đăng nhập, URL đăng nhập một lần) , tải lên Chứng chỉ chữ ký nhà cung cấp danh tính và định cấu hình các cài đặt còn lại như hiển thị trong ảnh chụp màn hình bên dưới .
Nhấp vào "Tiếp theo" và lưu tệp siêu dữ liệu cục bộ vì bạn sẽ cần tải tệp siêu dữ liệu này lên sau trong Azure trên trang cấu hình Đăng nhập một lần.
Tiếp theo, thêm, ánh xạ và xác thực miền, chẳng hạn như sử dụng bản ghi TXT tương ứng được tạo trong MongoDB Atlas. Sau đó, liên kết miền của bạn với nhà cung cấp thông tin xác thực và chuyển sang phần thú vị nhất: cấu hình vai trò.
Chúng tôi đã tạo các vai trò sau làm ví dụ, mỗi vai trò có các quyền cụ thể được cấp cho dự án. Sau đó, bạn cần ánh xạ các vai trò này tới các vai trò Azure. Đi tới "Vai trò ứng dụng" cho ứng dụng của bạn, tạo và thêm vai trò có giá trị khớp chính xác với tên bạn vừa gán cho các vai trò này trong MongoAtlas.
Sau đó, thêm người dùng vào ứng dụng trong Ứng dụng Microsoft Entra ID Enterprise và gán cho họ các vai trò thích hợp. Kích hoạt "Đăng nhập bằng Azure SSO" trong phần Quản lý liên kết trong MongoDB Atlas và xác minh hoạt động chính xác của cài đặt đã định cấu hình.
Tham khảo tài liệu tại đây để được hướng dẫn chi tiết hơn.
Hãy chuyển sang phần tích hợp với Elastic Cloud. Các bước cơ bản để tạo ứng dụng trong Enterprise Application Entra ID tương tự như các bước trước. Ở đó, bạn có thể tìm thấy thông tin về nơi lấy URL nhận dạng hoặc URL đăng xuất. Tuy nhiên, chúng tôi gặp phải sự cố với các thuộc tính nên chúng tôi sẽ cung cấp ảnh chụp màn hình về cấu hình hoạt động của chúng tôi.
Chúng tôi đã tạo hai vai trò - người đọc và siêu người dùng.
Tại đây, bạn có thể tạo bao nhiêu vai trò tùy thích. Cài đặt vai trò trong Elaticsearch được định cấu hình trong Ánh xạ vai trò và trông như sau:
Bây giờ đến phần thú vị. Hai việc cần phải làm: thêm cấu hình Azure SSO cho Kibana và Elaticsearch. Để đạt được điều này, hãy làm theo các bước sau:
Điều hướng đến phần chỉnh sửa trong quá trình triển khai Elaticsearch Cloud của bạn để cập nhật cấu hình elasticsearch.yml. Thêm các dòng sau:
“ xpack:
security:
authc:
realms:
saml:
saml-azure-ad:
order: 2
attributes.principal: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"
attributes.groups: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/role"
attributes.name: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname"
attributes.mail: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
idp.metadata.path: "APP Federation metadata URL"
idp.entity_id: "Azure Entra ID Identifier"
sp.entity_id: "Kibana endpoint"
sp.acs: "Kibana endpoint/api/security/v1/saml"
sp.logout: "Kibana endpoint/logout" “
Sau khi thêm và sửa đổi các giá trị được đánh dấu màu đỏ để phù hợp với cấu hình của bạn, hãy nhấp vào "Lưu". Elastic Cloud sẽ xác thực tất cả các thay đổi và bắt đầu cập nhật cụm. Quá trình này có thể mất một vài phút.
“ xpack.security.authc.providers:
saml.saml1:
order: 0
realm: saml-azure-ad
description: "Log in with Azure Entra ID"
basic.basic1:
order: 1 ”
Sau khi hoàn thành hai bước trước, một tùy chọn đăng nhập khác sẽ có sẵn trên trang đăng nhập Kibana của bạn. Tiếp theo, tiến hành thêm người dùng vào ứng dụng trong Ứng dụng Microsoft Entra ID Enterprise và chỉ định cho họ những vai trò cần thiết.
Tham khảo tài liệu ở đây để biết thêm thông tin.
Việc tích hợp với Salesforce phức tạp hơn một chút so với những lần trước. Các bước ban đầu cũng tương tự nhưng cần chú ý đến phần Cung cấp. Có nhiều sắc thái liên quan đến việc chỉ định thông tin xác thực của quản trị viên mà theo đó quá trình đồng bộ hóa tài khoản sẽ diễn ra và việc bật Ánh xạ thuộc tính là cần thiết.
Dưới đây là ví dụ về cài đặt cấu hình của chúng tôi trong ảnh chụp màn hình. Chúng tôi không gặp phải bất kỳ vấn đề nghiêm trọng nào với các thuộc tính nhưng chúng tôi cũng sẽ cung cấp ảnh chụp màn hình về những thuộc tính chúng tôi đã sử dụng.
Bản thân trong Salesforce, không có bất kỳ sắc thái cụ thể nào và chúng tôi đã tiến hành các bước sau như được nêu trong hướng dẫn này.
Trong quá trình tích hợp với Datadog, chúng tôi cũng gặp phải một số vấn đề. Bạn có thể tìm thấy tài liệu chính hướng dẫn chúng tôi tại đây . Để biết các sắc thái khắc phục sự cố, chúng tôi đã tham khảo hướng dẫn này .
Mọi việc bắt đầu suôn sẻ và ban đầu tưởng chừng như không có vấn đề gì. Như thường lệ, chúng tôi đã tạo Ứng dụng doanh nghiệp mới trong Microsoft Entra ID.
Trong phần "Thiết lập đăng nhập một lần bằng SAML", hãy chú ý đến vị trí bạn đã chọn cho tài khoản Datadog của mình. Trong trường hợp của chúng tôi, đó là khu vực Châu Âu.
Như đã đề cập trước đó, đối với MongoAtlasDB, chúng tôi thêm thuộc tính bổ sung "memberOf" để ánh xạ vai trò.
Lưu tất cả các cài đặt và tải xuống XML siêu dữ liệu liên kết. Tải tệp này lên cài đặt SAML trong Datadog. Đây là một liên kết thuận tiện để tham khảo. Cài đặt SAML của Datadog (thay thế "EU" bằng vùng miền thích hợp nếu vị trí của bạn khác). Nó sẽ trông giống như ảnh chụp màn hình bên dưới.
Trong cài đặt Phương thức đăng nhập của tổ chức, chỉ giữ lại những gì cần thiết (trong trường hợp của tôi, tôi đã tắt tính năng đăng nhập bằng mật khẩu và Xác thực Google). Thêm vai trò trong Azure khi đăng ký ứng dụng cho Microsoft Entra ID.
Đây là phần thú vị nhất. Điều hướng đến Ánh xạ nhóm SAML -> Ánh xạ vai trò trong Datadog và thêm khóa, giá trị và vai trò. Nó có vẻ đơn giản. Xem ảnh chụp màn hình bên dưới.
Nhưng nó không hoạt động và liên tục báo lỗi "Không có AuthNMappings cho người dùng này".
Trong một thời gian dài, chúng tôi đã cố gắng tìm hiểu xem mình đã làm gì sai, xem xét tất cả tài liệu, nhật ký và các trang khắc phục sự cố. Thật không may, không có đề cập đến điều này ở bất cứ đâu. Cuối cùng, giải pháp rất đơn giản: hãy làm theo cấu hình hiển thị trong ảnh chụp màn hình bên dưới.
Trong trường KEY, nhập chuỗi: http://schemas.microsoft.com/ws/2008/06/identity/claims/role
Sau khi làm điều này, mọi thứ bắt đầu hoạt động thành công.
"Đây chỉ là một phần nhỏ trong các hệ thống mà chúng tôi đã tích hợp với Microsoft Entra ID. Chúng tôi hy vọng rằng những hiểu biết sâu sắc được chia sẻ ở đây sẽ đóng vai trò là tài nguyên hữu ích, hợp lý hóa quy trình tích hợp của bạn và tiết kiệm thời gian quý báu. Tóm lại, những lợi ích sau đây khi sử dụng Microsoft ID Entra có thể được làm nổi bật: Đăng nhập một lần, không yêu cầu nhập mật khẩu nhiều lần; không yêu cầu thành phần bổ sung; dễ cấu hình và quản trị; chính sách nhóm và nhóm; đăng ký thiết bị; và bảo mật cấp cao.