응용 프로그램 ID는 대개 큰 숫자 또는 임의로 생성 된 영숫자 문자로 구성됩니다. 예를 들어, Twitter는 22 개의 영숫자 문자 시퀀스를 사용합니다. 앱 ID는 비밀이 아닙니다. 종종 API 호출을하기 위해 클라이언트 코드에 입력해야하기 때문입니다. 선택한 언어로 생성 할 수 있습니다. 예를 들어 파이썬에서이 한 줄을 참조하십시오
import random, string
app_id = ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(20)) # 20 being the size of the App ID you're wanting
비밀 키를, 다른 한편으로는, 고유 식별자 나 추측 할 수없는 매우 긴 문자열입니다. 공개되지 않으므로 도으로 공개해서는 안됩니다 (예 : JavaScript 코드). 그렇다고 복잡한 알고리즘을 사용하여 생성해야한다는 의미는 아닙니다. UUID (또는 호출 방법에 따라 GUID)는 여기에서 완벽하게 허용되지만, 보안을 강화하기 위해 악의적 인 사용자가 덤프 할 수 있도록 데이터베이스에 안전하게 저장 (예 : 암호화) 할 수 있습니다. 또, 파이썬, 모두이 두 라인에 온다 :
import uuid
secret_key = uuid.uuid1()
비밀 키는 서버와 개발자의 코드 사이 개인 대화 상자에서 사용되는, 그래서 개발자가 자신의 비밀을 알고있는 당신은 증거로 사용한다 열쇠와 그의 App ID. 예를 들어, Twitter는 모든 API 요청이 개발자의 비밀 키와 임시 챌린지의 조합으로 서명되어야한다고 요구합니다. 개발자 코드에서 계산 된 HMAC-SHA1 서명은 자신의 비밀 키와 Twitter API에서 전송 된 이전의 비밀 챌린지를 모두 알고 있다는 증거가됩니다.
복잡한 부분은 앱 ID 또는 비밀 키를 생성하지 않습니다. 적절한 개발자와 대화 할 수 있도록 보안 코드를 작성했습니다. 영감을 얻으려면 이미 시작한 것 같습니다. Facebook, Twitter, LinkedIn 또는 Google+와 같은 잘 알려진 API에서 "큰 일"이 그런 종류의 문제를 어떻게 다루는 지 확인하십시오.
또 다른 포인트 : Facebook 및 기타 여러 서비스에 의해 구현 된 OAuth2 프로토콜을 살펴볼 수 있습니다. OAuth2의 핵심은 {app ID, secret key}를 액세스 토큰으로 교환하는 것입니다. 개발자가이 액세스 토큰을 얻은 후에는 모든 후속 호출에이 액세스 토큰을 사용하여 자신의 신원을 증명합니다. 액세스 토큰이 손상되었다고 의심되는 경우 사용자 측에서 만료 될 수 있으며 개발자는 자신의 앱 ID 및 비밀 키로 확인 프로세스를 다시 시작해야합니다. OAuth를 서버 측 (OAuth 공급자라고 함)에서 구현하는 것은 쉬운 일이 아니지만 ... – Romain
정말 감사합니다. Romain! – user3383016
도움이 되니 기쁩니다! – Romain