Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript adal.js是否支持授权代码授权流?_Javascript_Azure_Oauth_Azure Active Directory_Adal - Fatal编程技术网

Javascript adal.js是否支持授权代码授权流?

Javascript adal.js是否支持授权代码授权流?,javascript,azure,oauth,azure-active-directory,adal,Javascript,Azure,Oauth,Azure Active Directory,Adal,有一段时间,我有一个.Net WPF应用程序,它使用Adal.Net对azure active directory执行(我认为是)授权代码授予流,以访问web API(它正在请求中寻找承载令牌) 为此,我使用了2个AAD应用程序:MyServer(表示服务器)和MyClient(表示WPF客户端)。在azure门户中,我为Myclient配置了访问MyServer的权限 当从我的WPF应用程序调用AcquireToken时,我提供了MyClient.ClientId作为客户端ID和MyServe

有一段时间,我有一个.Net WPF应用程序,它使用Adal.Net对azure active directory执行(我认为是)授权代码授予流,以访问web API(它正在请求中寻找承载令牌)

为此,我使用了2个AAD应用程序:MyServer(表示服务器)和MyClient(表示WPF客户端)。在azure门户中,我为Myclient配置了访问MyServer的权限

当从我的WPF应用程序调用
AcquireToken
时,我提供了
MyClient.ClientId
作为客户端ID和
MyServer.ResourceUrl
作为资源ID,一切正常

现在我有了一个网站(它只提供使用IIS的静态页面-它没有asp.net或node.js作为web服务器)

我希望我的浏览器执行与.Net本机应用程序相同的流

我已经看过了adal.js,但是没有找到一个简单的方法


我必须手动实现吗?

Rony,AAD不支持令牌端点上的跨源调用-因此您将无法在JS中实现auth code grant OAuth流(使用代码的令牌请求将失败)。AAD支持您描述的场景的隐式授权OAuth流(调用web api的单页应用程序)

ADAL.js实现隐式授权流。请让我们知道,如果您有任何问题,使用它


希望有帮助

谢谢!如果我的单页应用程序是从不同于它需要调用的ajax API的URL提供的,ADAL.js隐式授权流会工作吗?OAuth流确实会工作,您的SPA将获得一个访问令牌-但是,如果您的API支持CORS,您将只能对您的跨源WebAPI进行ajax调用-您可以有选择地为您的应用程序启用CORSSPA来源。我注意到令牌中的本机流(使用adal.net)访问群体是服务器端应用程序的客户端ID,但在adal.js的情况下,访问群体是客户端应用程序的客户端ID。这意味着对于每个使用我的服务器端API的新网站,我需要在服务器端允许另一个访问者。是否有一种方法可以使用adal.js进行身份验证,从而使访问群体成为服务器端应用程序(就像我使用本机客户端所做的那样)?