我在SPA客户端中使用adal.js登录并获取我的Web服务的访问令牌。我们正在使用新权限更新我们的应用注册,这将要求用户再次同意。
我想知道来自AAD的哪些错误代码表明应该同意,而不是采取其他一些错误处理措施?
令我惊讶的是,我无法向Google提供完整的参考,列出AAD可能返回的所有错误代码。这些信息是否公开记录?我指的是模式的错误代码,AADSTSxxxxx
(即AADSTS65001
等),可能会从oauth2/authorize
端点返回。
答案 0 :(得分:2)
AADSTS65001
是主要同意错误,表示最终用户需要再次同意。我建议不要查找特定的AADSTSxxxxxx错误,并让您的应用程序分支遇到该错误。有时这些会发生变化,未来可能会出现新的错误,这些错误表明需要类似的同意"信息。
如果您正在构建单租户应用,那么当您对应用进行必要的资源更新时,一个不错的选择是执行管理员同意。您可以通过单击Azure门户中的Grant Permissions
或使用prompt=admin_consent
发送身份验证请求并使用管理员帐户登录来执行此操作。
对于多租户,根据应用程序的不同,还有一些选项。一种选择是为管理员可以访问的更新建立管理员同意体验,点击启动管理员同意请求的按钮,然后让管理员登录。
adal.js的一个新功能,我认为这将使开发过程更容易一些是新的交互式获取令牌调用。这将允许您在acquireToken
调用上指定可显示UI的资源,并在需要时请求同意。一旦可用,您的应用程序可以尝试静默acquireToken
请求,并在失败时尝试此交互式版本。请注意Github上的此版本。