-
Apple JS 구현을 위한 ServiceID 추가카테고리 없음 2026. 1. 28. 00:12반응형

위와 같은 요청이 들어왔습니다.
service ID와 redirect URI은 왜 요청하는지에 대해서 이해하고 요청을 처리해야할거같아요
처리 과정을 기록해봤습니다.

공식문서에서 안드로이드에서 웹뷰 방식으로 애플 로그인 구현은 Apple JS 를 권장하네요
Sign in with Apple JS 를 들여다보면 아래와 같은 코드 예시가 제공되고 있어요
<html> <head> <meta name="appleid-signin-client-id" content="[CLIENT_ID]"> <meta name="appleid-signin-scope" content="[SCOPES]"> <meta name="appleid-signin-redirect-uri" content="[REDIRECT_URI]"> <meta name="appleid-signin-state" content="[STATE]"> <meta name="appleid-signin-nonce" content="[NONCE]"> <meta name="appleid-signin-use-popup" content="true"> </head> </html>
html 로 렌더링 시 예시 코드를 html 로 렌더링해보면 익숙한 버튼이 표출됩니다.
이 버튼을 누를시 수행하는 요소들로 CLIENT_ID, SCOPES, REDIRECT_URI, STATE, NONCE가 필요한 것으로 보이네요
이제 어디서 필요한지는 이해됐으니,
service ID를 생성하며, 요청 받은 CLIENT_ID, redirect URI 를 대시보드에서 설정하고 팀원에게 전달하면 될 것 같습니다.
Configuring your environment for Sign in with Apple 에 순서들이 잘 정리 되어있습니다.
아래는 Create Service ID 에 해당되는 내용입니다.
Client ID & Redirect URI 추가
Apple 개발자 공홈에서 Certificates, Identifiers & Profiles에서 Identifiers를 선택합니다.
Identifiers 옆 + 를 눌러 service id를 추가합니다.

Services IDs를 체크하고 continue.

Description 에는 만들려는 service 에 대해서 설명하면 됩니다.
Identifier 에는 리버스 도메인을 권장합니다. (Ex:com.domainname.appname) 후에 제공 할 CLIENT_ID 에 해당합니다.
continue 후 register.
등록된 service id를 클릭하여 Sign in with Apple 체크 박스를 체크해 줍니다.

Configure를 누르면 아래처럼 팝업이 뜨는데

Primary App ID 에서 애플 로그인을 사용할 app id 를 선택하시고,
Domains and Subdomains 에는 애플 로그인을 사용할 도메인을 입력합니다.
Return URLs 에는 애플 로그인 이후 콜백값을 받을 url을 입력하면 됩니다.
(* Domains and Subdomains 는 프로토콜을 제외한 도메인 입력, Return URLs 은 프로토콜이 포함된 주소를 입력해야 합니다.)
save 후 continue 를 누르면 service id 및 redirect url 설정이 완료됩니다.
위에서 Apple JS 코드를 봤었는데요 해당 파라미터에 대한 궁금증을 정리해봤습니다.
CLIENT_ID
client id는 service id 등록 시에 입력했던 Identifier를 적어주면 됩니다.
SCOPES
scope는 애플로 로그인 시, 애플에서 받아올 유저의 정보를 의미합니다.
'name'과 'email'을 사용할 수 있습니다.REDIRECT_URI
redirect uri는 service id 등록시에 입력했던 redirect url을 입력하면 됩니다.
STATE
인증 요청의 현재 상태를 나타냅니다. 이 값은 권한 부여 응답에 포함된 상태 값과 비교함으로써 교차 사이트 요청 위조 공격(cross-site request forgery, CSRF)을 완화하는 데에도 사용됩니다.
어떠한 문자가 들어가도 상관없지만, 아무도 추정할 수 없도록 유니크한 값이어야 합니다.NONCE
ID Token 재사용/위조방지 검증을 위해 제공하는 고유한 일회용 문자열입니다.
이 값은 OIDC의 재플레이 공격을 방지하기 위해서도 사용됩니다.이 값을 설정시 response에서 Apple이 발급해주는 id_token(JWT) 안에 nonce(또는 nonce의 해시)가 포함됩니다.
# 참고 자료
Configuring your webpage for Sign in with Apple | Apple Developer Documentation
Prepare your webpage to authorize users through Sign in with Apple.
developer.apple.com
https://developer.apple.com/help/account/identifiers/register-a-services-id/?utm_source=chatgpt.com
Register a Services ID - Identifiers - Account - Help - Apple Developer
developer.apple.com
Configuring your environment for Sign in with Apple | Apple Developer Documentation
Authenticate users with your web service by associating an existing app with a Services ID and private key.
developer.apple.com
https://developer.apple.com/documentation/signinwithapplejs/clientconfigi
ClientConfigI | Apple Developer Documentation
An object that contains a user’s configuration information.
developer.apple.com
반응형