本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用OIDC身分識別提供者與使用者集區
您可以讓已經擁有 OpenID Connect (OIDC) 身份提供者 ()
注意
Amazon Cognito 使用者集區提供透過第三方 (聯合身分) 登入。這項功能與透過 Amazon Cognito 身分集區 (聯合身分) 登入無關。
您可以在 AWS Management Console、透過或使用使用者集區方API法 CreateIdentityProvider,將 OIDC IdP 新增至您的使用者集區。 AWS CLI
必要條件
開始之前,您必須準備好以下事項:
-
具有應用程式用戶端和使用者集區網域的使用者集區。如需詳細資訊,請參閱建立使用者集區。
-
具有下列組態的 OIDC IdP:
-
支援
client_secret_post
用户端身分驗證。Amazon Cognito 不會在您的 IdP OIDC 探token_endpoint_auth_methods_supported
索端點檢查宣告。Amazon Cognito 不支援client_secret_basic
用户端身分驗證。如需用户端身分驗證的詳細資訊,請參閱 OpenID Connect 文件中的用戶端身分驗證。 -
僅用HTTPS於OIDC端點
openid_configuration
,例如userInfo
、和jwks_uri
。 -
僅將TCP通訊埠 80 和 443 用於OIDC端點。
-
僅使用 HMAC-SHA、ECDSA或RSA演算法簽署 ID 令牌。
-
在其
jwks_uri
發佈金鑰 IDkid
宣告並在其權杖中包含kid
宣告。 -
呈現具有有效根 CA 信任鏈的未過期公用金鑰。
-
步驟 1:使用 OIDC IdP 註冊
使用 Amazon Cognito 建立 OIDC IdP 之前,您必須向 I OIDC dP 註冊您的應用程式,以接收用戶端 ID 和用戶端密碼。
使用 OIDC IdP 進行註冊的步驟
-
使用 OIDC IdP 建立開發人員帳戶。
連結至 OIDC IdPsOIDCIdP 安裝方法 OIDC發現 URL Salesforce https://login.salesforce.com
Ping 身分 https://
Your Ping domain address
:ID /用戶信息例如:
https://pf.company.com:9031/idp/userinfo.openid
Okta https://
Your Okta subdomain
. 五月評論或
https://
Your Okta subdomain
.okta.comMicrosoft Azure Active Directory (Azure AD) https://login.microsoftonline.com/
{tenant}
/v2.0Google https://accounts.google.com
注意
Amazon Cognito 提供 Google 作為整合的社交登入 IdP。我們建議您使用整合的 IdP。請參閱 透過使用者集區使用社交身分提供者。
-
使用 OIDC IdP 向
/oauth2/idpresponse
端點註冊您的使用者集區網域URL。這樣可確保 OIDC IdP 稍後在對使用者進行身份驗證時接受來自 Amazon Cognito 的資料。https://
mydomain.us-east-1.amazoncognito.com
/oauth2/idpresponse -
在您的 Amazon Cognito 用戶池中註冊您的回調URL。這是 Amazon Cognito 在驗證成功後重新導向您URL的使用者的頁面。
https://
www.example.com
-
選擇您的範圍
。必須填入範圍 openid。需有 email 範圍,以授予 email 和 email_verified 宣告 的存取權。 -
I OIDC dP 為您提供用戶端 ID 和用戶端密碼。當您在使用者集區中設定 OIDC IdP 時,您將使用它們。
範例:使用 Salesforce 做為您的使用者集區的 OIDC IdP
當您想要在相容的 OIDC IdP (例如 Salesforce) OIDC 與您的使用者集區之間建立信任時,可以使用 IdP。
-
在 Salesforce 開發人員網站上建立帳戶
。 -
在 Salesforce 頁面上,執行下列其中一項操作:
-
如果使用的是 Lightning Experience,請選擇設定齒輪圖示,然後選擇 Setup Home (設定首頁)。
-
如果是使用 Salesforce Classic,則使用者界面頁首會顯示 Setup (設定),請選擇此選項。
-
如果是使用 Salesforce Classic,但頁首卻沒有出現 Setup (設定),則請從最上面導覽列中選擇您的姓名,然後從下拉式清單中選擇 Setup (設定)。
-
-
在左側導覽列中,選擇 Company Settings (公司設定)。
-
在導覽列,選擇 Domain (網域)、輸入網域,然後選擇 Create (建立)。
-
在左側導覽列,在 Platform Tools (平台工具) 下選擇 Apps (應用程式)。
-
選擇 App Manager (應用程式管理員)。
-
-
選擇 New connected app (新的連線應用程式)。
-
完成必要欄位。
在「開始」下URL,輸URL入使用 Salesforce IdP 登入之使用者集區網域的
/authorize
端點。當您的使用者存取您連線的應用程式時,Salesforce 會將他們引導URL至此頁面以完成登入。然後,Salesforce 會將使用者重新導向至您與應URL用程式用戶端相關聯的回呼。https://
mydomain.us-east-1.amazoncognito.com
/authorize?response_type=code&client_id=<your_client_id>
&redirect_uri=https://www.example.com
&identity_provider=CorpSalesforce
-
啟用OAuth設定並在回呼中輸入使用者集區網域的
/oauth2/idpresponse
端點URL。URL這就是 Salesforce 發出授權碼的URL地方,Amazon Cognito 其交換為令OAuth牌。https://
mydomain.us-east-1.amazoncognito.com
/oauth2/idpresponse
-
-
選擇您的範圍
。您必須包含範圍 OpenID。若要授予 email 與 email_verified 宣告 的存取權,請新增 email 範圍。以空格區隔範圍。 -
選擇 Create (建立)。
在 Salesforce 中,用戶端 ID 稱為消費者金鑰,而用戶端秘密則稱為消費者秘密。記下您的用戶端 ID 和用戶端秘密。您會在下一節中用到它們。
步驟 2:將 OIDC IdP 新增至您的使用者集區
在本節中,您可以將使用者集區設定OIDC為處理來自 OIDC IdP 的基礎驗證要求。
若要新增 I OIDC dP (Amazon Cognito 主控台)
新增 I OIDC dP
-
前往 Amazon Cognito 主控台
。如果出現提示,請輸入您的 AWS 認證。 -
從導覽選單中,選擇 Users Pools (使用者集區)。
-
從清單中選擇現有的使用者集區,或建立使用者集區。
-
選擇 Sign-in experience (登入體驗) 索引標籤。找到 Federated sign-in (聯合登入),然後選取 Add an identity provider (新增身分提供者)。
-
選擇 OpenID Connect IdP。
-
在 Provider name (供應商名稱) 中輸入唯一的名稱。
-
在 Client ID (用戶端 ID) 中輸入您從供應商處收到的用戶端 ID。
-
在 Client secret (用戶端密碼) 中輸入您從供應商處收到的用戶端密碼。
-
輸入此供應商的 Authorized scopes (授權範圍)。範圍會定義您的應用程式從您的供應商請求的使用者屬性群組 (例如
name
和email
)。範圍必須以空格分隔,遵循 OAuth2.0規範。 系統會要求您的使用者同意提供這些屬性給應用程式。
-
選擇屬性請求方法,將 Amazon Cognito 提供必須使用的HTTP方法 (GET或POST),以便從您的提供者操作的userInfo端點擷取使用者的詳細資料。
-
選擇安裝方法,透過發卡機自動填入URL或手動輸入來擷取 OpenID Connect 端點。URL當您URLs的供應商具有公有端點時,Amazon Cognito 可以擷取、和
.well-known/openid-configuration
jwks_uri
端點的公開端點時authorization
token
userInfo
,使用透過簽發者自動填寫。 -
輸入 IdP URLs 中的發卡機構URL或
authorization
token
userInfo
、、和jwks_uri
端點。注意
URL應該以斜線開頭
https://
,並且不應該以斜線結束/
。只有端口號 443 和 80 可以與此URL一起使用。例如,銷售力量使用這個URL:https://login.salesforce.com
如果您選擇 auto 填入,探索文件必須使HTTPS用下列值:
authorization_endpoint
token_endpoint
、userinfo_endpoint
、和jwks_uri
。否則登入會失敗。 -
根據預設,OIDC宣告子會對應至使用者集區屬性使用者名稱。您可以將其他OIDC宣告
對應至使用者集區屬性。輸入OIDC宣告,然後從下拉式清單中選擇對應的使用者集區屬性。例如,宣告 email 通常對應至使用者集區屬性 Email。 -
將 IdP 的屬性對應至您的使用者集區。如需詳細資訊,請參閱為您的使用者集區指定身分提供者屬性對應。
-
選擇 Create (建立)。
-
從 App client integration (應用程式用戶端整合) 標籤,在清單中選擇一個 App clients (應用程式用戶端),以及 Edit hosted UI settings (編輯託管 UI 設定)。將新的 OIDC IdP 新增至身分識別提供者下的應用程式用戶端。
-
選擇儲存變更。
若要新增 I OIDC dP ()AWS CLI
-
請參閱CreateIdentityProviderAPI方法的參數說明。
aws cognito-idp create-identity-provider --user-pool-id
string
--provider-namestring
--provider-type OIDC --provider-detailsmap
--attribute-mappingstring
--idp-identifiers (list) --cli-input-jsonstring
--generate-cli-skeletonstring
使用此供應商詳細資訊地圖:
{ "client_id": "string", "client_secret": "string", "authorize_scopes": "string", "attributes_request_method": "string", "oidc_issuer": "string", "authorize_url": "string", "token_url": "string", "attributes_url": "string", "jwks_uri": "string" }
步驟 3:測試您的 OIDC IdP 組態
您可以使用前兩節中的元素來建立授權URL,並使用它們來測試 OIDC IdP 組態。
https://
mydomain.us-east-1.amazoncognito.com
/oauth2/authorize?response_type=code&client_id=1example23456789
&redirect_uri=https://www.example.com
您可以在使用者集區 Domain name (網域名稱) 主控台頁面上尋找您的網域。client_id 位於 General settings (一般設定) 頁面上。URL對重定向參數使用您的回調。這是URL成功驗證後將重新導向使用者的頁面。