기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
사용자 풀에서 OIDC ID 제공업체 사용
사용자는 OIDC(OpenID Connect) ID 제공업체(idP)의 기존 계정을 사용하여 애플리케이션에 로그인할 수 있습니다. OIDC 제공업체를 사용하면 독립적인 Single Sign-On 시스템의 사용자가 기존 자격 증명을 제공하는 동안 애플리케이션은 사용자 풀의 공유 형식으로 OIDC 토큰을 받을 수 있습니다. 사용자 풀은 여러 외부 OIDC IdP와 애플리케이션 간의 중간 신뢰 당사자 역할도 할 수 있는 OIDC IdP입니다.
OIDC IdP로 로그인하는 사용자는 사용자 풀 애플리케이션에 액세스하기 위해 새 자격 증명 또는 정보를 제공할 필요가 없습니다. 애플리케이션은 로그인을 위해 사용자 풀을 백그라운드에서 애플리케이션의 토큰 형식을 표준화하는 도구로 사용하여 IdP로 자동으로 리디렉션할 수 있습니다. IdP 리디렉션에 대한 자세한 내용은 권한 부여 엔드포인트 섹션을 참조하세요.
다른 타사 ID 제공업체와 마찬가지로 OIDC 제공업체에 애플리케이션을 등록하고 사용자 풀에 연결하려는 IdP 애플리케이션에 대한 정보를 얻어야 합니다. 사용자 풀 OIDC IdP에는 클라이언트 ID, 클라이언트 보안 암호, 요청하려는 범위 및 제공업체 서비스 엔드포인트에 대한 정보가 필요합니다. 사용자 풀은 검색 엔드포인트에서 제공업체 OIDC 엔드포인트를 검색하거나 수동으로 입력할 수 있습니다. 또한 제공업체 ID 토큰을 검사하고 IdP와 사용자 풀의 속성 간에 속성 매핑을 생성해야 합니다.

참고
서드 파티(페더레이션)를 통한 로그인을 Amazon Cognito 사용자 풀에서 사용할 수 있습니다. 이 기능은 Amazon Cognito ID 풀을 사용하는 OIDC 페더레이션과 무관합니다.
사용자 풀 API 메서드 CreateIdentityProvider를 AWS Management Console사용하여 AWS CLI의 사용자 풀에 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
클레임을 포함합니다. -
유효한 루트 CA 신뢰 체인이 있는 만료되지 않은 퍼블릭 키를 제공합니다.
-
1단계: OIDC IdP로 등록
Amazon Cognito로 OIDC IdP를 생성하려면 먼저 애플리케이션을 OIDC IdP에 등록하여 클라이언트 ID와 클라이언트 보안 암호를 받아야 합니다.
OIDC IdP로 등록하려면
-
OIDC IdP에서 개발자 계정을 생성합니다.
OIDC IdP 링크 OIDC IdP 설치 방법 OIDC 검색 URL Salesforce https://
MyDomainName
.my.salesforce.com/.well-known/openid-configuration엔터프라이즈용 PingOne https://sso.connect.pingidentity.com/sso/as/authorization.oauth2
Okta https://
Your Okta subdomain
.okta.com.well-known/openid-configurationMicrosoft Entra ID https://login.microsoftonline.com/
{tenant}
/v2.0의 값에는 테넌트 ID,
organizations
, 또는common
가 포함될tenant
수 있습니다consumers
. -
/oauth2/idpresponse
엔드포인트가 있는 사용자 풀 도메인 URL을 OIDC IdP에 등록합니다. 그래야만 사용자를 인증할 때 나중에 Amazon Cognito에서 OIDC IdP를 수락합니다.https://
mydomain.us-east-1.amazoncognito.com
/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://
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 설정(OAuth settings)을 사용하고 콜백 URL(Callback URL)에 사용자 풀 도메인에 대한
/oauth2/idpresponse
엔드포인트의 URL을 입력합니다. 이는 Salesforce에서 Amazon Cognito가 OAuth 토큰과 교환하는 권한 부여 코드를 발행하는 URL입니다.https://
mydomain.us-east-1.amazoncognito.com
/oauth2/idpresponse
-
-
사용자의 범위
를 선택합니다. openid 범위를 포함해야 합니다. email 및 email_verified claims 에 대한 액세스 권한을 부여하려면 email 범위를 추가합니다. 범위를 공백으로 구분합니다. -
생성(Create)을 선택합니다.
Salesforce에서는 클라이언트 ID를 사용자 키(Consumer Key)로 부르고, 클라이언트 보안 암호를 사용자 보안 암호(Consumer Secret)로 부릅니다. 클라이언트 ID와 클라이언트 보안 암호를 메모합니다. 다음 섹션에서 이 둘을 사용합니다.
2단계: 사용자 풀에 OIDC IdP 추가
이 섹션에서는 OIDC IdP에서 OIDC 기반 인증 요청을 처리하도록 사용자 풀을 구성합니다.
OIDC IdP를 추가하려면(Amazon Cognito 콘솔)
OIDC IdP 추가
-
Amazon Cognito 콘솔
로 이동합니다. 메시지가 표시되면 AWS 자격 증명을 입력합니다. -
탐색 메뉴에서 [사용자 풀(User Pools)]을 선택합니다.
-
목록에서 기존 사용자 풀을 선택하거나 사용자 풀을 생성합니다.
-
소셜 및 외부 공급자 메뉴를 선택한 다음 자격 증명 공급자 추가를 선택합니다.
-
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)을 선택합니다.
-
앱 클라이언트 메뉴의 목록에서 앱 클라이언트를 선택하고 편집을 선택합니다. 앱 클라이언트에 새 OIDC 자격 증명 공급자를 추가하려면 로그인 페이지 탭으로 이동하여 관리형 로그인 페이지에서 편집 구성을 선택합니다.
-
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://
mydomain.us-east-1.amazoncognito.com
/oauth2/authorize?response_type=code&client_id=1example23456789
&redirect_uri=https://www.example.com
사용자 풀 도메인 이름(Domain name) 콘솔 페이지에서 사용자의 도메인을 찾을 수 있습니다. client_id는 일반 설정 페이지에 있습니다. redirect_uri 파라미터용 콜백 URL을 사용합니다. 이것은 인증 성공 이후에 사용자가 리디렉션되는 페이지의 URL입니다.