【问题标题】:Excel web addin authentication for AppSourceAppSource 的 Excel Web 插件身份验证
【发布时间】:2019-06-16 19:10:42
【问题描述】:

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

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

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

【问题讨论】:

    标签: oauth-2.0 office365 office-js excel-addins


    【解决方案1】:

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

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

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

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

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

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

    但请记住,Office 加载项只是一个 Web 应用程序,并且 - 除了一个例外 - 在加载项中授权用户的方式与在任何其他 Web 应用程序中相同。所以,你应该可以使用Azure AD Quickstarts中的示例了。

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

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

    【讨论】:

    • 您对以下用例有何建议。用户使用email1 安装了一个 excel 加载项。一旦他sign-in 在带有email1 加载项的excel 表中出现,否则不会出现。 Add-in 还需要通过实现Dialog API 进行的身份验证。 加载项如何知道用户在工作表中输入了他用来登录的相同 email1
    猜你喜欢
    • 2018-10-02
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多