2017-12-21 8 views
1

documentations에는 App Client Secret이 있지만 그 용도는 어디에도 없습니다.Cognito 앱 클라이언트 비밀번호 란 무엇입니까

나는 자바 스크립트 SDK가 그것을 사용하지 않는 것을 본다. 또한 많은 자바 스크립트 애플리케이션이 사용자 브라우저에서 실행되기 때문에 이유를 알지 못한다. 아마도 비밀을 드러내는 장소가 아니라 내 추측이다.

App Client ID의 비밀번호와 같은 것이면 보안 성이 향상되는 것을 볼 수 없지만 App Client IDApp Client Secret을 도용 할 수 있습니다. 게다가 App Client ID은 무작위로 무차별 공격에 충분한 보안을 제공해야합니다.

내가 cognito 그것을 사용하고, 어떤 기능을하는 것은 그것이 제공하는 않는 방법이 비밀의 목적을 무엇을 알고 싶습니다 .

+0

기본적으로 앱이 API로 인증하는 데 사용하는 비밀번호입니다. – Havenard

+0

나는 그렇게 생각했다 ....하지만 조금 중복되지 않습니까? 사용자 풀 ID는 상당히 임의적입니다. 누군가 앱에서 사용자 풀 ID를 추출 할 수 있다면 앱 비밀도 추출 할 수 있으므로 이점은 무엇입니까? 더 안전하게 보이게하려면? – mFeinstein

+0

잘 모르겠지만, 나는 aws-cognito에 익숙하지 않다. 그러나 ID는 비밀이 아니지만 어느 시점에 사용자에게 노출 될 수있다. – Havenard

답변

1

네, 맞습니다. 그것은 암호와 같은 것입니다. 이것이 사용되는 이유는 Cognito 고유의 속성이 아니라 OAuth2 표준의 일부입니다. 사실, 브라우저에서 실행되는 공개 앱에서 앱 비법을 사용하는 것은 말이되지 않습니다. 일반적으로 공개 앱을 개발할 때 클라이언트 비밀은 사용되지 않습니다. 그렇게 할 경우 안전하게 저장해야합니다. 당신이 (꼭 그래야되는 것처럼), 그 JS SDK 클라이언트 비밀을 사용하지 않는 말했듯이, Cognito 오는

. 그러나 AWS CLI 또는 boto3을 사용하는 경우 클라이언트 비밀 키를 사용할 수 있습니다. 이 경우 앱 클라이언트에 비밀번호가있는 경우이 비밀번호와 일부 다른 매개 변수 (username + clientid 라고 생각합니다.)를 사용하여 해시를 계산하고이를 매개 변수로 전달해야합니다.

그러나 보안 측면에서

는 정말 차이를 만들지 않습니다.

+0

나에게 이해가되지 않는 것이 아니라는 것을 아는 것이 좋습니다. 하지만 여전히 공개 앱에서 앱 비법을 사용하지 못하게하는 이유를 알 수 없습니다. 그것은 확실히 어떤 추가 보안도 제공하지 않을 것이지만, 비밀이 유출된다면 적어도 내가 볼 수있는 한 부작용이없는 보안 구멍이되지는 않을 것입니다. – mFeinstein