调用 Microsoft Graph 的 Outlook Web 加载项
Outlook web add-in calling Microsoft Graph
我正在关注 office-js-helpers 启用 SSO 登录,然后使用访问令牌调用 Graph API。
但是,即使我在 manifest.xml
中添加,Authentication 也会在新选项卡中打开登录名 windows
<AppDomain>https://login.windows.net</AppDomain>
<AppDomain>https://login.microsoftonline.com</AppDomain>
当前结果。
编辑:
对于 SSO 登录,是否应该在 Outlook 加载项中重定向而不是打开新的 Web 浏览器 window?
这是演示项目OutlookOneDriveGraphAddIn。
我想在我的 Outlook 网络插件中启用图表 api,图表 api 将需要登录过程,我希望能够在我的网络插件中请求访问令牌。
如果有什么不明白的,请告诉我。
嘿,我遇到了同样的问题。我还在开发一个 Outlook 插件,它需要访问令牌才能从 GraphAPI 请求资源。经过长时间的搜索,我找到了可能的最佳方法并完成了我的 Addin 的实现。
尝试 Access token without user 中的步骤。我的做法是使用 nodejs 中间件进行身份验证及其工作。现在我可以使用它访问大部分 GraphApi 资源。希望这有帮助。
请注意,使用此方法您应该启用应用程序权限,而不是委托。
这里有2个问题。
Question #1: For SSO login, should it be redirected in the Outlook
add-in instead of open a new Web Browser window?
它不应在 Office 加载项中重定向,原因很简单,因为这违反了 OAuth。使用 OAuth 身份验证,您必须向用户显示 URL - 否则您可以在您的加载项中伪造一个看起来类似于 Microsoft 登录的 UI 并窃取人们的凭据。显然这是不安全的。因此,当您调用 getAccessTokenAsync
时,如果用户未登录,它应该弹出一个对话框。登录由 Microsoft 处理,之后,可以通过相同的方法使用令牌 getAccessTokenAsync
.
Question #2: How do I get the access token from my add-in?
Office.context.auth.getAccessTokenAsync(function (result) {
if (result.status === "succeeded") {
// Use this token to call Web API
var ssoToken = result.value;
...
} else {
if (result.error.code === 13003) {
// SSO is not supported for domain user accounts, only
// work or school (Office 365) or Microsoft Account IDs.
} else {
// Handle error
}
}
});
我正在关注 office-js-helpers 启用 SSO 登录,然后使用访问令牌调用 Graph API。
但是,即使我在 manifest.xml
中添加,Authentication 也会在新选项卡中打开登录名 windows<AppDomain>https://login.windows.net</AppDomain>
<AppDomain>https://login.microsoftonline.com</AppDomain>
当前结果。
编辑:
对于 SSO 登录,是否应该在 Outlook 加载项中重定向而不是打开新的 Web 浏览器 window?
这是演示项目OutlookOneDriveGraphAddIn。
我想在我的 Outlook 网络插件中启用图表 api,图表 api 将需要登录过程,我希望能够在我的网络插件中请求访问令牌。
如果有什么不明白的,请告诉我。
嘿,我遇到了同样的问题。我还在开发一个 Outlook 插件,它需要访问令牌才能从 GraphAPI 请求资源。经过长时间的搜索,我找到了可能的最佳方法并完成了我的 Addin 的实现。
尝试 Access token without user 中的步骤。我的做法是使用 nodejs 中间件进行身份验证及其工作。现在我可以使用它访问大部分 GraphApi 资源。希望这有帮助。
请注意,使用此方法您应该启用应用程序权限,而不是委托。
这里有2个问题。
Question #1: For SSO login, should it be redirected in the Outlook add-in instead of open a new Web Browser window?
它不应在 Office 加载项中重定向,原因很简单,因为这违反了 OAuth。使用 OAuth 身份验证,您必须向用户显示 URL - 否则您可以在您的加载项中伪造一个看起来类似于 Microsoft 登录的 UI 并窃取人们的凭据。显然这是不安全的。因此,当您调用 getAccessTokenAsync
时,如果用户未登录,它应该弹出一个对话框。登录由 Microsoft 处理,之后,可以通过相同的方法使用令牌 getAccessTokenAsync
.
Question #2: How do I get the access token from my add-in?
Office.context.auth.getAccessTokenAsync(function (result) {
if (result.status === "succeeded") {
// Use this token to call Web API
var ssoToken = result.value;
...
} else {
if (result.error.code === 13003) {
// SSO is not supported for domain user accounts, only
// work or school (Office 365) or Microsoft Account IDs.
} else {
// Handle error
}
}
});