作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我花了一段时间试图弄清楚如何将 azure 函数连接到任何用户的 Office 365 图表以查询他们的收件箱,但没有成功。我需要帮助了解执行以下操作的正确方法:
当用户向 http 触发函数发出 http get 请求时,它应该:
这应该适用于调用该函数的任何用户,无论他们正在访问哪个 Azure Active Directory 实例。
这可能吗?
如果是这样,谁能解释一下如何配置azure功能来实现这一点?
谢谢,斯图尔特
最佳答案
我已经想出了如何做到这一点。建议的解决方案仅从 Microsoft Graph 返回用户的详细信息,而不是收件箱计数。
将以下代码添加到您的函数中:
var request = require('request');
module.exports = function (context, req) {
var parameters = {
grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
client_id: process.env.WEBSITE_AUTH_CLIENT_ID,
client_secret: process.env.WEBSITE_AUTH_CLIENT_SECRET,
assertion: req.headers['x-ms-token-aad-id-token'],
resource: 'https://graph.microsoft.com',
requested_token_use: 'on_behalf_of'
};
var tenant = req.headers['x-ms-client-principal-name'].replace(/.*@/, "");
request.post('https://login.microsoftonline.com/'+tenant+'/oauth2/token', {form: parameters}, function (aadErr, aadResponse, aadMsg) {
var msgJson = JSON.parse(aadMsg);
request.get('https://graph.microsoft.com/v1.0/me/', {'auth': {'bearer': msgJson.access_token}}, function (err, response, msg) {
context.res = {
body: msg
};
context.done();
});
});
};
将“request”npm 包添加到您的解决方案中。
{ "name": "你的函数名称", “版本”:“0.0.1”, “依赖项”:{ “请求”:“>=2.81.0” }}
npm 安装
测试您的功能。
关于azure - 使用 Azure 应用服务身份验证将 Azure Function 作为 Multi-Tenancy 应用程序连接到 Microsoft Graph,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44720343/
我是一名优秀的程序员,十分优秀!