[1] 스프링 프로젝트에 애플 로그인 API 연동을 위한 Apple Developer 설정

[1] 스프링 프로젝트에 애플 로그인 API 연동을 위한 Apple Developer 설정 - (현재 글)

[2] 스프링 프로젝트에 애플 로그인 API 연동하기

 

Spring API Server에서 Apple Login API를 연동하여 앱(App)에 제공하기 위한 개발을 해봤습니다.

애플에게 사용자 인증 토큰을 발급받는 로직뿐 아니라 Android와 ios 12 이하 버전에서는 로그인 페이지를 앱에게 제공해주어야 합니다.

(ios 13 버전 이상에서는 SDK가 제공되는 걸로 알고 있습니다.)

 

나이스 한 코드를 작성할 실력은 부족하지만 Apple Developer Documentation을 보면서 프로세스를 이해하고 글을 작성해볼 기회를 가졌다는 것에 의미를 두도록 하겠습니다.

 

애플 로그인 API(Sign In with Apple) 연동을 하기 위해서는 Apple Developer 사이트에서 필요한 설정을 먼저 해줘야 합니다.

(참고로 Apple Developer에서 필요한 API 서비스를 이용하기 위해서는 매년 결제를 진행해야 이용할 수 있습니다.)

 

Account - Apple Developer 사이트로 이동하여 3가지 설정을 진행하도록 하겠습니다.

 

[1] App ID 등록하기

[그림 1.1] Account - Apple Developer

Account - Apple Developer 사이트로 이동 후 "Certificates, Identifiers & Profiles"를 클릭해주세요.

 


 

 

 

[그림 1.2] Identifiers 메뉴

"Identifiers" 메뉴로 이동 후 "+" 버튼을 클릭해주세요.


 

 

 

[그림 1.3] App IDs 선택

"App IDs"를 선택 후 진행해주세요.


 

 

 

[그림 1.4] App 선택

"App" 타입을 선택 후 진행해주세요.


 

 

 

[그림 1.5] App ID 정보 입력

"Description"에 해당 App ID에 대한 간략한 설명을 적고, "Bundle ID"는 네이밍 예시처럼 입력해주세요.

(ex. Bundle ID : com.domainname.appname)


 

 

 

[그림 1.6] Sign In with Apple 등록

아래로 스크롤하여 "Sign In with Apple"를 선택 후 "Edit"을 클릭해주세요.


 

 

 

[그림 1.7] "Sign In with Apple" 설정

"Enable as a primary App ID"를 선택하고, "Endpoint" URL를 작성해주세요.

Endpoint URL는 도메인 형식이며 기본 443 포트로 SSL 적용이 되어 있어야 합니다.

 

애플에서 유저가 "이메일 변경, 앱 서비스 해지, 애플 계정 탈퇴"를 했을 경우,

입력한 Endpoint URL로 유저 정보와 이벤트에 대한 PAYLOAD 데이터를 전송합니다.

 

만약, 상황이 여의치 않아서 URI를 갖추지 못하였다면 형식을 맞춰서 임의로 작성해주도록 합니다.

유저의 "이메일 변경, 앱 서비스 해지, 애플 계정 탈퇴"에 대해서는 테스트하지 못하겠지만

애플 로그인에 연동은 문제없이 진행할 수 있습니다.


 

 

 

[그림 1.8] App ID 등록 완료

App ID가 등록 완료되었습니다.

Team ID는 보안상의 이유로 이미지에서 지웠지만, 자신의 "Team ID"를 알고 있어 주세요.

Team ID는 클라이언트 시크릿(Client sercret)을 생성할 때 필요한 정보입니다.


 

 

 

 

[2] Services ID 등록하기

[그림 2.1] Services IDs 선택

이번에는 애플 로그인(Sign In with Apple)을 진행한 유저의 정보를 전달받기 위한 Services ID를 등록하겠습니다.

[그림 1.2]와 동일하게 "Identifiers" 메뉴에서 "+" 버튼을 클릭 후 "Services IDs"를 선택하여 진행해주세요.


 

 

 

[그림 2.2] Services ID 정보 입력

"Description"에 Services ID에 대한 간략한 설명을 입력하고

