我已经为Azure App服务部署了一个Web API,并使用Active Directory身份验证对其进行了保护。我需要在门户网站即CRM Portal中调用此Web API的On-Change字段。 (我的CRM门户网站也只允许经过Active Directory身份验证的用户登录。)我想到的方法是我会在字段上进行Ajax调用以获取响应。但是我无法获得令牌本身。我使用adal.min.js作为支持Active Directory身份验证的库。通过这种方式调用No Authentication Web API时,我很容易得到响应。
从JQuery AJAX调用中获取AD身份验证API的响应应该怎么做?
答案 0 :(得分:0)
我已经为Azure App服务部署了一个Web API,并使用Active Directory身份验证对其进行了保护。
AFAIK,您可以使用OWIN中间件NuGet包Microsoft.Owin.Security.ActiveDirectory进行AAD身份验证,详细信息可以遵循here。此外,您还可以利用Azure App Service提供的内置authentication and authorization到Configure your App Service app to use Azure Active Directory login。
从JQuery AJAX调用中获取AD身份验证API的响应应该怎么做?
通过ADAL.js成功登录后,您可以使用以下代码获取令牌并使用它来访问您的Web api端点。
authContext.acquireToken(authContext.config.clientId, function (error, token) {
// Handle ADAL Error
if (error || !token) {
printErrorMessage('ADAL Error Occurred: ' + error);
return;
}
// Get TodoList Data
$.ajax({
type: "GET",
url: "/api/TodoList",
headers: {
'Authorization': 'Bearer ' + token,
},
}).done(function (data) {
//TODO:
});
});
详细的代码示例,您可以关注Azure AD Javascript Getting Started。
您可以创建一个单独的AAD应用程序,并在前端和Web API后端中使用它。此外,您可以为前端和Web API后端创建每个AAD应用程序,对于此方法,您需要为资源映射配置enpoints
属性以实例化ADAL AuthenticationContext,您可以遵循的详细信息Active Directory Authentication Library (ADAL) for JavaScript
此外,对于内置的App Service身份验证/授权,您还可以利用How to Use the JavaScript client library for Azure Mobile Apps对用户进行身份验证并检索mobileServiceAuthenticationToken
,然后在访问时将其应用于X-ZUMO-AUTH
标头您的Web API端点。