사용자 풀에 OIDC 자격 증명 공급자 추가
OpenID Connect(OpenID Connect)

참고
서드 파티(페더레이션)를 통한 로그인을 Amazon Cognito 사용자 풀에서 사용할 수 있습니다. 이 기능은 Amazon Cognito 자격 증명 풀(페더레이션 자격 증명)을 통한 페더레이션과 무관합니다.
AWS Management Console에서 AWS CLI를 통해 또는 사용자 풀 API 메서드 CreateIdentityProvider를 사용하여 OIDC IdP를 사용자 풀에 추가할 수 있습니다.
필수 조건
시작하려면 다음이 필요합니다.
-
앱 클라이언트와 사용자 풀 도메인이 있는 사용자 풀. 자세한 내용은 사용자 풀 생성을 참조하세요.
-
다음과 같은 구성의 OIDC IdP:
-
client_secret_post
클라이언트 인증을 지원합니다. Amazon Cognito는 IdP에 대한 OIDC 검색 엔드포인트에서token_endpoint_auth_methods_supported
신청을 확인하지 않습니다. Amazon Cognito는client_secret_basic
클라이언트 인증을 지원하지 않습니다. 클라이언트 인증에 대한 자세한 내용은 OpenID Connect 설명서에서 클라이언트 인증을 참조하세요. -
openid_configuration
,userInfo
및jwks_uri
와 같은 OIDC 엔드포인트에만 HTTPS를 사용합니다. -
OIDC 엔드포인트에만 TCP 포트 80 및 443을 사용합니다.
-
HMAC-SHA 또는 RSA 알고리즘을 사용하여 ID 토큰에만 서명합니다.
-
키 ID
kid
클레임을jwks_uri
에 게시하며 토큰에kid
클레임을 포함합니다.
-
1단계: OIDC IdP로 등록
Amazon Cognito로 OIDC IdP를 생성하려면 먼저 애플리케이션을 OIDC IdP에 등록하여 클라이언트 ID와 클라이언트 암호를 받아야 합니다.
OIDC IdP로 등록하려면
-
OIDC IdP에서 개발자 계정을 생성합니다.
OIDC IdP 링크OIDC IdP 설치 방법 OIDC 검색 URL Salesforce https://login.salesforce.com
Ping Identity https://
Your Ping domain address
:9031/idp/userinfo.openid예:
https://pf.company.com:9031/idp/userinfo.openid
Okta https://
Your Okta subdomain
.oktapreview.com또는
https://
Your Okta subdomain
.okta.comMicrosoft Azure Active Directory (Azure AD) https://login.microsoftonline.com/
{tenant}
/v2.0Google https://accounts.google.com
참고
Amazon Cognito는 통합 소셜 로그인 IdP로 Google을 제공합니다. 통합 IdP 사용을 권장합니다. 사용자 풀에 소셜 자격 증명 공급자 추가 섹션을 참조하세요.
-
/oauth2/idpresponse
엔드포인트가 있는 사용자 풀 도메인 URL을 OIDC IdP에 등록합니다. 그래야만 사용자를 인증할 때 나중에 Amazon Cognito에서 OIDC IdP를 수락합니다.https://
<your-user-pool-domain>
/oauth2/idpresponse -
콜백 URL을 Amazon Cognito 사용자 풀에 등록합니다. 이는 인증 성공 이후에 Amazon Cognito에서 사용자를 리디렉션하는 페이지의 URL입니다.
https://
www.example.com
-
사용자의 범위
를 선택합니다. 범위 openid는 필수 항목입니다. 이메일 범위가 있어야만 이메일 및 email_verified 클레임 에 대한 액세스 권한을 받을 수 있습니다. -
OIDC IdP에서 클라이언트 ID와 클라이언트 암호를 제공합니다. 사용자 풀에서 OIDC IdP를 설정할 때 이 둘을 사용하게 됩니다.
예: 사용자 풀에서 Salesforce를 OIDC IdP로 사용
Salesforce 같은 OIDC 호환 IdP와 사용자 풀 사이에 신뢰를 설정해야 할 때 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(Start URL) 아래에서 Salesforce IdP로 로그인하는 사용자 풀 도메인에 대한
/authorize
엔드포인트에 URL을 입력합니다. 사용자가 연결된 앱에 액세스하면 Salesforce가 사용자를 이 URL로 안내하여 로그인을 완료합니다. 그런 다음 Salesforce는 사용자를 앱 클라이언트와 연결된 콜백 URL로 리디렉션합니다.https://
<your_user_pool_domain>
/authorize?response_type=code&client_id=<your_client_id>
&redirect_uri=https://www.example.com
&identity_provider=CorpSalesforce
-
OAuth 설정(OAuth settings)을 사용하고 콜백 URL(Callback URL)에 사용자 풀 도메인에 대한
/oauth2/idpresponse
엔드포인트의 URL을 입력합니다. 이는 Salesforce에서 Amazon Cognito가 OAuth 토큰과 교환하는 권한 부여 코드를 발행하는 URL입니다.https://
<your_user_pool_domain>
/oauth2/idpresponse
-
-
사용자의 범위
를 선택합니다. openid 범위를 포함해야 합니다. email 및 email_verified claims 에 대한 액세스 권한을 부여하려면 email 범위를 추가합니다. 범위를 공백으로 구분합니다. -
생성을 선택합니다.
Salesforce에서는 클라이언트 ID를 사용자 키(Consumer Key)로 부르고, 클라이언트 암호를 사용자 암호(Consumer Secret)로 부릅니다. 클라이언트 ID와 클라이언트 암호를 메모합니다. 다음 섹션에서 이 둘을 사용합니다.
2단계: 사용자 풀에 OIDC IdP 추가
이 섹션에서는 OIDC IdP에서 OIDC 기반 인증 요청을 처리하도록 사용자 풀을 구성합니다.
OIDC IdP를 추가하려면(Amazon Cognito 콘솔)
OIDC IdP 추가
-
Amazon Cognito 콘솔
로 이동합니다. 메시지가 표시되면 AWS 자격 증명을 입력합니다. -
탐색 메뉴에서 [사용자 풀(User Pools)]을 선택합니다.
-
목록에서 기존 사용자 풀을 선택하거나 사용자 풀을 생성합니다.
-
[로그인 환경(Sign-in experience)] 탭을 선택합니다. 페더레이션 로그인(Federated sign-in)을 찾아서 자격 증명 공급자 추가(Add an identity provider)를 선택합니다.
-
OpenID Connect IdP를 선택합니다.
-
공급자 이름(Provider name)에 고유한 이름을 입력합니다.
-
[클라이언트 ID(Client ID)]에 공급자로부터 받은 클라이언트 ID를 입력합니다.
-
클라이언트 암호(Client secret)에 공급자로부터 받은 클라이언트 암호를 입력합니다.
-
이 공급자의 [권한 있는 범위(Authorized scopes)]를 입력합니다. 범위는 애플리케이션이 공급자로부터 요청할 사용자 속성(예:
name
,email
) 그룹을 정의합니다. OAuth 2.0사양에 따라 범위를 공백으로 구분해야 합니다. 사용자는 애플리케이션에 이러한 속성을 제공하는 것에 동의하라는 메시지를 받게 됩니다.
-
[속성 요청 메서드(Attribute request method)]를 선택하여 공급자가 운영하는 userInfo 엔드포인트에서 사용자 세부 정보를 가져오는 데 사용해야 하는 HTTP 메서드(GET 또는 POST)를 Amazon Cognito에 제공합니다.
-
[설정 메서드(Setup method)]를 선택하여 [발급자 URL을 통해 자동 채우기(Auto fill through issuer URL)] 또는 [수동 입력(Manual input)]으로 OpenID Connect 엔드포인트를 검색합니다. 공급자에게 Amazon Cognito가
authorization
,token
,userInfo
및jwks_uri
엔드포인트의 URL을 검색할 수 있는 퍼블릭.well-known/openid-configuration
엔드포인트가 있는 경우 발급자 URL을 통해 자동 채우기(Auto fill through issuer URL)를 사용합니다. -
발급자 URL이나 IdP의
authorization
,token
,userInfo
,jwks_uri
엔드포인트 URL을 입력합니다.참고
URL은
https://
로 시작해야 하며, 슬래시/
로 끝나면 안 됩니다. 포트 번호 443 및 80만 이 URL에 사용할 수 있습니다. 예를 들어, Salesforce는 다음 URL을 사용합니다.https://login.salesforce.com
자동 채우기를 선택하는 경우 검색 문서에서
authorization_endpoint
,token_endpoint
,userinfo_endpoint
,jwks_uri
값에 HTTPS를 사용해야 합니다. 그렇지 않으면 로그인이 실패합니다. -
OIDC 클레임 sub는 기본값으로 사용자 풀 속성 [사용자 이름(Username)]에 매핑됩니다. 이 외의 OIDC 클레임
도 사용자 풀 속성으로 매핑할 수 있습니다. OIDC 클레임을 입력하고, 드롭다운 목록에서 해당하는 사용자 풀 속성을 선택합니다. 예를 들어, 클레임 email은 주로 사용자 풀 속성 Email로 매핑됩니다. -
IdP의 속성을 사용자 풀에 매핑합니다. 자세한 내용은 사용자 풀에 대한 자격 증명 공급자 속성 매핑 지정을 참조하세요.
-
생성(Create)을 선택합니다.
-
앱 클라이언트 통합(App client integration) 탭의 목록에서 앱 클라이언트(App clients) 중 하나를 선택한 다음 호스트된 UI 설정 편집(Edit hosted UI settings)을 선택합니다. 자격 증명 공급자(Identity providers)에서 앱 클라이언트에 새 OIDC IdP를 추가합니다.
-
변경 사항 저장(Save changes)을 선택합니다.
OIDC IdP를 추가하려면(AWS CLI)
-
CreateIdentityProvider API 메서드의 파라미터 설명을 참조하세요.
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://
<your_user_pool_domain>
/oauth2/authorize?response_type=code&client_id=<your_client_id>
&redirect_uri=https://www.example.com
사용자 풀 도메인 이름(Domain name) 콘솔 페이지에서 사용자의 도메인을 찾을 수 있습니다. client_id는 일반 설정 페이지에 있습니다. redirect_uri 파라미터용 콜백 URL을 사용합니다. 이것은 인증 성공 이후에 사용자가 리디렉션되는 페이지의 URL입니다.