"Identifier"에 Services ID를 식별할 수 있는 도메인을 작성해주세요.

(ex. Identifier : com.domainname.appname)


 

 

 

[그림 2.3] Services ID 선택

Services ID가 등록되었다면 Identifiers 메뉴 리스트에서

등록한 Services ID를 클릭하여 설정 페이지로 이동해주세요.


 

 

 

[그림 2.4] Services ID 설정

Services ID 설정 페이지에서 "Sign In with Apple"를 선택 후 "Configure" 버튼을 클릭해주세요.


 

 

 

[그림 2.5] App ID와 Return URLs 등록

앞서 등록을 진행했던 App ID를 선택 후, "Domain""Return URLs"를 입력해주세요.

 

도메인이 준비가 안되었다면 임의의 도메인을 입력해주셔도 테스트에는 문제가 없습니다.

하지만, Return URLs는 현재 자신의 IP/Port, URL를 정확하게 입력해줘야 합니다.

등록한 Return URLs로 애플 로그인을 진행한 유저의 정보가 전달되기 때문입니다.

(Domain과 Return URLs은 여러 개 등록할 수 있습니다.)


 

 

 

[그림 2.6] Services ID 등록 완료

Services ID 등록이 완료되었습니다.

자신의 Services ID의 "Identifier"를 기억하고 있어야 합니다.

Services ID의 식별자(Identifier)는 client_id, aud의 값으로 사용됩니다.


 

 

 

 

[3] Private Key 생성하기

[그림 3.1] Keys 등록

클라이언트 시크릿(client_secret)을 생성할 때 사용할 비밀 키(private key)를 생성하도록 하겠습니다.

"Keys" 메뉴에서 "+" 버튼을 클릭해주세요.


 

 

 

[그림 3.2] Key 설정

Key Name을 입력 후,

"Sign in with Apple"를 선택 후 "Configure" 버튼을 클릭해주세요.


 

 

 

[그림 3.3] App ID 선택

앞서 생성했던 App ID를 선택해주세요.


 

 

 

[그림 3.4] Key 등록 완료

Private Key 생성을 위한 "Key" 등록은 비교적 쉽게 끝냈습니다.


 

 

 

[그림 3.5]

자신의 "Key ID"를 기억해주세요.

그리고 "Download" 버튼을 클릭하여 Private Key 정보가 들어있는 "AuthKey_[KeyID].p8" 파일을 다운로드하여주세요.

주의할 점은 다운로드는 최초 1회만 가능하고 이후에는 다시 다운로드하지 못하니 파일을 잘 보관해주도록 합니다.

(혹시, 파일을 잃어버렸다면 [그림 3.1]부터 다시 진행해주세요.)

 

Key ID와 파일은 클라이언트 시크릿(client secret)을 생성할 때 필요한 데이터입니다.


이상으로 애플 로그인 API 연동을 위한 Apple Developer의 3가지 설정을 완료했습니다.

설정에 대해서 다시 한번 정리해보도록 하겠습니다.

 

[1] App ID - 자신의 App 서비스를 생성하고, 서비스에 애플 로그인으로 가입한 유저에 대한 이벤트를 전달받기 위한 설정입니다.

클라이언트 시크릿을 생성할 때 사용될 Team ID를 기억해주세요.

(유저에 대한 이벤트는 "이메일 변경, 서비스 해지, 애플 계정 탈퇴"에 대한 것입니다.

Endpoint URL에 등록한 URL로 PAYLOAD라는 키로 JWT 데이터를 전달받을 수 있습니다.)

 

[2] Services ID - 애플 로그인을 진행한 유저의 정보를 전달받기 위한 설정입니다.

client_idaud로 사용될 Identifier를 기억해주세요.

(Return URLs에 등록된 URL로 유저 정보에 대한 JSON 데이터를 전달받을 수 있습니다.)

 

[3] Key - 클라이언트 시크릿을 생성할 때 필요한 Private Key를 생성하기 위한 설정입니다.

Key ID.p8 파일은 기억해주세요.


모든 설정을 완료했으니,

다음 포스트에서 코드를 참고하여 확인해보도록 하겠습니다.

 

다음 포스트 읽으러 가기 ‣

댓글