API 키란 무엇입니까? [닫은]


109

요즘 거의 모든 크로스 서비스 애플리케이션에서이 단어를 봅니다.

API 키는 정확히 무엇이며 용도는 무엇입니까?

또한 공개 및 비공개 API 키의 차이점은 무엇입니까?

답변:


111

API 키가 "정확하게"사용되는 것은 누가 발급하고 어떤 서비스에 사용되는지에 따라 크게 달라집니다. 그러나 대체로 API 키는 요청의 출처를 식별하기 위해 웹 서비스 (또는 유사한) 요청과 함께 제출되는 특정 형태의 비밀 토큰에 부여 된 이름입니다. 출처를 추가로 확인하고 값의 변조를 방지하기 위해 요청 콘텐츠의 일부 다이제스트에 키가 포함될 수 있습니다.

일반적으로 요청의 소스를 긍정적으로 식별 할 수 있으면 인증의 한 형태로 작동하여 액세스 제어로 이어질 수 있습니다. 예를 들어 요청을 수행하는 사람에 따라 특정 API 작업에 대한 액세스를 제한 할 수 있습니다. 이러한 서비스를 판매하여 돈을 버는 회사의 경우 청구 목적으로 누가 사용하는지 추적하는 방법이기도합니다. 또한 키를 차단하면 요청 량이 너무 많은 경우 부분적으로 남용을 방지 할 수 있습니다.

일반적으로 공개 및 비공개 API 키가 모두있는 경우 키 자체가 어떤 형태의 비대칭 암호화 또는 관련 디지털 서명에 사용되는 기존 공개 / 개인 키 쌍임을 제안합니다 . 이는 요청의 소스를 확실하게 식별하고, 추가적으로 스누핑으로부터 요청의 콘텐츠를 보호하기위한보다 안전한 기술입니다.


12
잘 했어! 그러나 다소 제한된 경험에서 공개 / 개인 구분은 공개 키 암호화와 관련이 없습니다. 내가 본 "공개"키는 일반적으로 "액세스 라이트"입니다. 즉, 키를 왕국에 제공하지 않고 제 3자가 민감하지 않은 데이터에 액세스 할 수 있도록 허용하기 위해 배포 할 수있는 키입니다.
timdev

2
@Rob +1에 대한 자세한 답변은 @tim +1입니다.
OrangeRind

@tim-동의했습니다. 내가 본 더 일반적인 접근 방식은 개인 다이제스트 키를 갖는 것입니다.
Rob

24

매우 일반적으로 말하면 :

API 키는 단순히 사용자를 식별합니다.

공개 / 개인 구분이있는 경우 공개 키는 다른 사용자에게 배포하여 API에서 사용자에 대한 일부 정보를 얻을 수 있도록 허용하는 키입니다. 개인 키는 사용자 전용이며 모든 데이터에 대한 액세스를 제공합니다.


대부분의 경우 해시처럼 보입니다. 내 관찰이 맞습니까?
OrangeRind

고유 한 한 원하는대로 생성 할 수 있습니다. 일부 데이터의 해시는 데이터를 생성하는 합리적인 방법처럼 보입니다.
Matthew Scharley

예, 해시처럼 보입니다. 결국, 당신은 그들이 쉽게 추측하기를 원하지 않습니다.
timdev

1
다소간-대부분의 bog 표준 API 키는 의사 난수 값을 해싱하고 결과에 대해 표준 일반 텍스트 인코딩 (예 : base16, base64 등)을 수행하여 생성됩니다.
Rob

18

많은 사람들이 API 키를 보안 솔루션으로 사용하는 것 같습니다. 결론은 : API 키를 비밀 이 아닌 것으로 취급하지 마십시오 . https 여부에 관계없이 요청을 읽을 수있는 사람은 API 키를 볼 수 있고 원하는대로 호출 할 수 있습니다. API 키는 SSL과 함께 사용되는 경우에도 완전한 보안 솔루션이 아니므로 '사용자'식별자와 같아야합니다.

더 나은 설명은 Eugene Osovetsky 링크에 있습니다. 대부분의 API로 작업 할 때 두 가지 유형의 인증, 즉 키와 비밀이 필요한 이유는 무엇입니까? 또는 http://nordicapis.com/why-api-keys-are-not-enough/ 확인


2
보시다시피, 이것은 오래된 질문이며 현대 Stack Overflow 표준에 따라 "너무 광범위"(또는 "주제에서 벗어난")로 간주 될 수 있습니다. 이러한 질문은 일반적으로 반대 투표 및 / 또는 삭제되는 의견이있는 답변을 유도하는 경향이 있습니다. 이러한 질문에서 벗어나는 것이 일반적 으로 최선의 조치입니다. 자세한 내용 은 도움말 센터 를 참조하세요.
Dev-iL 2017

10

API 키는 서비스 사용자로 수락 될 때이 서비스 사용자에게 할당되는 고유 한 값입니다.

이 서비스는 발급 된 모든 키를 유지하고 각 요청시 확인합니다.

요청시 제공된 키를 살펴봄으로써 서비스는 사용자에게 액세스 권한을 부여할지 여부를 결정하기 위해 유효한 키인지 여부를 확인합니다.


그래서 공개 및 비공개는 어떻습니까?
OrangeRind

1
공개 및 개인 키는 암호화 도메인에서 제공되며 비대칭 암호화와 관련이 있습니다. API 키의 의미에서 이러한 용어가 사용되는 것을 들어 본 적이 없습니다.

2

API 키는 웹 서비스 사용자를 인증하는 한 가지 방법 일뿐입니다.


1

이렇게 생각하면 "공개 API 키"는 데이터베이스가 확인 서버에 대한 로그인으로 사용하는 사용자 이름과 유사합니다. 그러면 "Private API Key"는 비밀번호와 유사합니다. 이 방법을 사용하는 사이트 / 데이터베이스는 귀하의 사이트 / 데이터베이스의 게시 또는 편집 요청을 인증하기 위해 제 3 자 / 검증 서버에서 보안을 유지합니다.

API 문자열은 사이트 / 데이터베이스가 확인 서버에 연결하기위한 로그인 URL입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.