0

我现在标题到什么对我来说是一个未知的领域......API Secutiry与AngularJs SPA

我想要做的是保护我的Azure的API。而且我希望我的应用程序能够“与之通话”。

所以我已经固定我什么Azure的AD认证已经给我们的应用程序......我也跟着下面这个方法:

指南: Securing AngularJS Single Page Apps with Azure AD

视频: AngularJS Module for Microsoft Azure Active Directory Authentication

而且我不知道如何让它与我的API协同工作,或者如何确保它与Angularjs SPA Azure AD认证的对接。

所以我不是一个完整的指南之后,或者我真的想要了解这一点。 事情是我什至不知道从哪里开始拉的踩踏可言。

任何人都知道任何好的指针或有一个我应该看看的步骤列表,也可能是按照至少这样的顺序。

任何东西将不胜感激!

在此先感谢 - 约翰

----------------------编辑/后续---------- --------------

好吧,所以我设法保护我的API并将客户端和api连接到旧门户中的相同天青AD。

API和客户端现在均已启用SSL,因此他们使用https协议。

当我尝试通过邮递员从api获取联系人列表时,我得到“消息”:“授权已被拒绝此请求。”

这是什么感觉,因为它应该。

但是,当我通过angularjs SPA客户端尝试GET功能,我收到了状态码500

$scope.fillTable = function() { 
 
     $http.get('https://localhost:44338/api/Contacts').success(function (data) { 
 
      var peopleList = data; 
 
      $scope.contactList = peopleList; 
 
     }) 
 
    }

出于某种原因,我的授权密钥甚至没有在头因为它应该是因为adal.js,如文档中所述。

因此,当我登录时,我也获得了身份验证密钥,并且如果我只是在获取funsction中放置“api/Contacts”。没有这个地址的其余部分。

但我没有运行get函数,因为它应该是。

Authentication with initial load - auth token existing

Auth after using get fucntion with full url - auth token non existing

Auth after using get function with half the url - auth token existing

是否都API和客户端必须在这个同样的解决方案正常工作?因为我已经修复了CORS,并且还在清单中将oauth2AllowImplicitFLow设置为true,并且还在azure广告中展开了过多的数据。

我跟着结合这些指南与上面的那些:

Protect a Web API using Bearer tokens from Azure AD

Integrating Azure AD into an AngularJS single page app

Enabling Cross-Origin Requests in ASP.NET Web API 2

+0

你用什么来验证,opendId连接? – Bonomi

回答

0

一般来说,Azure的AD是微软基于云计算的目录和身份管理服务。通常,试图请求受Azure AD保护的资源(API等)的用户需要遵循OAuth 2.0身份验证盛大流程来实现来自Azure AD的访问令牌。然后在HTTP请求的Authorization标头中针对资源设置标记。

对于一般的理解如何在Azure的应用服务认证和授权的工作,你可以参考https://docs.microsoft.com/en-us/azure/app-service/app-service-authentication-overview?toc=%2fazure%2fapp-service-web%2ftoc.json

你的情况下,使用Azure的AD和OAuth 2.0已隐含授权许可,以确保其网络API后端。您可以参考https://docs.microsoft.com/en-us/azure/active-directory/active-directory-authentication-scenarios?toc=%2fazure%2factive-directory%2fdevelop%2ftoc.json#single-page-application-spa了解整个工作流程。 js SDK adal实现了这些功能,可帮助您使用Azure AD在单页面应用程序中处理身份验证。

在了解Azure AD主题的这些基础知识后,我认为您将进一步了解Azure AD如何保护您的后端Web API以及您的客户端应用程序如何授权给您的安全Web API。

任何进一步的关注,请随时让我知道。

+0

感谢您的指导!我一定会仔细看看这个。谢谢 – John

+0

好的,所以我对安全性的追求有了进一步的发展。如果您可以阅读上面第一篇文章的编辑,我将不胜感激。 在此先感谢! :) – John

+0

正如你有一个500响应,这意味着你的后端服务器API有什么问题。如果这是一个授权问题,它应该是一个401/403问题。 –