2017-02-03 78 views
1

我正在编写一个在Azure AD中注册为应用程序的SPA Web应用程序。本周的大部分时间一切正常,然而,当我今天开始工作时,我没有得到预期的结果。登录到Web应用程序时未提示OAuth同意

我删除并重新创建应用程序注册,希望它能解决问题,但它让事情变得更糟。当我导航到URL时,我被重定向到登录到Azure AD。这部分工作正常。由于我刚刚创建了应用程序注册,所以我期望将被带到一个页面来同意该应用程序,但是我将被重定向回到我的应用程序。

我检查了Azure中的应用程序注册,并且没有列出我作为应用程序的用户。因为所有这些,我无法获取令牌来调用外部API(我已经在我的应用程序注册中注册了该API)。

我不知道为什么我突然跑到这里。有关为什么OAuth同意被绕过的想法?我开始怀疑MSFT是否存在服务问题,但更有可能的是,问题在我身上。

关于如何排除故障的建议也很受欢迎!

回答

2

有两件事你可以做,以表示同意可能会修复你的应用程序。从听起来像你的应用程序不同意ADAL.js之前,你使用acquireToken(这是一个沉默的电话,不能同意)。

  1. 走进Azure的门户网站> Azure的AD>您注册的应用程序,然后在顶部打Grant Permissions。这与管理员同意相当,并会同意租户中的所有用户。

  2. 运行您的应用程序并点击登录。当您重定向到Azure AD登录页面时,请添加到网址&prompt=consent,按回车并重新加载带有该参数并登录的页面。这将强制同意屏幕并同意当前用户。如果您使用管理员帐户登录,则还可以追加prompt=admin_consent

+1

救生员!我不是管理员,所以我唯一的选择是添加'&prompt = consent',它工作。它还回答了我在将来如何处理更改权限的另一个问题。我将不得不进一步研究adal.js,看看它们是否已经有钩子,如果没有,我可能需要听取这个错误,并重定向回到使用'prompt'查询字符串参数集登录。我还想知道,为什么在本周早些时候它似乎能够正常工作时,我现在正在发生这种情况。 –

相关问题