Apple을 자격 증명 풀 IdP로 로그인 설정 - Amazon Cognito

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Apple을 자격 증명 풀 IdP로 로그인 설정

Amazon Cognito 자격 증명 풀은 Apple로 로그인과 함께 작동하여 모바일 애플리케이션 및 웹 애플리케이션 사용자에게 페더레이션 인증을 제공합니다. 이 섹션에서는 Apple로 로그인을 자격 증명 공급자(IdP)로 사용하여 애플리케이션을 등록하고 설정하는 방법을 설명합니다.

Apple로 로그인을 인증 공급자로 자격 증명 풀에 추가하려면 두 단계를 진행해야 합니다. 먼저 애플리케이션에서 Apple로 로그인을 통합한 후 자격 증명 풀에서 Sign in with Apple을 구성합니다. Apple로 로그인 설정에 대한 자세한 up-to-date 내용은 Apple 개발자 설명서의 Apple로 로그인을 위한 환경 구성을 참조하세요.

Sign in with Apple 설정

Apple로 로그인을 IdP로 구성하려면 애플리케이션을 Apple에 등록하여 클라이언트 ID를 받습니다.

  1. Apple에서 개발자 계정을 생성합니다.

  2. Apple 자격 증명으로 로그인합니다.

  3. 왼쪽 탐색 창에서 인증서 IDs 및 프로필 을 선택합니다.

  4. 왼쪽 탐색 창에서 Identifiers(식별자)를 선택합니다.

  5. 식별자(Identifiers) 페이지에서 +아이콘을 선택합니다.

  6. 새 식별자 등록 페이지에서 앱 IDs을 선택한 다음 계속 을 선택합니다.

  7. 앱 ID 등록(Register an App ID) 페이지에서 다음을 수행합니다.

    1. 설명에 설명을 입력합니다.

    2. Bundle ID(번들 ID)에서 식별자를 입력합니다. 이 번들 ID(Bundle ID)를 적어 둡니다. Apple을 자격 증명 풀의 공급자로 구성하려면 이 값이 필요합니다.

    3. 기능(Capabilities)에서 Apple로 로그인(Sign In with Apple)을 선택한 다음 편집(Edit)을 선택합니다.

    4. Sign in with Apple: 앱 ID 구성 페이지에서 앱에 적절한 설정을 선택합니다. 그런 다음 저장을 선택합니다.

    5. 계속을 선택합니다.

  8. 앱 ID 확인(Confirm your App ID) 페이지에서 등록(Register)을 선택합니다.

  9. Sign In with Apple을 네이티브 iOS 애플리케이션과 통합하려면 10단계로 이동합니다. 11단계는 Sign in with Apple JS와 통합하려는 애플리케이션을 위한 것입니다.

  10. 식별자 페이지에서 앱 IDs 메뉴를 선택한 다음 서비스 IDs를 선택합니다. + 아이콘을 선택합니다.

  11. 새 식별자 등록 페이지에서 서비스 IDs를 선택한 다음 계속 을 선택합니다.

  12. 서비스 ID 등록(Register a Services ID) 페이지에서 다음을 수행합니다.

    1. 설명에 설명을 입력합니다.

    2. Identifier(식별자)에 식별자를 입력합니다. 서비스 ID를 적어 둡니다. Apple을 자격 증명 풀의 공급자로 구성하려면 이 값이 필요합니다.

    3. Sign In with Apple을 선택한 다음 구성을 선택합니다.

    4. 웹 인증 구성(Web Authentication Configuration) 페이지에서 기본 앱 ID(Primary App ID)를 선택합니다. 웹 사이트 URLs에서 + 아이콘을 선택합니다. Domains and Subdomains(도메인 및 하위 도메인)에 앱의 도메인 이름을 입력합니다. 반환 에서 Apple로 로그인을 통해 인증한 후 인증이 사용자를 리디렉션하는 콜백을 URLs 입력합니다. URL

    5. Next(다음)를 선택합니다.

    6. 계속(Continue), 등록(Register)을 차례로 선택합니다.

  13. 왼쪽 탐색 창에서 를 선택합니다.

  14. 키(Keys) 페이지에 + 아이콘을 선택합니다.

  15. 새 키 등록(Register a New Key) 페이지에서 다음을 수행합니다.

    1. 키 이름에서 키 이름을 입력합니다.

    2. Apple로 로그인(Sign In with Apple)을 선택한 다음 구성(Configure)을 선택합니다.

    3. Configure Key(키 구성) 페이지에서 Primary App ID(기본 앱 ID)를 선택하고 저장을 선택합니다.

    4. 계속(Continue), 등록(Register)을 차례로 선택합니다.

