我有以下代码来创建AzureAD身份验证提供程序。
val options = OAuth2Options()
.setClientId(clientId)
.setClientSecret(clientSecret)
.setTenant(guid)
.setSite("https://login.microsoftonline.com/{tenant}/v2.0")
val authProvider = AzureADAuth.discover(vertx, options).await()
现在,如果我尝试使用浏览器登录,在Microsoft登录页面上会出现以下错误:
AADSTS900144: The request body must contain the following parameter: 'scope'.
查看URL,确实没有作用域参数:
https://login.microsoftonline.com/xx-xx-xx-xx-xx/oauth2/v2.0/authorize?state=duF2O-eO&redirect_uri=http%3A%2F%2Flocalhost%3A9339%2Fazure-callback&response_type=code&client_id=xx-xx-xx-xx-xx
当我用Cogito而不是Azure做同样的事情时,它工作起来没有问题,即使在请求中也没有范围。
我遗漏了什么?这是Vert.x Side还是Azure?
1条答案
按热度按时间zfciruhq1#
正在从Azure Active Directory服务中冒出错误消息:
Azure始终要求至少提供1个作用域。根据您使用vert.x的方式,您可以使用两种方法:
如果直接使用auth API,则需要在凭据请求中指定所需的作用域:
如果您从vertx-web应用程序使用它,则可以在OAuth2处理程序上指定所需的作用域:
作用域是特定于提供商的,因此您需要参考Azure文档以了解您应该使用哪些作用域:
https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-overview