Excel AppSource 的 Web 插件身份验证

Excel web addin authentication for AppSource

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

我找到了 SSO 身份验证的教程,但后来我阅读了 https://docs.microsoft.com/en-us/office/dev/add-ins/develop/sso-in-office-add-ins:"The Single Sign-on API is currently supported in preview only. It is available to developers for experimentation; but it should not be used in a production add-in. In addition, add-ins that use SSO are not accepted in AppSource."

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

AppSource 目前不接受使用预览 SSO 系统的 add-ins。

要在没有 SSO 的情况下使用 Microsoft 帐户或工作或学校 (Office 365) 帐户验证用户 ,用户 需要重新登录,即使她或他已经登录到 Office。如果没有 SSO 系统,add-in 无法知道谁登录了 Office,就像在浏览器中打开的 Web 应用程序不知道 Office 是否在机器上 运行 或谁已登录一样进去。

(您对流程的选择可能会受到您使用的是单页应用程序 (SPA) 还是 server-generated UI 的影响。既然您提到您使用的是 Web API,我假设这不是 SPA。)

我不知道有任何示例 Office Add-ins 对用户进行身份验证;但是有几个登录用户,然后使用授权代码流获取 Microsoft Graph 的访问令牌。

PowerPoint Add-in Microsoft Graph ASPNET InsertChart。 Office 应用是 PowerPoint,但 auth-related 代码与 Excel 相同。

Office Add-in Microsoft Graph ASPNET。这与 Office 应用程序几乎相同,但具有 Excel。它没有抛光。 (请参阅自述文件中的已知问题。)

但请记住,Office add-in 只是一个 Web 应用程序,并且 - 除了一个例外 - 在 add-in 中授权用户与在任何其他应用程序中一样其他网络应用程序。因此,您应该能够使用 Azure AD Quickstarts.

中的示例

唯一的例外是您必须在使用 Office.js displayDialogAsync API 调用的特殊对话框 window 中打开 AAD sign-in 页面。我上面链接的 2 个样本就是这样做的。您可以在文章 Dialog API in Office Add-ins.

中获得有关使用对话框进行身份验证的详细指导

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