進行 OIDC 角色 SSO 時,透過呼叫 AssumeRoleWithOIDC 介面,取得扮演 RAM 角色的臨時身分憑證(STS Token)。
介面說明
前提條件
確保已從外部身分提供者(IdP)取得 OIDC 權杖(OIDC Token)。
確保已在 RAM 中建立了 OIDC 身分提供者。具體操作,請參見建立 OIDC 身分提供者或 CreateOIDCProvider 。
確保已在 RAM 中建立了可信實體為 OIDC 身分提供者的 RAM 角色。具體操作,請參見建立可信實體為身分提供者的 RAM 角色或 CreateRole 。
調試
您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。
調試
授權資訊
請求參數
|
名稱 |
類型 |
必填 |
描述 |
樣本值 |
| OIDCProviderArn |
string |
否 |
OIDC 身分提供者的 ARN。 您可以透過 RAM 主控台或 API 檢視 OIDC 身分提供者的 ARN。具體如下:
|
acs:ram::113511544585****:oidc-provider/TestOidcIdp |
| RoleArn |
string |
否 |
需要扮演的 RAM 角色 ARN。 您可以透過 RAM 主控台或 API 檢視角色 ARN。具體如下:
|
acs:ram::113511544585****:role/testoidc |
| OIDCToken |
string |
否 |
由外部 IdP 簽發的 OIDC 權杖(OIDC Token)。 長度:4~20000 個字元。 說明
需要輸入原始 OIDC Token,無需 Base64 解碼。 |
eyJraWQiOiJKQzl3eHpyaHFKMGd0**** |
| Policy |
string |
否 |
為 STS Token 額外新增的一個權限原則,進一步限制 STS Token 的權限。具體如下:
長度:1~2048 個字元。 |
{"Statement": [{"Action": ["*"],"Effect": "Allow","Resource": ["*"]}],"Version":"1"} |
| DurationSeconds |
integer |
否 |
Token 有效期間。單位:秒。 預設值:3600。最小值:900。最大值: 關於設定角色最大工作階段時間 |
3600 |
| RoleSessionName |
string |
是 |
角色工作階段名稱。 該參數為使用者自訂參數。通常設定為呼叫該 API 的使用者身分,例如:使用者名稱。在操作審計日誌中,即使是同一個 RAM 角色執行的操作,也可以根據不同的 RoleSessionName 來區分實際操作者,以實現使用者層級的存取審計。 格式:包含英文字母、數字、半形句號(.)、at(@)、短橫線(-)和底線(_)。 長度:2~64 個字元。 |
TestOidcAssumedRoleSession |
由於 AssumeRoleWithOIDC 介面使用 OIDC Token 進行身分驗證,可以匿名存取,因此不需要提供公用請求參數中的 Signature、SignatureMethod、SignatureVersion 和 AccessKeyId 參數。關於公用請求參數的詳情,請參見公用請求參數。
返回參數
|
名稱 |
類型 |
描述 |
樣本值 |
|
object |
返回參數。 |
||
| RequestId |
string |
請求 ID。 |
3D57EAD2-8723-1F26-B69C-F8707D8B565D |
| OIDCTokenInfo |
object |
解析的 OIDC Token 資訊。 |
|
| Subject |
string |
OIDC 主體。 對應 OIDC Token 中的 |
KryrkIdjylZb7agUgCEf**** |
| Issuer |
string |
OIDC 簽發者 URL。 對應 OIDC Token 中的 |
https://dev-xxxxxx.okta.com |
| ClientIds |
string |
OIDC 受眾。多個之間用半形逗號(,)分隔。 對應 OIDC Token 中的 |
496271242565057**** |
| ExpirationTime |
string |
OIDC Token 的過期時間(UTC 時間)。 |
2021-10-20T04:27:09Z |
| IssuanceTime |
string |
OIDC Token 的簽發時間(UTC 時間)。 |
2021-10-20T03:27:09Z |
| VerificationInfo |
string |
OIDC Token 的驗證資訊。更多資訊,請參見管理 OIDC 身分提供者。 |
Success |
| AssumedRoleUser |
object |
角色扮演臨時身分。 |
|
| AssumedRoleId |
string |
臨時身分的 ID。 |
33157794895460**** |
| Arn |
string |
臨時身分的 ARN。 |
acs:ram::113511544585****:role/testoidc/TestOidcAssumedRoleSession |
| Credentials |
object |
臨時存取憑證(STS Token)。 |
|
| SecurityToken |
string |
安全性權杖。 說明
安全性權杖的長度不固定,我們強烈建議您不要對安全性權杖的最大長度做任何限制。 |
CAIShwJ1q6Ft5B2yfSjIr5bSEsj4g7BihPWGWHz**** |
| Expiration |
string |
Token 到期失效時間(UTC 時間)。 |
2021-10-20T04:27:09Z |
| AccessKeySecret |
string |
存取金鑰。 |
CVwjCkNzTMupZ8NbTCxCBRq3K16jtcWFTJAyBEv2**** |
| AccessKeyId |
string |
存取金鑰 ID。 |
STS.NUgYrLnoC37mZZCNnAbez**** |
| SourceIdentity |
string |
來源身分資訊。 在扮演角色時,可以指定扮演者的來源身分(SourceIdentity)作為工作階段的初始身分識別。該來源身分的值在持續扮演角色的鏈式工作階段中將一直存在,中途不可變更,可確保操作的可追溯性和安全性。 如果沒有設定來源身分資訊,則該欄位不會返回。 |
Alice |
樣本
正常返回樣本
JSON格式
{
"RequestId": "3D57EAD2-8723-1F26-B69C-F8707D8B565D",
"OIDCTokenInfo": {
"Subject": "KryrkIdjylZb7agUgCEf****",
"Issuer": "https://dev-xxxxxx.okta.com",
"ClientIds": "496271242565057****",
"ExpirationTime": "2021-10-20T04:27:09Z",
"IssuanceTime": "2021-10-20T03:27:09Z",
"VerificationInfo": "Success"
},
"AssumedRoleUser": {
"AssumedRoleId": "33157794895460****",
"Arn": "acs:ram::113511544585****:role/testoidc/TestOidcAssumedRoleSession"
},
"Credentials": {
"SecurityToken": "CAIShwJ1q6Ft5B2yfSjIr5bSEsj4g7BihPWGWHz****",
"Expiration": "2021-10-20T04:27:09Z",
"AccessKeySecret": "CVwjCkNzTMupZ8NbTCxCBRq3K16jtcWFTJAyBEv2****",
"AccessKeyId": "STS.NUgYrLnoC37mZZCNnAbez****"
},
"SourceIdentity": "Alice"
}
錯誤碼
訪問錯誤中心查看更多錯誤碼。
變更歷史
更多資訊,參考變更詳情。