[英]JavaScript OAuth2 flow for Azure AD v2 login does not give an access_token
[英]Azure AD error when fetching access token & login
当我试图获取其中一个API的访问密钥时,我收到了错误。 “AADSTS65001:用户或管理员未同意使用ID为”{GUID}“的应用程序
我首先尝试在登录期间提示=同意,认为我在登录期间没有提示新的同意。 我收到以下错误。 “AADSTS65005:应用程序'{GUID}'要求访问已删除或不再可用资源的权限。请与应用程序供应商联系。” 我删除了prompt = consent并开始摆弄Azure中的权限,现在我遇到了同样的错误。
我改变了一切,但我仍然得到错误,但这只发生在我的用户身上。 其他人仍然可以毫无问题地登录。
所以我的问题实际上分为两部分:
尝试获取API的访问令牌时的第一个错误。 不知何故,我需要提示用户同意,但我使用的是adal.js,它使用隐形的iframe静态检索键。 我想在用户登录Web应用程序时同意。 这可能吗?
我的用户无法再登录我们的网络应用程序了。 其他人都可以,之前有人遇到过这个吗?
该产品是使用React编写的SPA Web应用程序,我们使用adal.js(adal-vanilla)作为对azure广告进行身份验证的库。
更新最后得到了一些工作。 不是所有的方式,但至少它是一个开始。
现在的问题是来自其他租户的用户未获得访问API的同意。
可以使用prompt = admin_consent修复同意。
至于第二个问题,您可以将Web应用程序添加为API的已知客户端应用程序 。 当用户对Web应用程序进行身份验证时,这将允许同时同意。
为此,请在Azure Portal的Azure AD刀片中找到API应用程序注册。 然后打开它的清单(应用刀片上有一个Manifest按钮)。 应该有一个“knownClientApplications”属性。 在阵列中添加Web应用程序的客户端ID并保存清单。
例如:
"knownClientApplications": [
"bda6ffff-ffff-ffff-ffff-ffff8bf8c57f"
],
不知怎的,问题得到解决,我不是百分之百确定如何或为什么但是这里是我执行的步骤,如果有人发现自己处于类似情况:
"availableToOtherTenants": true, "knownClientApplications": [ "{client app application id}" ],
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.