Azure active directory注册了java spring应用程序,登录后返回代码而不是令牌



我已经在azure活动目录中注册了一个javaspring应用程序,用于Microsoft身份验证登录。Microsoft登录api应该将令牌返回到redirect_uri(在azure中定义,成功登录后客户端浏览器将被重定向(。

Azure是否提供附加到重定向_uri的令牌?token={az_token}

但我却得到了重定向uri?code={some_code},它不是JWT

预期=http://127.0.0.1:4200?token={az_token}获取=http://127.0.0.1:4200?code={some_code}

首先,您需要了解OAuth 2.0授权代码流和隐式授权流之间的区别。

对于授权代码流,我们应该请求授权代码,然后使用授权代码请求访问令牌。请注意请求中的&response_type=code。在这种情况下,您将获得http://127.0.0.1:4200?code={some_code}。然后可以使用此代码调用/token端点来获取访问令牌。

如果您想直接从/authorize端点获取访问令牌,则应该考虑隐式授予流。请参阅此示例。

//换行符仅用于易读性

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&response_type=token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&scope=https%3A%2F%2Fgraph.microsoft.com%2Fuser.read
&response_mode=fragment
&state=12345
&nonce=678910
&prompt=none
&login_hint=myuser@mycompany.com

在这种情况下,它包括&response_type=token,它将返回如下访问令牌:http://127.0.0.1:4200?token={access_token}

请记住,您需要在您的javaspring应用程序中启用隐式流。

最新更新