AWS SSO OIDC CreateToken API 详解#


ref: https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html

为使用 client secret 进行身份验证的客户端创建并返回访问令牌和刷新令牌。

访问令牌可用于获取配置的 AWS 账户的短期凭证或使用 bearer 身份验证访问 API。

请求语法#


JSON
POST /token HTTP/1.1Content-type: application/json {   "clientId": "string",   "clientSecret": "string",   "code": "string",   "codeVerifier": "string",   "deviceCode": "string",   "grantType": "string",   "redirectUri": "string",   "refreshToken": "string",   "scope": [ "string" ]}

响应语法#


JSON
HTTP/1.1 200Content-type: application/json {   "accessToken": "string",   "expiresIn": number,   "idToken": "string",   "refreshToken": "string",   "tokenType": "string"}

如果操作成功,服务器将发回 HTTP 200 响应

响应 JSON 中各个字段的含义如下:

实例#


URL 地址:https://oidc.{region}.amazonaws.com

这里的 region 替换成实际的 region 即可。

注意:以下例子中,为了便于展示,对所有的 JSON 进行了格式化。

OAuth#


我们下面示例中都是用的 Authorization Code 授权类型。

在这种情况下,我们需要设置请求中的 code, codeVerifier, grantType, redirectUri.

对于 code, codeVerifier, 如何获取呢?

Bash
// 初始用户认证请求https://oidc.us-east-1.amazonaws.com/authorize?client_id=xxxx&response_type=code&redirect_uri=http%3A%2F%2F127.0.0.1%3A37117&state=xxxx%3D%3D&code_challenge=xxxx&code_challenge_method=S256 // 用户在浏览器中进行授权 // 授权成功后, 我们从 redirectUri 处获取响应:/?code=xxxxJ&state=aHRxxxxNw%3D%3D

获取一个全新的 Token#


1. 请求#


HTTP
POST /token HTTP/1.1Host: oidc.us-east-1.amazonaws.comAccept-Encoding: gzip, deflateConnection: closeContent-Type: application/jsonContent-Length: 3336 {  "clientId":"zyrRc_xprD0YDHd4KYgtR3VzLWVhc3QtMQ",  "clientSecret":******,  "code":"eyJraWQiOiJrZXktMTU2NDAyODA3U....P9L913k7kF1q39bz9sFd7Ngm770D7x1y63IHJ",  "codeVerifier":"yg3zZkeWwzHO4uibgHMyfomhDd7Qv6yd-OXym2I1PZo",  "grantType":"authorization_code",  "redirectUri":"http:\/\/127.0.0.1:50804"}

2. 响应#


HTTP
HTTP/1.1 200 OKDate: Wed, 10 Sep 2025 03:11:21 GMTContent-Type: application/jsonContent-Length: 661Connection: closex-amzn-RequestId: ab85796c-380b-4498-a115-12223fa8edc3 {  "accessToken":******,  "aws_sso_app_session_id":"xxxxxxxx-7b60-4396-958e-xxxxx7af44bc",  "expiresIn":3600,  "idToken":null,  "issuedTokenType":null,  "originSessionId":null,  "refreshToken":******,  "tokenType":"Bearer"}

刷新已有 Token#


1. 请求#


HTTP
POST /token HTTP/1.1Host: oidc.us-east-1.amazonaws.comAccept-Encoding: gzip, deflateConnection: closeContent-Type: application/jsonContent-Length: 3229 {  "clientId":"UhVET-ZlxxxxxxXtxyc4Z3VzLWVhc3QtMQ",  "clientSecret":******,  "refreshToken":******,  "grantType":"refresh_token"}

2. 响应#


HTTP
HTTP/1.1 200 OKDate: Tue, 09 Sep 2025 19:41:00 GMTContent-Type: application/jsonContent-Length: 629Connection: closex-amzn-RequestId: 9b22a953-e8ef-41ef-b091-8f7c84f298c4 {  "accessToken":******,  "aws_sso_app_session_id":null,  "expiresIn":3600,  "idToken":null,  "issuedTokenType":null,  "originSessionId":null,  "refreshToken":******,  "tokenType":"Bearer"}

OAuth Authorization Code 示例#


Bash
https://oidc.us-east-1.amazonaws.com/authorize?client_id=zyrRc_xprD0YDHd4KYgtR3VzLWVhc3QtMQ&response_type=code&redirect_uri=http%3A%2F%2F127.0.0.1%3A37117&state=aHR0cDovLzEyNy4wLjAuMTozNzExNw%3D%3D&code_challenge=b12x3TqjqwFJfiMLjjsqdtB6VisJv9qA0qagXgkkOlI&code_challenge_method=S256
Bash
/?code=eyJraWQiOiJrZXktMTU2NDAyODA3OCIsImFsZyI6IkhTMzg0In0.eyJwbGFpbnRleHQiOiJEMEJHLXRkWFZfOS1nR1JqcXdFaG1wOU9FaW9ZRkhuR3R3YmxuV05DQVdVIiwiZXhwIjoxNzU3NDg5OTk5LCJ0eXBlIjoiYXV0aENvZGUifQ.EQEi1ugyiSlkfK0hSG1_LwM7qOvEKdLaANVe-kLR4XsTkw_I7l5TfyWdfJjkQT2J&state=aHR0cDovLzEyNy4wLjAuMTozNzExNw%3D%3D
Published at:
October 20, 2026
Keywords:
AWS
Amazon S3
SSO
OIDC
OAuth