폐쇄망에서 카카오 로그인 API 콜

안녕하십니까, 현재 폐쇄망 WAS에서 카카오 로그인 request에 대한 reponse를 제대로 못받는거 같습니다.
일단 인증 code 값까지는 받는거 같은데 Access Token을 요청할때 connection timeout이 발생하고 있습니다.

추가적으로 account.kakao.com 페이지 호출도 간헐적으로 됐다 안됐다 하는 상황입니다.

안녕하세요.

아래 FAQ를 참고 부탁드립니다.

카카오 로그인 등 카카오 api를 위한 방화벽 허용

말씀 하신 방화벽은 인프라 쪽에서 모두 허용 해주셨다고 합니다.
curl 명령어로 사용자 정보 가져오기 API 호출시 모두 정상적으로 처리됩니다.

확인을 위해 앱 ID 부탁드립니다.


앱ID
https://developers.kakao.com/ 의 내 애플리케이션>앱 설정>요약 정보 : 기본정보에 있는 앱 ID
숫자로된 ID 입니다

ex) 123456

앱 ID : 918578 입니다.

1개의 좋아요

앱 918578는 카카오로그인 기능이 비활성화 되어 있습니다.
로그인 페이지에 접속 시, 바로 오류 페이지가 표시되셨을것 같은데요
해당 앱으로 테스트 진행하신게 맞으실까요?

다른 분이 설정을 바꾸신거 같습니다. 현재 활성화 했고 같은 상황입니다.

카카오 로그인 시,

  1. 인가코드 발급(카카오 로그인)은 사용자 디바이스 (PC, 모바일 등) 에서 이루어지고
  2. 인가코드 발급 성공 시, 서비스측 redirect_uri 로 code값과 함께 302 리디렉션 하게 됩니다.

로그인 기능을 다시 활성화 하셨다고 하였지만, 최근 24시간 내에 앱 918578에서 카카오 로그인 정상 접근 이력이 없습니다.
실제 사용중인 앱 ID를 다시 확인 부탁드립니다.

또한, 접근 불가 문제는 대부분 클라이언트쪽 방화벽이 원인으로
timeout 발생 시, 서비스측 에러 로그를 참고하여 조치하셔야 하는데요, 에러 내용을 함께 첨부 부탁드립니다.

Debug>>> [1, 1] (code) tJ5yUiK8SZDGukanYGcq_qnm_fCUZ-…(생략)…ezZH2_hkBGjEuF9xsLZw3YworDKcAAAGIemywXg

Debug>>> [1, 2] (GET) GET

Debug>>> [1, 2] (client id) ece598b…(생략)…65b588219

Debug>>> [1, 2] (client secret) trMPrzM…(생략)…xvFYsNwIbROzzX

Debug>>> [1, 2] (oauth profile url) https://kapi.kakao.com/v2/user/me

Debug>>> [1, 2] (domain) http://101.79.86.154/

DEBUG>>> (ex)
java.net.ConnectException: Connection timed out (Connection timed out)
인가 코드는 정상적으로 받는걸 확인했는데 혹시 인가코드도 못받은 걸로 나오나요??

사용하신 앱 키가 918578 것이 아닌 앱 859554 의 것입니다.
우선, 테스트 환경 구성을 확인 부탁드립니다.

사용자 정보가져오기 API는 인가코드가 아닌 접근 토큰을 사용 하여야만 합니다.
위 로그에서는 인가코드를 사용하여 사용자 정보가져오기 API를 호출하는 것으로 보입니다.
서비스측 로직을 확인 부탁드립니다.

앞선 답변과 별개로 kapi 접근 자체를 못하시는 것으로 보입니다.
서비스측 백앤드 즉, WAS 에서 kapi.kakao.com 호스트 호출 시, Connection timed out이 발생하였는데요
타임아웃 문제는 서비스측 방화벽 문제입니다. 회사의 네트워크 담당자에게 WAS 에서 kapi.kakao.com 으로 outbound 요청이 실패한다고 전달 부탁드립니다. 또한 kauth.kakao.com 또한 같이 점검 부탁드립니다.

답변 감사합니다!

궁금한게 WAS에서 curl로는 Access Token 받는것도 잘됐는데 방화벽 문제 일 수 있는 건가요???

