【发布时间】:2020-12-17 08:58:09
【问题描述】:
我们正在使用带有 PKCE 授权代码授予的 SPA。现在我们要使用 SSO 登录。 但是应用程序(SSO 应用程序)返回授权码,该授权码不能在会话或 SSO 系统的 cookie 中持久存在。
【问题讨论】:
标签: oauth-2.0 google-oauth single-sign-on azure-ad-b2c pkce
我们正在使用带有 PKCE 授权代码授予的 SPA。现在我们要使用 SSO 登录。 但是应用程序(SSO 应用程序)返回授权码,该授权码不能在会话或 SSO 系统的 cookie 中持久存在。
【问题讨论】:
标签: oauth-2.0 google-oauth single-sign-on azure-ad-b2c pkce
这是设计使然。在 PKCE 流程中,您执行两个请求以获取访问令牌。第一个请求是获取您已经完成的代码,第二个请求将使用此代码获取访问令牌。
从下面的示例请求中获取访问令牌会有所帮助
POST /{tenant}/oauth2/v2.0/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&scope=https%3A%2F%2Fgraph.microsoft.com%2Fmail.read
&code=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq3n8b2JRLk4OxVXr...
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&grant_type=authorization_code
&code_verifier=ThisIsntRandomButItNeedsToBe43CharactersLong
&client_secret=JqQX2PNo9bpM0uEihUPzyrh
详情请咨询MS Document
【讨论】: