主机名不应基于已经拥有的域

问题描述 投票:0回答:1

我已经下载了应用程序(https://github.com/OfficeDev/Office-Add-in-ASPNET-SSO),并且没有任何问题。我已经基于它创建了一个新的Outlook加载项。按照文档(https://docs.microsoft.com/en-us/office/dev/add-ins/develop/register-sso-add-in-aad-v2)成功设置应用程序注册及其设置。

项目运行良好,能够从Outlook客户端与OneDrive,Graph进行通信,而没有任何问题。到目前为止一切都很好。

问题:当我将代码部署到Azure应用服务并尝试将APP ID URI添加为我的azurewebsites.net URL时,它开始引发问题。

问题1:如果我在应用程序ID URL中使用azurewebsites.net URL,则无法将应用程序配置为多租户。但是,文档说应该将其配置为多租户应用。

问题2:如果仅在应用程序注册身份验证中将其确定为当前租户,那么它可以让我很好地设置应用程序ID网址(公开API)。但是,它无法验证令牌,因为它始终会抛出无效令牌。 Outlook getaccesstoken工作正常,但是当我将该令牌传递给控制器​​时,代码中使用的方法ClaimsPrincipal.Current总是会失败。

我在这里阅读(https://github.com/OfficeDev/office-js-docs-pr/issues/40)可能需要自定义域,因为不支持azurewebsites.net证明所有权。但是,在这种情况下,我无法获得自定义域。请让我知道是否有人可以解决此问题,或者需要更多信息。

我已尝试将应用程序更改为仅单个租户。但是,在我的asp.net Web API控制器中未验证来自Outlook客户端的令牌。始终为空

var scopeClaim = ClaimsPrincipal.Current.FindFirst(“ http://schemas.microsoft.com/identity/claims/scope”);

如果我将应用程序更改为多租户应用程序,则无法将azurewebsites.net URL添加到应用程序ID URL。

office-js outlook-web-addins
1个回答
0
投票

我已通过使应用程序为单租户而不是多租户应用程序解决了此问题。 (这是仅适用于当前租户的企业应用程序)。然后更改所有端点以从/ common /

映射到租户guid

现在一切顺利。

© www.soinside.com 2019 - 2024. All rights reserved.