접근토큰 발급은 kauth.kakao.com 를 사용합니다.
하지만, 위에 제공해 주신 로그는 사용자 정보 조회를 위한 kapi 호출 타임아웃 입니다.

WAS에서 kauth.kakao.com, kapi.kakao.com 로 ping 정상 호출 되는지 확인 부탁드립니다.

일단 브라우저에서 kauth.kakao.com 정상 호출 하는건 확인 됐습니다.

https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=0199c099b028b3042aa3b49f625b3691&redirect_uri=http%3A%2F%2F101.79.86.154%2Fportal%2Fuat%2Fuia%2Fauth%2Fkakao%2Fcallback

ping 이나 telnet 같은 경우는 자체적으로 외부로 못나가게 막아 놓으셔서 확인이 어렵습니다. ㅠ

브라우저는 사용자 디바이스(PC, 모바일)의 네트워크를 사용하므로 따로 보셔야 할것 같구요.
WAS에서 아웃바운드가 나가는지 확인하셔야 합니다.

WAS 서버에서 curl로 확인 하셨다면, ping 명령어도 그냥 사용 가능 하실텐데요.
ping 사용 불가하시면 curl 로 접속 되는지만 확인 해보시면 될것 같아요. WAS 서버 내에서 해야 합니다.

curl -G -I https://kauth.kakao.com
curl -G -I https://kapi.kakao.com

[root@qa-user-portal-was1 kcure-portal-web]# curl -G -I https://kauth.kakao.com
HTTP/1.1 200 Connection established

HTTP/1.1 302 Found
Date: Fri, 02 Jun 2023 05:50:12 GMT
Connection: keep-alive
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
X-Frame-Options: DENY
Location: 카카오계정
Kakao: Talk
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Headers: Authorization, KA, Origin, X-Requested-With, Content-Type, Accept

[root@qa-user-portal-was1 kcure-portal-web]# curl -G -I https://kapi.kakao.com
HTTP/1.1 200 Connection established

HTTP/1.1 404 Not Found
Date: Fri, 02 Jun 2023 05:50:30 GMT
Server: Apache
Content-Type: text/html; charset=iso-8859-1
이렇게 나왔습니다.

방화벽 설정에 문제 없어 보이십니다.
해당 서버에서 ifconfig 하였을 때, IP가 어떻게 표시되시나요?

[root@qa-user-portal-was1 kcure-portal-web]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1454
inet 198.18.227.113 netmask 255.255.255.0 broadcast 198.18.227.255
inet6 fe80::f816:3eff:fe84:cfbf prefixlen 64 scopeid 0x20
ether fa:16:3e:84:cf:bf txqueuelen 1000 (Ethernet)
RX packets 3319761 bytes 7318643603 (6.8 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2916923 bytes 3893477414 (3.6 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1454
inet 172.16.20.52 netmask 255.255.255.0 broadcast 172.16.20.255
inet6 fe80::f816:3eff:fe6e:180c prefixlen 64 scopeid 0x20
ether fa:16:3e:6e:18:0c txqueuelen 1000 (Ethernet)
RX packets 24634 bytes 2923306 (2.7 MiB)
RX errors 0 dropped 1 overruns 0 frame 0
TX packets 1318 bytes 3293320 (3.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 1788 bytes 105918 (103.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1788 bytes 105918 (103.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 입니다.

달리 이상 없어 보이십니다.
서비스측에서 접근토큰 발급 요청 이력이 없습니다.
방화벽에 의해 차단된것으로 보는데요 접근토큰 발급 시, 아직도 타임아웃이 발생하실까요?
토큰 발급 주소는 https://kauth.kakao.com/oauth/token 입니다.

해당 요청이 방화벽에 차단되고 있을거라 보이는데요.
서비스측 방화벽 체크 다시 한번 부탁드립니다.

아래 IP에 대해 접근할 수 있어야만 합니다.
203.133.166.32
27.0.237.15
203.133.166.33
211.249.200.134

추가로, 인가코드 발급 후 http://101.79.86.154/portal/uat/uia/auth/kakao/callback 으로 리디렉션 됩니다만,
101.79.86.154 주소가 qa-user-portal-was1 로 연결되는 IP가 맞는지도 확인해보시면 좋을것 같습니다.