Tag: active directory

身份validation问题 – 从Azure函数调用的Azure REST API

我正在使用Azure函数来调用Azure SQL数据仓库的其余API,以便在白天的特定时间暂停和恢复服务器(2个函数)。 在我之前创build的azure函数中,我从来不必调用REST API,因为我只使用可用的输出选项。 而SQL DW只有REST API选项。 我使用nodejs创build了一个函数应用程序,并从那里调用这些REST API。 我通过了azure色的REST API文档,并尝试了在那里解释的过程。 首先,我在azure活动目录中添加函数app作为租户,并获得tenantID(它是端点URL的一部分)和应用程序ID /客户端ID,然后尝试调用loginURL,如https:// docs.microsoft.com/en-us/azure/active-directory/active-directory-protocols-oauth-code#request-an-authorization-code通过传递所需的parameters.Though它被提及为GET,我试着GET和POST,他们没有工作。 module.exports = function(context) { var unirest = require('unirest'); var subscriptionId='subscriptionId'; context.log("starting the function"); unirest.post('https://login.windows.net/tenantID/oauth2/authorize') .headers({'Accept': 'application/json', 'Content-Type': 'application/json'}) .send({ "client_id": "clientID ", "response_type": "code","grant_type":"authorization_code" }) .end(function (response) { context.log(response.body); }); }); 这段代码只是为了获得authentication码,然后再有一个方法来获得令牌,然后调用实际的SQL DW暂停/恢复方法。 当我从VS2015运行相同的(删除模块导出和更改上下文到控制台),我得到如下相同的错误 <html><head><title>Continue</title></head><body><form method="POST" name="hiddenform" action="https://login.microsoftonline.com/9b8d9cda-ddb4-43bb-8725-bc0e9af83b43/oauth2/authorize"><noscript><p>Script is disabled. Click […]

从Node中的Active Directory获取经过身份validation的用户组

我们被要求将我们的NodeJS应用程序移到IIS(Windows Server 2012R2)下运行,并与现有的Active Directory集成。 我们被要求删除login页面,而是使用Windows身份validation来获取(已经过身份validation的)用户的ID,并使用他/她所属的组来控制其在应用程序内的授权级别。 我已经安装了iisnode在IIS下运行我的应用程序,并认为我将使用passport-windowsauth或node-activedirectory来获取组成员memebership。 但是,都需要用户/密码来validation用户。 我的用户已经通过身份validation ,我无法访问他的密码(我也不应该)。 如何从Active Directory获取经过身份validation的用户组? 以下是我到目前为止: 安装并configurationiisnode 为Web应用启用Windows身份validation 添加到web.config: <iisnode promoteServerVars="AUTH_USER,AUTH_TYPE" /> 在我的index.js文件中,我可以使用console.log(req.headers['x-iisnode-auth_user']); 并获得正确的用户名 – 但我不知道如何从这里开始获得他/她的团体 在任何情况下,我都不想重新询问用户的密码

对MS Graph API的请求使我“授权请求被拒绝 – 没有足够的权限来完成操作”

我有一个关于“授权请求被拒绝 – 没有足够的权限来完成操作”的消息,我不断从我的请求回到WindowsgraphicsAPI。 具体来说,我正在使用Azure云。 我有一个调用API的iOS移动应用程序。 我在我的Portal中打开了“Active Directory的身份validation”。 然后,在客户端(iOS)上: [self.todoService.client loginWithProvider:@"windowsazureactivedirectory" controller:self animated:YES completion:^(MSUser *user, NSError *error) { if(!error && user) { [self refresh]; } }]; //loginWithProvider 所以返回一个有效的MSUser对象。 我看到networkinglogin控制器出现,我用我的un / pwlogin,然后让我访问我的Easy Table的数据…等等。 现在,我想调用我在Azure中创build的一个名为getUserData的Easy API。 因此,我只需像这样插入invokeAPI代码(iOS): [self.todoService.client loginWithProvider:@"windowsazureactivedirectory" controller:self animated:YES completion:^(MSUser *user, NSError *error) { if(!error && user) { //NSMutableDictionary * dict = [NSMutableDictionary dictionary]; //[dict setObject:@YES […]

nodejs网站与活动目录permisssions

您可以使用单一loginWindows Active Directory身份validation为用户设置基于nodejs的网站吗? 我发现这是为了设置Windows Azure AD ,但是我正在讨论一个内联网站点,它将托pipe在Windows服务器上,并由Intranet上的AD用户访问。

如何使用Azure API格式执行查询:用户身份validation

我想获得JSON数据作为解释在restAPI文档https://dev.applicationinsights.io/documentation/overview customEvents | where customDimensions.teamId == '8bcb0466-8227-4de4-b001-b70381b9cd04' 由于其他api的限制为每分钟15个呼叫,每天1500个,因为文档https://dev.applicationinsights.io/documentation/Authorization/Rate-limits说使用Azure API和Azure Active Directory,但没有可用的示例那。 我想在节点js中执行它,但是没有find相同的sdk。 对于AD身份validation,我使用了assport-azure-ad库。

在NodeJS后端使用JWT和Active Directoryauthentication

我正在构build一个由Angular前端和Node.JS后端组成的Intranet Web应用程序。 应用程序需要使用企业Active Directory进行身份validation和授权。 我正在考虑如何以一种安全的方式最好地实现这一点。 我计划使用Active Directory节点模块实际与AD通信,以便在用户login时进行身份validation,并检查某些受限操作的安全组成员身份等。 但是,我不太确定授权我的后端端点的最佳方式是什么。 AD模块不提供任何令牌/票证,即使我假设Kerberos用于实际的身份validation过程。 在我开发的其他已validation的应用程序中,当用户login时,我生成了一个jsonwebtoken,然后在每个后端path中传递并validation该标记,在对AD进行身份validation时也是一个好主意? 编辑:问题的第二部分催生单独的线程: JWT令牌的服务器端处理的最佳做法 另外,对于实际validation令牌的最佳实践,我有一个更为普遍的关注。 假设用于JWT生成的“秘密”被破坏(在我的场景中,许多人可能有权访问系统的源代码,但不能访问系统本身)。 我是否相信恶意用户可以只用这些信息代表任何给定的用户生成一个令牌,而不用ADvalidation在我的API请求中使用该令牌? 令牌通常使用jwt.sign(payload, secretOrPrivateKey, options)生成jwt.sign(payload, secretOrPrivateKey, options) 。 或者,假设恶意用户可以获得一个实际的令牌(在过期之前)。 对我来说,似乎不必知道用户的用户名和密码,现在安全性已经降低到必须知道用户名和JWT秘密。 这是一个有效的关注,我该怎么做才能防止这种情况? 到目前为止,我最大的希望是使用服务器端会话login后存储有关当前用户的信息,以便即使在访问后端端点时恶意生成并使用令牌,除非用户实际已经通过login路由,通过ADauthentication,并在会话中存储一些信息。 我还考虑过在每个 API端点中实际使用AD进行身份validation,但这需要在每个请求中发送AD用户名/密码,这又要求敏感信息必须存储在客户端的sessionstorage或localstorage中,最有可能是一个坏主意。 所以,问题: 1)将AD授权与JWT结合为不记名令牌是合理的,还是使用AD进行authenticationbuild立安全后端+前端的首选方式是什么? 2)如果JWT是一个好主意,那么使用JWT保护端点的最佳做法是什么? 使用服务器端会话是否合理? 有趣的是,我已经发现了很多关于如何最好地实现基于令牌的authentication的例子(一般来说,或者特别是用NodeJS),但是其中有许多似乎有这样或那样的缺陷。