

# 브라우저에서 SAML 응답 보기
<a name="troubleshoot_saml_view-saml-response"></a>

다음 절차에서는 SAML 2.0 관련 문제를 해결할 때 브라우저에서 서비스 공급자의 SAML 응답을 보는 방법에 대해 설명합니다.

브라우저에서 문제를 재현할 수 있는 페이지로 이동합니다. 그런 다음 해당 브라우저의 단계를 따릅니다.

**Topics**
+ [Google Chrome](#chrome)
+ [Mozilla Firefox](#firefox)
+ [Apple Safari](#safari)
+ [Base64 인코딩 SAML 응답에 대해 해야 할 작업](#whatnext)

## Google Chrome
<a name="chrome"></a>

**Chrome에서 SAML 응답을 보려면**

이 단계는 Google Chrome의 버전 106.0.5249.103(공식 빌드)(arm64)을 사용하여 테스트되었습니다. 다른 버전을 사용할 경우 그에 맞게 단계를 적용해야 할 수 있습니다.

1. **F12**를 눌러 **Developer Tools**(개발자 도구) 콘솔을 시작합니다.

1. **Network**(네트워크) 탭을 선택한 다음 **Developer Tools**(개발자 도구) 창의 왼쪽 상단에서 **Preserve log**(로그 보존)을 선택합니다.

1. 문제를 재현합니다.

1. (선택 사항) **Developer Tools**(개발자 도구) **Network**(네트워크) 로그 창에 **Method**(메서드) 열이 보이지 않는 경우 아무 열 레이블에서 마우스 오른쪽 버튼으로 클릭하고 **Method**(메서드)를 선택하여 열을 추가할 수 있습니다.

1. **Developer Tools**(개발자 도구) **Network**(네트워크) 로그 창에서 **SAML Post**(SAML 게시물)을 찾습니다. 해당 행을 선택하고 상단에서 **Payload**(페이로드) 탭을 봅니다. 인코딩된 요청을 포함하는 **SAMLResponse** 요소를 확인합니다. 연결된 값은 Base64 인코딩 응답입니다.

## Mozilla Firefox
<a name="firefox"></a>

**Firefox에서 SAML 응답을 보려면**

이 절차는 Mozilla Firefox 버전 105.0.3(64-bit)에서 테스트했습니다. 다른 버전을 사용할 경우 그에 맞게 단계를 적용해야 할 수 있습니다.

1. **F12**를 눌러 **Web Developer Tools**(웹 개발자 도구) 콘솔을 시작합니다.

1. **네트워크** 탭을 선택합니다.

1. **Web Developer Tools**(웹 개발자 도구) 창 상단 오른쪽에서 옵션(작은 기어 모양 아이콘)을 클릭합니다. **Persist logs**(로그 유지)를 선택합니다.

1. 문제를 재현합니다.

1. (선택 사항) **Web Developer Tools**(웹 개발자 도구) **Network**(네트워크) 로그 창에 **Method**(메서드) 열이 보이지 않는 경우 아무 열 레이블에서 마우스 오른쪽 버튼으로 클릭하고 **Method**(메서드)를 선택하여 열을 추가할 수 있습니다.

1. 테이블에서 **POST** **SAML**을 확인합니다. 해당 행을 선택한 다음 **Request**(요청) 탭을 보고 **SAMLResponse** 요소를 찾습니다. 연결된 값은 Base64 인코딩 응답입니다.

## Apple Safari
<a name="safari"></a>

**Safari에서 SAML 응답을 보려면**

이 단계는 Apple Safari 버전 16.0(17614.1.25.9.10, 17614)을 사용하여 테스트되었습니다. 다른 버전을 사용할 경우 그에 맞게 단계를 적용해야 할 수 있습니다.

1. Safari에서 Web Inspector를 사용하도록 설정합니다. **기본 설정** 창을 열고 **고급** 탭을 선택한 후 **메뉴 표시줄에 Develop 메뉴 표시(Show Develop menu in the menu bar)**를 선택합니다.

1. 이제 Web Inspector를 열 수 있습니다. 메뉴 막대에서 **Develop**(개발)을 선택한 다음 **Show Web Inspector**(Web Inspector 표시)를 선택합니다.

1. **네트워크** 탭을 선택합니다.

1. **Web Inspector** 창의 왼쪽 상단에서 옵션(세 개의 수평선이 포함된 작은 원형 아이콘)을 선택합니다. **Preserve Log**(로그 보존)을 선택합니다.

1. (선택 사항) **Web Inspector** **Network**(네트워크) 로그 창에 **Method**(메서드) 열이 보이지 않는 경우 아무 열 레이블에서 마우스 오른쪽 버튼으로 클릭하고 **Method**(메서드)를 선택하여 열을 추가할 수 있습니다.

1. 문제를 재현합니다.

1. 테이블에서 **POST** **SAML**을 확인합니다. 해당 행을 선택하고 헤더(Headers) 탭을 봅니다.

1. 인코딩된 요청을 포함하는 **SAMLResponse** 요소를 확인합니다. 아래로 스크롤하여 `Request Data`라는 `SAMLResponse`를 확인합니다. 연결된 값은 Base64 인코딩 응답입니다.

## Base64 인코딩 SAML 응답에 대해 해야 할 작업
<a name="whatnext"></a>

브라우저에서 Base64 인코딩 SAML 응답 요소를 확인했으면 복사한 후 Base-64 디코딩 도구에서 사용하여 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://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)은 계정의 리소스와 일치해야 합니다.
+ https://aws.amazon.com/SAML/Attributes/RoleSessionName 값을 검토합니다. 값은 [클레임 규칙](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html)에 있는 값과 일치해야 합니다.
+ 이메일 주소 또는 계정 이름의 속성 값을 구성하는 경우 값이 올바른지 확인합니다. 값은 인증된 사용자의 이메일 주소 또는 계정 이름과 일치해야 합니다.

**오류 확인 및 구성 확인**  
값에 오류가 있는지 확인하고 다음 구성이 올바른지 확인합니다.
+ 클레임 규칙이 필수 요소를 충족하고 모든 ARN이 정확합니다. 자세한 내용은 [신뢰 당사자 신뢰 및 클레임 추가를 통해 SAML 2.0 IdP 구성](id_roles_providers_create_saml_relying-party.md) 섹션을 참조하세요.
+ SAML 공급자에서 IdP의 최신 메타데이터 파일을 AWS에 업로드했습니다. 자세한 내용은 [SAML 2.0 페더레이션 위탁자의 AWS Management Console 액세스 활성화](id_roles_providers_enable-console-saml.md) 섹션을 참조하세요.
+ IAM 역할의 신뢰 정책을 올바르게 구성했습니다. 자세한 내용은 [역할 수임 방법](id_roles_manage-assume.md) 섹션을 참조하세요.