IIS 아웃바운드 규칙 편집 최신 버전 3rd part cookie 전달 안되는 이슈 samesite=Lax - milkyleaf/brilliant-idea GitHub Wiki

samesite by default cookie 문제로 인해 크롬 최신버전에서 test.com 과 drive.test.com 을 같은 사이트로 판단하지 못하여(url은 임의의 url임.) 무한 로그인이 돈다.

크롬 최신버전에서 cookie samsite 디폴트 값이 None -> Lax 로 변경됨. samesite=Lax 로 변경 시 3rd part cookie가 전달되지 않음. 즉 test 도메인에서 drive.test 도메인으로 api 호출 시 cookie를 전달하지 않음. 이에 따라 drive.test(sharepoint) 로그인 체크 api 에서 로그인 여부를 판단할 수 없음. https://ifuwanna.tistory.com/233 : 크롬 쿠키 이슈

로그인 여부를 판단해주는 페이지를 만들고 redirection 하는건?

방안 1. IIS URL Rewrite 로 변조 하거나, sharepoint 소스를 건드리는 것을 테스트 해볼 수 있지만 조금 위험함. 방안 2. chrome 일때는 로그인 체크를 아예 끄는 방안(직접 클릭하여 로그인) 방안 3. sessionstorage 를 활용하여 무한 로그인이 되지 않게 조치 test.com 접속 session storage["drive_login"] is "Y" ? Y이면 그대로 있기 Y가 아니면 Redirect
drive.test.com url에 &isLogonPass=Y 값을 가지고 다니기 통합인증과 SHAREPOINT 인증 후 drive.test.com 도착 시 isLogonPass 파라미터가 Y 이면 session storage["drive_login] set "Y" 세팅

해결 방법 URL Rewrite 모듈을 사용하여 sharepoint cookie에 samesite=NONE을 지정함. 대신 모든 cookie url을 뒤지기 때문에 성능(cpu)에 영향을 줄 수 있음.

명시적으로 samesite 옵션이 지정되어 있는 경우 3rd party cookie 전달됨 "/; secure; SameSite=None"; -> drive sharepoint cookie에 samesite=None지정

url rewrite 아웃바운드 규칙 추가 이름 : Samesite None Rewrite 검색범위 : 서버변수 변수이름 : RESPONSE_Set_Cookie 변수 값 : 패턴과 일치 사용 : 정규식 패턴 : (FedAuth=.;)(.) 대/소문자 무시 언체크 작업 유형 : 재작성 작업 속성 값 : {R:1} SameSite=None;{R:2}; 기존 서버 변수 값 바꾸기 체크

F12 Network default.aspx , currentlogin (api) 헤더 확인 reponse header에 cookie 값에 "/; secure; SameSite=None"; 이게 보임

시크릿모드에서 테스트할 때는 타사 쿠키 차단 옵션을 diable 해야함.