참고

Apple로 로그인을 네이티브 iOS 애플리케이션과 통합하려면 Implementing User Authentication with Sign in with Apple(Apple로 로그인으로 사용자 인증 구현)을 참조하세요.

Apple로 로그인을 네이티브 iOS 이외의 플랫폼에서 통합하려면 Sign in with Apple JS(Apple JS로 로그인)를 참조하세요.

Amazon Cognito 페더레이션 자격 증명 콘솔에서 외부 공급자 구성

다음 절차를 사용하여 외부 공급자를 구성합니다.

Sign in with Apple ID 제공업체(idP)를 추가하려면
  1. Amazon Cognito 콘솔에서 자격 증명 풀을 선택합니다. 자격 증명 풀을 선택합니다.

  2. 사용자 액세스 탭을 선택합니다.

  3. ID 제공업체 추가를 선택합니다.

  4. Sign in with Apple을 선택합니다.

  5. Apple Developer 로 생성한 OAuth 프로젝트의 서비스 ID를 입력합니다. 자세한 내용은 Sign in with Apple 설명서의 Sign in with Apple로 사용자 인증을 참조하세요.

  6. Amazon Cognito가 이 공급자를 통해 인증된 사용자에게 보안 인증을 발급할 때 요청하는 역할을 설정하려면 역할 설정을 구성하세요.

    1. 인증된 역할을 구성할 때 설정한 기본 역할을 이 IdP의 사용자에게 할당하거나 규칙을 사용하여 역할 선택을 선택할 수 있습니다.

      1. 규칙을 사용하여 역할 선택을 선택한 경우 사용자 인증의 소스 클레임, 클레임 비교 기준으로 사용할 운영자, 이 역할 선택과 일치하도록 하는 , 역할 할당이 일치할 때 할당할 역할을 입력합니다. 다른 조건에 따라 추가 규칙을 생성하려면 다른 항목 추가를 선택합니다.

      2. 역할 해결을 선택합니다. 사용자의 클레임이 규칙과 일치하지 않는 경우 보안 인증을 거부하거나 인증된 역할의 보안 인증을 발급할 수 있습니다.

  7. Amazon Cognito가 이 공급자를 통해 인증한 사용자에게 보안 인증을 발급할 때 할당하는 보안 주체 태그를 변경하려면 액세스 제어를 위한 속성을 구성합니다.

    1. 보안 주체 태그를 적용하지 않으려면 비활성을 선택합니다.

    2. sub 및 aud 클레임 기반 보안 주체 태그를 적용하려면 기본 매핑 사용을 선택합니다.

    3. 보안 주체 태그에 대한 속성의 자체 사용자 지정 스키마를 생성하려면 사용자 지정 매핑 사용을 선택합니다. 그런 다음 태그에 표시하려는 각 클레임에서 소싱하려는 태그 키를 입력합니다.

  8. 변경 사항 저장(Save changes)을 선택합니다.

Amazon Cognito 페더레이션 자격 증명 CLI 예제에서 공급자로 Apple에 로그인

이 예에서는 Apple로 로그인을 IdP로 사용하여 MyIdentityPool이라는 자격 증명 풀을 생성합니다.

aws cognito-identity create-identity-pool --identity-pool-name MyIdentityPool --supported-login-providers appleid.apple.com="sameple.apple.clientid"

자세한 내용은 자격 증명 풀 생성 섹션을 참조하세요.

Amazon Cognito 자격 증명 ID 생성

이 예에서는 Amazon Cognito ID를 생성(또는 검색)합니다. 이는 퍼블릭API이므로 이 를 호출하는 데 자격 증명이 필요하지 않습니다API.

aws cognito-identity get-id --identity-pool-id SampleIdentityPoolId --logins appleid.apple.com="SignInWithAppleIdToken"

자세한 내용은 get-id 섹션을 참조하세요.

Amazon Cognito 자격 증명 ID의 자격 증명 가져오기

이 예제에서는 제공된 자격 증명 ID 및 Sign in with Apple 로그인의 자격 증명을 반환합니다. 이는 퍼블릭API이므로 이 를 호출하는 데 자격 증명이 필요하지 않습니다API.

aws cognito-identity get-credentials-for-identity --identity-id SampleIdentityId --logins appleid.apple.com="SignInWithAppleIdToken"

