0

我正在构建一个 Excel Web 插件。我需要针对 Office 365 对用户进行身份验证并将插件发布到 AppSource / Office 商店。理想的身份验证方法是什么?

我找到了 SSO 身份验证的教程,但后来我阅读了https://docs.microsoft.com/en-us/office/dev/add-ins/develop/sso-in-office-add-ins:“单点登录-on API 目前仅在预览版中受支持。它可供开发人员进行实验;但不应在生产插件中使用。此外,AppSource 不接受使用 SSO 的插件。

这是否意味着商店仍不接受 SSO 申请?那我应该使用什么身份验证流程?我只需要用户通过此身份登录访问我的 Web API。如果可能,用户不需要重新输入他们的凭据。有没有我可以遵循的代码示例来完成这项工作?

4

1 回答 1

0

AppSource 目前不接受使用预览版 SSO 系统的加载项。

要使用没有 SSO的 Microsoft 帐户或工作或学校 (Office 365) 帐户对用户进行身份验证,即使用户已经登录到 Office,需要再次登录。如果没有 SSO 系统,加载项就无法知道谁登录了 Office,就像在浏览器中打开的 Web 应用程序不知道 Office 是否在计算机上运行或谁登录了一样。

(您对流程的选择可能会受到您是否拥有单页应用程序 (SPA) 或服务器生成的 UI 的影响。由于您提到您有一个 Web API,我假设这不是一个 SPA。)

我不知道任何仅对用户进行身份验证的示例 Office 加载项;但是有几个用户登录,然后使用 Auth Code Flow 获取 Microsoft Graph 的访问令牌。

PowerPoint 加载项 Microsoft Graph ASPNET InsertChart。Office 应用程序是 PowerPoint,但与身份验证相关的代码与 Excel 相同。

Office 加载项 Microsoft Graph ASPNET。这几乎相同,但将 Excel 作为 Office 应用程序。它没有抛光。(请参阅自述文件中的已知问题。)

但请记住,Office 加载项只是一个 Web 应用程序,并且 - 除了一个例外 - 在加载项中授权用户与在任何其他 Web 应用程序中是相同的。因此,您应该能够使用Azure AD 快速入门中的示例。

一个例外是您必须在使用 Office.js displayDialogAsync API 调用的特殊对话窗口中打开 AAD 登录页面。我上面链接的 2 个样本就是这样做的。您可以在 Office 加载项中的对话框 API一文中获得有关使用 Dialog 进行身份验证的详细指导。

顺便说一句,微软正在改进其非 SSO 身份验证的文档和示例。我们希望在接下来的几周内发布这些改进。

于 2019-06-16T23:23:44.200 回答