2015-05-28 23 views
7

Tôi có một ứng dụng web Azure đang quản lý người dùng đó thông qua Azure AD. Tôi muốn người dùng có thể đăng ký vào thư mục Azure AD của tôi để tạo tài khoản (tự phục vụ), vì vậy tôi đã cấp cho ứng dụng quyền truy cập đọc-ghi vào thư mục và thiết lập trang bằng API Graph để tạo người dùng.Các quyền đa nhiệm của Azure AD

Cho đến đây, mọi thứ đều tuyệt vời. Nhưng vấn đề tôi có bây giờ là tôi muốn kích hoạt tính năng thuê nhiều, vì vậy người dùng các thư mục AD bên ngoài có thể đăng nhập vào ứng dụng của tôi. Tác vụ này, nhưng tôi cần phải đăng nhập với tư cách là quản trị viên cho tài khoản vì nó cũng yêu cầu quyền truy cập đọc-ghi vào thư mục của họ.

Có cách nào để sửa lỗi này không? Tôi chỉ muốn truy cập đọc-ghi vào thư mục của mình để có thể tạo tài khoản người dùng. Tôi không muốn xin phép chạm vào thư mục của họ bởi vì, có lẽ, họ sẽ không tin tưởng ứng dụng của tôi.

Cảm ơn.

+0

Câu trả lời ngắn gọn là không, bạn không thể. Azure có cách tích hợp AD 1 với AD 2, nhưng đó là với 2 miền cụ thể, không phải với "mọi thứ ngoài đó". Tuy nhiên, bạn có thể sử dụng một AD khác làm trình xác thực bên thứ 3 và vẫn tạo người dùng cục bộ mà bạn có quản trị viên. –

Trả lời

2

Tôi đã tìm thấy giải pháp nhanh chóng và bẩn: Thêm ứng dụng khác vào Thư mục hoạt động. Ứng dụng này phải là người thuê nhà duy nhất và chỉ có quyền đọc và viết thư mục hoạt động. Chúng tôi có thể sử dụng thông tin đăng nhập của ứng dụng này để truy cập API đồ thị và thông tin xác thực của ứng dụng khác để xác thực người dùng.

Tôi chờ xem liệu ai đó có giải pháp tốt hơn cho trường hợp này hay không ...

+2

Đó thực sự là cách duy nhất. Bạn đang tôn trọng Azure AD khác nhưng tạo một "người dùng" cục bộ trong "không gian" của riêng bạn mà bạn có thể "quản lý". Nó không thực sự là một giải pháp bẩn. Đó là quy trình làm việc được thiết lập để sử dụng tất cả các xác thực của bên thứ ba. Nếu bạn tôn trọng Google Plus OAuth, bạn không muốn quản lý Người dùng Google.Bạn tạo một thực thể địa phương với Google Identity làm Bản sắc địa phương của bạn và quản lý Người dùng cục bộ. –

0

xin lỗi vì phản hồi muộn tại đây. Nói chung, một thao tác để tạo các đối tượng trong một thư mục (như người dùng) yêu cầu quyền quản trị. Ngoài ra, có vẻ như ứng dụng web bạn đang tạo sử dụng quyền chỉ dành cho ứng dụng, điều này chắc chắn yêu cầu sự đồng ý của quản trị viên. Trong trường hợp nhiều bên thuê, quản trị viên của người thuê nhà đồng ý phải là người đồng ý với loại ứng dụng này - chỉ người nào đó trong vai trò này thực sự có quyền cấp sự đồng ý cho cấp truy cập này.

Hy vọng sẽ giúp,

+0

Ngoài ra tôi không chắc tôi hoàn toàn hiểu kịch bản của bạn (hoặc giải pháp nhanh chóng và bẩn mà bạn đang nói về ở đây). Có vẻ như bạn đang xây dựng một trang web để quản lý người dùng được ủy quyền của một số loại? Ý tưởng cho rằng nhiều tổ chức có thể sử dụng ứng dụng này trong người thuê của họ không? –

+0

Chúng tôi muốn sử dụng quảng cáo azure cho tất cả xác thực. Nếu người dùng có AzureAD của riêng mình (office 365, ...), người đó có thể sử dụng nó để tạo một tài khoản trong ứng dụng của chúng tôi. Nếu không, anh ta có thể tạo một tài khoản trong AzureAD của chúng tôi ... Nhưng tôi không muốn yêu cầu sự đồng ý để chạm vào các thư mục AzureAD khác, chỉ tôi mới tạo được người dùng này. Hy vọng điều này sẽ xóa đi một chút tình huống ... –

0

Không cần phải sử dụng một ứng dụng phổ thông thay cho vai trò xác thực - - có thể có một số tác dụng phụ đặc biệt trên người sử dụng chứng thực nào như không liên quan/ghi không đầy đủ, vai trò mâu thuẫn, và thiếu tham chiếu hệ thống/nội bộ.

Bạn đang sử dụng thông tin đăng nhập nào cho ứng dụng của mình (TenantID, v.v.)? QUẢNG CÁO rất nghiêm ngặt trong quản lý thông tin xác thực, vì vậy tôi sẽ quay lại cấu trúc ứng dụng. Ở mức truy vấn, bạn có thể làm cho tất cả các bảng hoàn toàn riêng biệt cho mỗi người thuê mà không có dữ liệu bảng chia sẻ và bao gồm cột định danh nhiều byte để không ai có thể chèn sql nếu bạn chắc chắn bao gồm số nhận dạng đa nhiệm dưới dạng biến rõ ràng.

Sau đó, trong mô hình thực thể, bạn có thể kế thừa giao diện đa nhiệm cho tất cả mọi người được gọi lại cho số nhận dạng người thuê nhà (như một phần của EF).

Bằng cách này, gánh nặng được tách biệt với OAuth hoặc các thư viện khác để đảm bảo việc xác thực của bên thứ ba.

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