5

Chúng tôi có những điều sau đây:Cách sử dụng xác thực Azure AD cho ứng dụng web ASP.NET MVC không phải Azure riêng biệt và các trang Web Api?

  • ASP.NET MVC ứng dụng 5 trang web được lưu trữ trên máy chủ công ty chúng tôi (không Azure) ví dụ ourcompany.com. Đây không phải là ứng dụng AngularJS hoặc đơn trang.
  • ASP.NET MVC WebApi 2 được lưu trữ trên máy chủ công ty của chúng tôi (không phải Azure), ví dụ: api.ourcompany.com. Đây là một dự án riêng biệt từ trang web để nó có thể được truy cập bởi nhiều ứng dụng/trang web.
  • Azure Active Directory cho công ty chúng tôi

gì chúng tôi muốn làm là:

  1. tài thăm trang web và đăng nhập vào qua chứng thực AD Azure.
  2. Ứng dụng web hiển thị các trang w/JavaScript.
  3. Trang JS gọi Web API

tôi thấy các tài liệu/mẫu trong tài liệu Azure cho:

  • Web App để Azure AD
  • Web App để WebAPI
  • SPA để WebAPI

Nếu các thành phần API được chứa trong dự án ứng dụng web, lệnh gọi JS m trang sẽ có quyền truy cập vào thông tin đăng nhập của người dùng. Tuy nhiên, w/API riêng biệt, các câu hỏi là làm thế nào để sử dụng xác thực trong # 1 để cho phép # 3 để gọi WebApi bằng cách sử dụng JS và có quyền truy cập vào tất cả các thông tin xác thực?

+0

Up'd it. Tôi cần phải làm một cái gì đó tương tự. – Sam

Trả lời

0

Tôi đã có thể nhận được một kịch bản tương tự để hoạt động bằng cách bắt đầu từ mẫu WebApp đến WebApi bằng Azure AD và OpenID Connect.

Calling a web API in a web app using Azure AD and OpenID Connect

Mẫu cung cấp dấu hiệu duy nhất trên cho người sử dụng trên các ứng dụng web và sẽ ủy danh tính người dùng từ ứng dụng web để api web. Nó đã làm như vậy bằng cách lấy một mã thông báo mang trong bộ điều khiển ứng dụng web và sử dụng nó để gọi api web. Chúng ta có thể dễ dàng sử dụng thẻ vô danh cùng thực hiện cuộc gọi ajax javascript bằng cách đặt các dấu hiệu mang vào tiêu đề Authorization:

//jQuery example 
settings.headers = { 
    'Authorization': 'Bearer ' + bearerToken, 
}; 

tôi đã có thể có được điều này để làm việc mà không adal.js liberary. Cors vẫn cần thiết để thực hiện cuộc gọi ajax tên miền chéo.

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