브라우저에서 SAML 응답 보기

브라우저에서 SAML 응답 보기 (View a SAML response in your browser)

다음 절차는 SAML 2.0 관련 문제를 해결할 때, 서비스 프로바이더로부터 받은 SAML 응답을 브라우저에서 확인하는 방법을 설명해요. 문제를 재현할 수 있는 페이지로 이동한 뒤, 사용 중인 브라우저에 맞는 단계를 따라 하세요.

출처: 문서

본문

다루는 주제

  • Google Chrome
  • Mozilla Firefox
  • Apple Safari
  • Base64로 인코딩된 SAML 응답 처리 방법

Google Chrome

Chrome에서 SAML 응답 보기

이 단계는 Google Chrome 106.0.5249.103(Official Build)(arm64) 버전에서 테스트했어요. 다른 버전을 쓴다면 단계를 상황에 맞게 조정해야 할 수 있어요.

  1. F12를 눌러 개발자 도구(Developer Tools) 콘솔을 시작해요.
  2. Network 탭을 선택하고, 개발자 도구 창 왼쪽 위의 Preserve log를 선택해요.
  3. 문제를 재현해요.
  4. (선택) 개발자 도구 Network 로그 창에 Method 열이 안 보이면, 아무 열 라벨의 컨텍스트(오른쪽 클릭) 메뉴를 열고 Method를 선택해 열을 추가해요.
  5. Network 로그 창에서 SAML Post를 찾아요. 그 행을 선택하고 위쪽의 Payload 탭을 보면, 인코딩된 요청을 담은 SAMLResponse 요소가 있어요. 그 값이 Base64로 인코딩된 응답이에요.

Mozilla Firefox

Firefox에서 SAML 응답 보기

이 절차는 Mozilla Firefox 105.0.3(64-bit) 버전에서 테스트했어요. 다른 버전을 쓴다면 단계를 조정해야 할 수 있어요.

  1. F12를 눌러 웹 개발자 도구(Web Developer Tools) 콘솔을 시작해요.
  2. Network 탭을 선택해요.
  3. 웹 개발자 도구 창 오른쪽 위에서 options(작은 톱니 아이콘)를 선택하고 Persist logs를 선택해요.
  4. 문제를 재현해요.
  5. (선택) Method 열이 안 보이면 아무 열 라벨의 컨텍스트(오른쪽 클릭) 메뉴에서 Method를 선택해 열을 추가해요.
  6. 표에서 SAML POST를 찾아요. 그 행을 선택하고 Request 탭을 보면 SAMLResponse 요소가 있어요. 그 값이 Base64로 인코딩된 응답이에요.

Apple Safari

Safari에서 SAML 응답 보기

이 단계는 Apple Safari 16.0(17614.1.25.9.10, 17614) 버전에서 테스트했어요. 다른 버전을 쓴다면 단계를 조정해야 할 수 있어요.

  1. Safari에서 Web Inspector를 활성화해요. Preferences 창을 열고 Advanced 탭을 선택한 뒤, 메뉴 막대의 Show Develop menu를 선택해요.
  2. 이제 Web Inspector를 열 수 있어요. 메뉴 막대에서 Develop을 선택하고 Show Web Inspector를 선택해요.
  3. Network 탭을 선택해요.
  4. Web Inspector 창 왼쪽 위에서 options(가로선 세 개가 있는 작은 원 아이콘)를 선택하고 Preserve Log를 선택해요.
  5. (선택) Method 열이 안 보이면 아무 열 라벨의 컨텍스트(오른쪽 클릭) 메뉴에서 Method를 선택해 열을 추가해요.
  6. 문제를 재현해요.
  7. 표에서 SAML POST를 찾아요. 그 행을 선택하고 Headers 탭을 봐요.
  8. 인코딩된 요청을 담은 SAMLResponse 요소를 찾아요. 스크롤을 내려 SAMLResponse라는 이름의 Request Data를 확인해요. 그 값이 Base64로 인코딩된 응답이에요.

Base64로 인코딩된 SAML 응답 처리

브라우저에서 Base64로 인코딩된 SAML 응답 요소를 찾았다면 복사해서, 좋아하는 Base64 디코딩 도구로 XML 태그가 붙은 응답을 추출해요.

보안 팁

보고 있는 SAML 응답 데이터에는 민감한 보안 데이터가 포함될 수 있으므로, 온라인 base64 디코더를 사용하지 않는 것을 권장해요. 대신 로컬 컴퓨터에 설치된, SAML 데이터를 네트워크로 보내지 않는 도구를 사용하세요.

Windows 시스템 내장 옵션(PowerShell):

PS C:\> [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("base64encodedtext"))

MacOS 및 Linux 시스템 내장 옵션:

$ echo "base64encodedtext" | base64 --decode
디코딩된 파일의 값 검토

디코딩된 SAML 응답 파일의 값을 검토해요.

  • saml:NameID 속성 값이 인증된 사용자의 사용자 이름과 일치하는지 확인해요.
  • https://aws.amazon.com/SAML/Attributes/Role 값을 검토해요. ARN과 SAML 프로바이더는 대소문자를 구분하며, ARN은 계정의 리소스와 일치해야 해요.
  • https://aws.amazon.com/SAML/Attributes/RoleSessionName 값을 검토해요. 값은 클레임 규칙(claim rule)의 값과 일치해야 해요.
  • 이메일 주소나 계정 이름의 속성 값을 구성했다면 값이 올바른지 확인해요. 값은 인증된 사용자의 이메일 주소나 계정 이름과 일치해야 해요.
오류 확인과 구성 확인

값에 오류가 있는지 확인하고, 다음 구성이 올바른지 확인해요.

  • 클레임 규칙이 필요한 요소를 충족하고 모든 ARN이 올바른지 확인해요. 자세한 내용은 신뢰하는 당사자 트러스트로 SAML 2.0 IdP 구성 및 클레임 추가를 참고하세요.
  • AWS의 SAML 프로바이더에 IdP의 최신 메타데이터 파일을 업로드했는지 확인해요. 자세한 내용은 SAML 2.0 페더레이션 프린시펄이 AWS Management Console에 접근하도록 활성화를 참고하세요.
  • IAM 역할의 트러스트 정책을 올바르게 구성했는지 확인해요. 자세한 내용은 역할 수임 방법을 참고하세요.

더 알아보기 (Learn more)