登录流程
PKCE(Proof Key for Code Exchange)是通过一种密码学手段确保恶意第三方即使截获授权码Authorization Code,也无法向认证服务器交换Access Token,同时不需要在客户端存储Client Secret,避免Client Secret被泄露,这种模式主要用于客户端获取用户信息。
# 登录流程
采用PKCE模式整体流程为:
用户访问第三方应用,第三方应用随机生成一串长度43-128的字符并作URL-Safe的Base64编码处理,结果用作 code_verifier,将这串字符通过SHA256哈希,并用URL-Safe的Base64编码处理,结果用作code_challenge。
第三方应用使用code_challenge向竹云IDaaS发起授权登录请求,用户允许授权第三方应用后,竹云IDaaS将重定向到第三方应用,并且带上授权码code参数。
第三方应用使用授权码code和code_verifier调用竹云IDaaS API接口换取访问令牌access_token和 ID令牌 id_token。
第三方应用对id_token进行验签,解析id token获取用户信息。
# 开发步骤
竹云IDaaS平台采用 OIDC PKCE协议授权码模式接入开发流程如下: