2015-02-10 40 views
9

Tôi đã thiết lập ứng dụng Azure AD mà tôi muốn sử dụng với ứng dụng web của mình. Tôi đã thu được một mã thông báo OAuth sử dụng các bước sau:Lỗi đặc quyền không đầy đủ khi cố gắng truy cập vào Azure Graph API

Trước tiên tôi yêu cầu mã uỷ quyền của tôi:

https://login.windows.net/common/oauth2/authorize?redirect_uri={REDIRECT_URI}&client_id={CLIENT_ID}&response_type=code&state=o365&prompt=admin_consent 

này đưa người dùng đến các trang login.windows.net nơi họ phải chấp nhận điều khoản mà ứng dụng của tôi là sẽ sử dụng trên AD của họ.

Sau đó tôi nhận được mã thông báo OAuth sử dụng thiết bị đầu cuối này https://login.windows.net/common/oauth2/token với tải trọng này sử dụng C#:

{"code": {AUTH_CODE}}, 
{"state", {STATE}}, 
{"grant_type", "authorization_code"}, 
{"redirect_uri", "{REDIRECT_URI}"}, 
{"client_id", "1ff78c4b-414f-44c7-834b-09bdae96f440"}, 
{"client_secret", "{CLIENT_SECRET}"}, 
{"resource", "https://graph.windows.net"} 

Tất cả mọi thứ trở lại tốt và tôi nhận được Mã thông báo oAuth tôi. Tuy nhiên khi tôi cố gắng cuộn tròn API Graph sử dụng thẻ tôi nhận được lỗi này

curl https://graph.windows.net/{tenant}/users?api-version=1.5 -H "Authorization: Bearer [AUTH_TOKEN]" 

{"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."}}} 

Tôi đã cố gắng lĩnh vực thực tế cho {thuê}, "cái tôi" bí danh và "myorganization" bí danh và tất cả họ don 't làm việc. Bí danh "tôi" trả về lỗi nói rằng tài nguyên 'người dùng' không tồn tại. Tôi bối rối về vấn đề ở đây là

+0

Xin chào Matt. Ứng dụng của bạn yêu cầu những quyền nào? Ví dụ: "đăng nhập và đọc tiểu sử của tôi" mặc định không cho phép ứng dụng đọc thông tin hồ sơ của người dùng khác. –

Trả lời

10

Các đặc quyền bị thiếu đối với ứng dụng của bạn đang chặn AD xanh dương để đọc chi tiết người dùng có trong AD tùy chỉnh của bạn. Đây là những gì bạn cần làm:

Chuyển đến cổng tùy chỉnh AD trên cửa sổ quản lý của bạn -> Nhấp vào tab ứng dụng -> Nhấp vào tên ứng dụng AD của bạn để chuyển đến chế độ xem chi tiết. Trên giao diện chi tiết, hãy vào tab cấu hình.

Bây giờ hãy cuộn xuống cuối trang để tiếp cận phần "quyền đối với các ứng dụng khác". Ở đó bạn sẽ thấy tất cả các quyền hiện giao cho "Windows Azure Active Directory" ứng dụng trong điều khoản được giao một chọn nhiều hộp danh sách như hình dưới đây:

Application access rights for Azure AD

Đánh dấu vào ô chống lại "Truy cập thư mục của tổ chức" và "Đọc dữ liệu thư mục ". Nhấp vào lưu ở thanh công cụ phía dưới để lưu các thay đổi. Nút lưu sẽ tự động xuất hiện ngay sau khi bạn thực hiện bất kỳ thay đổi nào trên trang. Nút lưu không hiển thị trong ảnh chụp màn hình ở trên vì tôi đã lưu các thay đổi khi tôi chụp ảnh màn hình.

Bây giờ hãy thử truy cập lại chi tiết người dùng AD của bạn bằng API đồ thị. Nó không nên cung cấp cho các lỗi "Không đủ đặc quyền" nữa. Hi vọng điêu nay co ich!

+0

Xin chào Basik, tôi không có tùy chọn "Bật đăng nhập và đọc tiểu sử của người dùng" trong AAD của tôi: http://i.imgur.com/zDtpMHt.png Bạn có thể tư vấn tại sao có thể như vậy? – Vladimir

+0

@Vladimir bạn có nhận được giải pháp nào cho nhận xét của mình ở trên không? –

+0

@Vladimir Ảnh chụp màn hình hiển thị các quyền của ứng dụng, quyền bị thiếu sẽ được tìm thấy trong các quyền được ủy quyền. Bạn có chắc là bạn đã tìm nó ở đúng chỗ không? – Alexander

1

Trong trường hợp của tôi, tôi phải xóa đăng ký Azure AD App mà tôi đã tạo trong Cổng mới và tạo lại chúng trong Cổng thông tin cổ điển. Sau khi thực hiện việc này, lỗi "không đủ đặc quyền" đã biến mất và mọi thứ hoạt động tốt.

Như một điều kiện tiên quyết, hãy đảm bảo bạn được thêm làm đồng quản trị cho đăng ký từ cổng thông tin cổ điển, nếu không Azure sẽ không cho phép bạn vào Cổng cổ điển nữa.

Có vẻ như Microsoft vẫn có một số vấn đề cần giải quyết với Cổng mới ...

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