자세한 내용은 섹션을 참조하세요. get-credentials-for-identity

Sign in with Apple 사용: Android

Apple은 Android용 Apple로 로그인SDK을 지원하는 를 제공하지 않습니다. 대신 웹 보기에서 웹 흐름을 사용할 수 있습니다.

세션 객체를 사용하여 Apple로 로그인하여 상태를 추적합니다. Amazon Cognito는 이 세션 객체의 ID 토큰을 사용하여 사용자를 인증하고, 고유 식별자를 생성하고, 필요한 경우 사용자에게 다른 AWS 리소스에 대한 액세스 권한을 부여합니다.

@Override public void onSuccess(Bundle response) { String token = response.getString("id_token"); Map<String, String> logins = new HashMap<String, String>(); logins.put("appleid.apple.com", token); credentialsProvider.setLogins(logins); }

Sign in with Apple 사용: iOS - Objective-C

Apple은 네이티브 iOS 애플리케이션에서 Apple로 로그인에 대한 SDK 지원을 제공했습니다. 네이티브 iOS 디바이스에서 Apple로 로그인으로 사용자 인증을 구현하려면 Apple 설명서에서 Implementing User Authentication with Sign in with Apple(Apple로 로그인으로 사용자 인증 구현)을 따르세요.

Amazon Cognito는 ID 토큰을 사용하여 사용자를 인증하고, 고유 식별자를 생성하고, 필요한 경우 사용자에게 다른 AWS 리소스에 대한 액세스 권한을 부여합니다.

(void)finishedWithAuth: (ASAuthorizationAppleIDCredential *)auth error: (NSError *) error { NSString *idToken = [ASAuthorizationAppleIDCredential objectForKey:@"identityToken"]; credentialsProvider.logins = @{ "appleid.apple.com": idToken }; }

Sign in with Apple 사용: iOS - Swift

Apple은 네이티브 iOS 애플리케이션에서 Apple로 로그인에 대한 SDK 지원을 제공했습니다. 네이티브 iOS 디바이스에서 Apple로 로그인으로 사용자 인증을 구현하려면 Apple 설명서에서 Implementing User Authentication with Sign in with Apple(Apple로 로그인으로 사용자 인증 구현)을 따르세요.

Amazon Cognito는 ID 토큰을 사용하여 사용자를 인증하고, 고유 식별자를 생성하고, 필요한 경우 사용자에게 다른 AWS 리소스에 대한 액세스 권한을 부여합니다.

iOS에서 Apple로 로그인 설정에 대한 자세한 내용은 Set up Sign in with Apple(Apple로 로그인 설정)을 참조하세요.

func finishedWithAuth(auth: ASAuthorizationAppleIDCredential!, error: NSError!) { if error != nil { print(error.localizedDescription) } else { let idToken = auth.identityToken, credentialsProvider.logins = ["appleid.apple.com": idToken!] } }

Apple에서 로그인 사용: JavaScript

Apple은 용 Apple 로그인SDK을 지원하는 를 제공하지 않습니다 JavaScript. 대신 웹 보기에서 웹 흐름을 사용할 수 있습니다.

세션 객체를 사용하여 Apple로 로그인하여 상태를 추적합니다. Amazon Cognito는 이 세션 객체의 ID 토큰을 사용하여 사용자를 인증하고, 고유 식별자를 생성하고, 필요한 경우 사용자에게 다른 AWS 리소스에 대한 액세스 권한을 부여합니다.

function signinCallback(authResult) { // Add the apple's id token to the Amazon Cognito credentials login map. AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'IDENTITY_POOL_ID', Logins: { 'appleid.apple.com': authResult['id_token'] } }); // Obtain AWS credentials AWS.config.credentials.get(function(){ // Access AWS resources here. }); }

Sign in with Apple 사용: Xamarin

Xamarin용 Apple로 로그인SDK을 지원하는 이 없습니다. 대신 웹 보기에서 웹 흐름을 사용할 수 있습니다.

세션 객체를 사용하여 Apple로 로그인하여 상태를 추적합니다. Amazon Cognito는 이 세션 객체의 ID 토큰을 사용하여 사용자를 인증하고, 고유 식별자를 생성하고, 필요한 경우 사용자에게 다른 AWS 리소스에 대한 액세스 권한을 부여합니다.

토큰을 받으면 CognitoAWSCredentials에서 토큰을 설정할 수 있습니다.

credentials.AddLogin("appleid.apple.com", token);