Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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 AngularJS+;ADAL.JS设置资源ID(受众)_Javascript_Angularjs_Azure_Azure Active Directory_Adal.js - Fatal编程技术网

Javascript AngularJS+;ADAL.JS设置资源ID(受众)

Javascript AngularJS+;ADAL.JS设置资源ID(受众),javascript,angularjs,azure,azure-active-directory,adal.js,Javascript,Angularjs,Azure,Azure Active Directory,Adal.js,如何在AngularJS中使用adal.js为观众获取承载令牌https://management.azure.com来自我的javascript代码 我已在广告中创建了一个客户端应用程序,并设置了其权限以允许其访问“Windows Azure服务管理API”。我的angularjs代码如下: adalService.init( { instance: "https://login.windows.net/",

如何在AngularJS中使用
adal.js
为观众获取承载令牌
https://management.azure.com
来自我的javascript代码

我已在广告中创建了一个客户端应用程序,并设置了其权限以允许其访问“Windows Azure服务管理API”。我的angularjs代码如下:

adalService.init(
            {
                instance: "https://login.windows.net/",
                tenant: "<something>.onmicrosoft.com",
                clientId: "<some id>",
                cacheLocation: 'localStorage',
                redirectUri: 'http://localhost:63691/index.html#/configure',
                endpoints: {
                    /* 'target endpoint to be called': 'target endpoint's resource ID' */
                    'https://management.azure.com/subscriptions?api-version=2014-04-01': 'https://management.azure.com/'
                }
            },
            $httpProvider
        );

好的,我在这里查看了ADAL.JS的源代码后找到了解决方案。在第137行,它查看
config.loginResource
,查看在将
config
对象传递给
init()
函数时是否设置了它

为陷入困境的人提供帮助:

如果您需要令牌来声明“”(或任何其他资源URI),则可以在初始化AuthenticationContext时设置访问群体,如下所示:

app.config(['$routeProvider', '$httpProvider', 'adalAuthenticationServiceProvider', function ($routeProvider, $httpProvider, adalService) {
    adalService.init(
                {
                    instance: "https://login.microsoftonline.com/",
                    tenant: "<something>.onmicrosoft.com",
                    clientId: "<client-id>",
                    cacheLocation: 'localStorage', //optional
                    redirectUri: '<redirect-uri>',
                    loginResource: 'https://management.azure.com/' //to set AUDIENCE
                },
                $httpProvider
            );
}]);
app.config(['$routeProvider','$httpProvider','adalAuthenticationServiceProvider',函数($routeProvider,$httpProvider,adalService){
adalService.init(
{
实例:“https://login.microsoftonline.com/",
租户:“.onmicrosoft.com”,
客户ID:“,
cacheLocation:'localStorage',//可选
重定向URI:“”,
loginResource:'https://management.azure.com/“//设置观众
},
$httpProvider
);
}]);

请问您是如何做到这一点的?我想知道你为什么不在adalService.init中使用端点?它通过了身份验证,但现在遇到了无休止的循环或更新令牌。@Jaanus我也遇到了同样的问题。如果您等待足够长的时间,您将看到它不是一个无限循环。过了一会儿,它就不再提神了。遗憾的是,我不明白为什么会发生这种情况。
app.config(['$routeProvider', '$httpProvider', 'adalAuthenticationServiceProvider', function ($routeProvider, $httpProvider, adalService) {
    adalService.init(
                {
                    instance: "https://login.microsoftonline.com/",
                    tenant: "<something>.onmicrosoft.com",
                    clientId: "<client-id>",
                    cacheLocation: 'localStorage', //optional
                    redirectUri: '<redirect-uri>',
                    loginResource: 'https://management.azure.com/' //to set AUDIENCE
                },
                $httpProvider
            );
}]);