0

无法使用 Dialog API 和 ADAL 对 Office 加载项进行身份验证。

我正在尝试使用 Dialog API 和 ADAL 对用户进行身份验证。对话框打开正常,但我收到请求中指定的回复 url 与为应用程序配置的回复 url 不匹配的错误。回复 url 在代码和应用注册中都被配置为对话 URL。

        $("#btnSignin").click(function () {
            var url = "https://localhost:44367/auth.html";
            Office.context.ui.displayDialogAsync(url, { height: 40, width: 40 }, function (result) {
                _dlg = result.value;
                _dlg.addEventHandler(Microsoft.Office.WebExtension.EventType.DialogMessageReceived, dialogMessageReceived);
            });
        });

URL - https://localhost:44367/auth.html被配置为 redirectUri 并且在调试时 authcontext.config.redirectUri 也指向https://localhost:44367/auth.html?_host_Info=Excel $Win32$16.01$en -US$telemetry$isDialog”。

我不确定为什么会出现错误,尽管 url 配置正确。还有其他要添加的 redirectUri 吗?

4

1 回答 1

0

发表评论有点复杂,所以我现在将使用“答案”。

你在哪里看到错误?在 JavaScript 控制台中?在弹出窗口中?

请在 Azure 门户中打开应用注册的原始清单,并查看该replyUrlsWithType属性的值是多少。

请使用 Fiddler 工具查看前往登录 URL 的 HTTP 请求:

https://login.microsoftonline.com/{YOUR O365 TENANCY GUID}/oauth2/v2.0/authorize?scope={VARIOUS SCOPES}&response_type=code&client_id={YOUR APP'S REGISTRATION ID IN AAD}&redirect_uri={YOUR LOCALHOST REDIRECT URL}

发送的确切字符串是redirect_uri什么?它将是 URL 编码的,但除此之外它应该与原始清单中的内容相匹配。

于 2019-06-15T18:49:48.967 回答