목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

배경 정보

IdP(ID 공급자)

서비스 공급자(SP)

SAML

SAML 어설션

고급 흐름도

Azure AD와 SAML SSO 통합 구성

1단계. ISE에서 SAML ID 제공자 구성

1. Azure AD를 외부 SAML ID 원본으로 구성

2. ISE 인증 방법 구성

3. 서비스 공급자 정보 내보내기

2단계. Azure AD IdP 설정 구성

1. Azure AD 사용자 만들기

2. Azure AD 그룹 만들기

3. 그룹에 Azure AD 사용자 할당

4. Azure AD Enterprise 응용 프로그램 만들기

5. 애플리케이션에 그룹 추가

6. Azure AD Enterprise 응용 프로그램 구성

7. Active Directory 그룹 특성 구성

8. Azure 페더레이션 메타데이터 XML 파일 다운로드

3단계. Azure Active Directory에서 ISE로 메타데이터 업로드

4단계. ISE에서 SAML 그룹 구성

(선택 사항) 5단계. RBAC 정책 구성

다음을 확인합니다.

문제 해결

일반적인 문제

ISE 트러블슈팅

SAML 로그인 및 일치하지 않는 그룹 클레임 이름이 있는 로그

소개

이 문서에서는 Azure AD(Active Directory)와 같은 외부 ID 공급자와 Cisco ISE 3.1 SAML SSO 통합을 구성하는 방법에 대해 설명합니다.

사전 요구 사항

요구 사항

다음 주제에 대한 지식을 보유하고 있으면 유용합니다.

1. Cisco ISE 3.1

2. SAML SSO 구축

3. Azure AD

사용되는 구성 요소

이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.

1. Cisco ISE 3.1

2. Azure AD

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

배경 정보

IdP(ID 공급자)

이 경우 Azure AD는 사용자 ID를 확인하고 요청한 리소스("서비스 공급자")에 대한 액세스 권한을 어설션합니다.

서비스 공급자(SP)

사용자가 액세스하려는 호스팅된 리소스 또는 서비스이며, 이 경우 ISE 애플리케이션 서버입니다.

SAML

SAML(Security Assertion Markup Language)은 SP에 인증 자격 증명을 전달하기 위해 IdP를 허용하는 개방형 표준입니다.

SAML 트랜잭션은 ID 공급자와 서비스 공급자 간의 표준화된 통신에 XML(Extensible Markup Language)을 사용합니다.

SAML은 서비스를 사용하기 위해 사용자 ID의 인증과 권한 부여 간의 링크입니다.

SAML 어설션

SAML Assertion은 ID 제공자가 사용자 권한 부여가 포함된 서비스 제공자에게 전송하는 XML 문서입니다.

SAML 어설션에는 인증, 특성 및 권한 부여 결정이라는 세 가지 유형이 있습니다.

- 인증 어설션은 사용자의 ID를 증명하며 사용자가 로그인한 시간 및 어떤 인증 방법을 사용했는지 제공합니다(예: Kerberos, 2단계)

- 특성 어설션은 사용자에 대한 정보를 제공하는 특정 데이터 조각인 SAML 특성을 서비스 공급자에게 전달합니다.

- 권한 부여 결정 어설션은 사용자가 서비스를 사용할 권한이 있는지 또는 비밀번호 오류 또는 서비스에 대한 권한 부족으로 인해 ID 제공자가 요청을 거부했는지 여부를 선언합니다.

고급 흐름도

SAML은 ID 공급자, Azure AD 및 서비스 공급자, ISE 간에 사용자, 로그인 및 특성에 대한 정보를 전달하여 작동합니다.

각 사용자가 ID 공급자를 사용하여 SSO(Single Sign-On)에 한 번 로그인하면 Azure AD 공급자는 사용자가 해당 서비스에 액세스하려고 시도할 때 SAML 특성을 ISE에 전달합니다.

ISE는 이미지에 표시된 대로 Azure AD에서 권한 부여 및 인증을 요청합니다.

Azure AD와 SAML SSO 통합 구성

1단계. ISE에서 SAML ID 제공자 구성

1. Azure AD를 외부 SAML ID 원본으로 구성

ISE에서 Administration(관리) > Identity Management(ID 관리) > External Identity Sources(외부 ID 소스) > SAML Id Providers(SAML ID 제공자)로 이동하고 Add(추가) 버튼을 클릭합니다.

ID 제공자 이름을 입력하고 Submit(제출)을 클릭하여 저장합니다. ID 제공자 이름은 이미지에 표시된 대로 ISE에서만 유효합니다.

2. ISE 인증 방법 구성

Administration(관리) > System(시스템) > Admin Access(관리자 액세스) > Authentication(인증) > Authentication Method(인증 방법)로 이동하고 Password Based(비밀번호 기반) 라디오 버튼을 선택합니다.

이미지에 표시된 대로 Identity Source(ID 소스) 드롭다운 목록에서 앞서 생성한 필수 ID 제공자 이름을 선택합니다.

3. 서비스 공급자 정보 내보내기

Administration(관리) > Identity Management(ID 관리) > External Identity Sources(외부 ID 소스) > SAML Id Providers(SAML ID 제공자) > [Your SAML Provider](SAML 제공자)로 이동합니다.

탭을 서비스 공급자 정보로 전환하고 이미지에 표시된 대로 내보내기 버튼을 클릭합니다.

.xml 파일을 다운로드하고 저장합니다. 위치 URL 및 entityID 값을 기록해 둡니다.

<?xml version="1.0" encoding="UTF-8"?>

<md:EntityDescriptor entityID="http://CiscoISE/0049a2fd-7047-4d1d-8907-5a05a94ff5fd" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"><md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">

<md:SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol" WantAssertionsSigned="true" AuthnRequestsSigned="false">

<md:KeyDescriptor use="signing">

<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">

<ds:X509Data>

<ds:X509Certificate>

MIIFTjCCAzagAwIBAgINAg2amSlL6NAE8FY+tzANBgkqhkiG9w0BAQwFADAlMSMwIQYDVQQDExpT

QU1MX2lzZTMtMS0xOS5ja3VtYXIyLmNvbTAeFw0yMTA3MTkwMzI4MDBaFw0yNjA3MTgwMzI4MDBa

MCUxIzAhBgNVBAMTGlNBTUxfaXNlMy0xLTE5LmNrdW1hcjIuY29tMIICIjANBgkqhkiG9w0BAQEF

AAOCAg8AMIICCgKCAgEAvila4+SOuP3j037yCOXnHAzADupfqcgwcplJQnFxhVfnDdOixGRT8iaQ

1zdKhpwf/BsJeSznXyaPVxFcmMFHbmyt46gQ/jQQEyt7YhyohGOt1op01qDGwtOnWZGQ+ccvqXSL

Ge1HYdlDtE1LMEcGg1mCd56GfrDcJdX0cZJmiDzizyjGKDdPf+1VM5JHCo6UNLFlIFyPmGvcCXnt

NVqsYvxSzF038ciQqlm0sqrVrrYZuIUAXDWUNUg9pSGzHOFkSsZRPxrQh+3N5DEFFlMzybvm1FYu

9h83gL4WJWMizETO6Vs/D0p6BSf2MPxKe790R5TfxFqJD9DnYgCnHmGooVmnSSnDsAgWebvF1uhZ

nGGkH5ROgT7v3CDrdFtRoNYAT+YvO941KzFCSE0sshykGSjgVn31XQ5vgDH1PvqNaYs/PWiCvmI/

wYKSTn9/hn7JM1DqOR1PGEkVjg5WbxcViejMrrIzNrIciFNzlFuggaE8tC7uyuQZa2rcmTrXGWCl

sDU4uOvFpFvrcC/lavr9Fnx7LPwXaOasvJd19SPbD+qYgshz9AI/nIXaZdioHzEQwa8pkoNRBwjZ

ef+WFC9dWIy+ctbBT0+EM06Xj1aTI1bV80mN/6LhiS8g7KpFz4RN+ag1iu6pgZ5O58Zot9gqkpFw

kVS9vT4EOzwNGo7pQI8CAwEAAaN9MHswIAYDVR0RBBkwF4IVaXNlMy0xLTE5LmNrdW1hcjIuY29t

MAwGA1UdEwQFMAMBAf8wCwYDVR0PBAQDAgLsMB0GA1UdDgQWBBRIkY2z/9H9PpwSnOPGARCj5iaZ

oDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQEMBQADggIBAIE6mnBL

206Dkb6fHdgKd9goN8N2bj+34ybwxqvDSwGtn4NA6Hy1q7N6iJzAD/7soZfHgOT2UTgZpRF9FsHn

CGchSHqDt3bQ7g+GWlvcgreC7R46qenaonXVrltRw11vVIdCf8JQFFMxya/rIC4mxVeooOj1Fl9d

rvDBH+XVEt67DnQWkuLp8zPJUuqfa4H0vdm6oF3uBteO/pdUtEi6fObqrOwCyWd9Tjq7KXfd2ITW

hMxaFsv8wWcVuOMDPkP9xUwwt6gfH0bE5luT4EYVuuHiwMNGbZqgqb+a4uSkX/EfiDVoLSL6KI31

nf/341cuRTJUmDh9g2mppbBwOcxzoUxDm+HReSe+OJhRCyIJcOvUpdNmYC8cfAZuiV/e3wk0BLZM

lgV8FTVQSnra9LwHP/PgeNAPUcRPXSwaKE4rvjvMc0aS/iYdwZhZiJ8zBdIBanMv5mGu1nvTEt9K

EEwj9yslIHmdqoH3Em0F0gnzR0RvsMPbJxAoTFjfoITTMdQXNHhg+wlPOKXS2GCZ29vAM52d8ZCq

UrzOVxNHKWKwER/q1GgaWvh3X/G+z1shUQDrJcBdLcZI1WKUMa6XVDj18byhBM7pFGwg4z9YJZGF

/ncHcoxFY759LA+m7Brp7FFPiGCrPW8E0v7bUMSDmmg/53NoktfJ1CckaWE87myhimj0

</ds:X509Certificate>

</ds:X509Data>

</ds:KeyInfo>

</md:KeyDescriptor>

<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>

<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>

<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat>

<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>

<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName</md:NameIDFormat>

<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos</md:NameIDFormat>

<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName</md:NameIDFormat>

<md:AssertionConsumerService index="0" Location="https://10.201.232.19:8443/portal/SSOLoginResponse.action" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"/>

<md:AssertionConsumerService index="1" Location="https://ise3-1-19.onmicrosoft.com:8443/portal/SSOLoginResponse.action" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"/>

</md:SPSSODescriptor>

</md:EntityDescriptor>

XML 파일의 관련 특성:

entityID="http://CiscoISE/100d02da-9457-41e8-87d7-0965b0714db2"

AssertionConsumerService 위치="https://10.201.232.19:8443/portal/SSOLoginResponse.action"

AssertionConsumerService 위치="https://ise3-1-19.onmicrosoft.com:8443/portal/SSOLoginResponse.action"

2단계. Azure AD IdP 설정 구성

1. Azure AD 사용자 만들기

Azure Active Directory 관리 센터 대시보드에 로그인하고 이미지에 표시된 대로 AD를 선택합니다.

사용자를 선택하고 새 사용자를 클릭한 다음 필요에 따라 사용자 이름, 이름 및 초기 암호를 구성합니다. 이미지에 표시된 대로 Create(생성)를 클릭합니다.

2. Azure AD 그룹 만들기

그룹을 선택합니다. New Group(새 그룹)을 클릭합니다.

그룹 유형을 보안으로 유지합니다. 이미지에 표시된 대로 그룹 이름을 구성합니다.

3. 그룹에 Azure AD 사용자 할당

No members selected(선택한 멤버 없음)를 클릭합니다. 사용자를 선택하고 선택을 클릭합니다. 사용자가 할당된 그룹을 만들려면 만들기를 클릭합니다.

이 화면에서는 그룹 객체 ID를 기록해 둡니다. 이 ID는 이미지에 표시된 ISE 관리자 그룹의 경우 576c60ec-c0b6-4044-a8ec-d395b1475d6e입니다.

4. Azure AD Enterprise 응용 프로그램 만들기

AD에서 Enterprise Applications를 선택하고 New application을 클릭합니다.

Create your own application을 선택합니다.

응용 프로그램의 이름을 입력하고 갤러리(비갤러리)에서 찾지 못한 다른 응용 프로그램 통합 라디오 버튼을 선택하고 이미지에 표시된 것처럼 만들기 버튼을 클릭합니다.

5. 애플리케이션에 그룹 추가

사용자 및 그룹 할당을 선택합니다.

Add user/group(사용자/그룹 추가)을 클릭합니다.

사용자 및 그룹을 클릭합니다.

이전에 구성한 그룹을 선택하고 선택을 클릭합니다.

참고: 설정이 완료되면 여기에 언급된 사용자 및 그룹이 ISE에 액세스할 수 있는 것처럼 원하는 대로 액세스할 수 있는 올바른 사용자 또는 그룹 집합을 선택합니다.

Group(그룹)을 선택한 후 Assign(할당)을 클릭합니다.

따라서 구성된 애플리케이션의 Users and groups Menu(사용자 및 그룹 메뉴)가 선택된 Group(그룹)으로 채워집니다.

6. Azure AD Enterprise 응용 프로그램 구성

애플리케이션으로 다시 이동하고 Set up single sign on을 클릭합니다.

다음 화면에서 SAML을 선택합니다.

Basic SAML Configuration 옆에 있는 Edit를 클릭합니다.

서비스 공급자 정보 내보내기 단계의 XML 파일에서 entityID 값으로 식별자(엔티티 ID)를 채웁니다. 응답 URL(Assertion Consumer Service URL)을 AssertionConsumerService의 Locations 값으로 채웁니다. 저장을 클릭합니다.

참고: 회신 URL은 통과 목록 역할을 하며, 이를 통해 특정 URL이 IdP 페이지로 리디렉션될 때 소스 역할을 할 수 있습니다.

7. Active Directory 그룹 특성 구성

이전에 구성한 그룹 특성 값을 반환하려면 User Attributes & Claims(사용자 특성 및 클레임) 옆에 있는 Edit(수정)를 클릭합니다.

Add a group claim(그룹 클레임 추가)을 클릭합니다.

Security groups(보안 그룹)를 선택하고 Save(저장)를 클릭합니다. Source attribute 드롭다운 메뉴에서 Group ID를 선택합니다. 확인란을 선택하여 그룹 청구의 이름을 사용자 지정하고 Groups(그룹)라는 이름을 입력합니다.

그룹의 클레임 이름을 기록합니다. 이 경우에는 그룹입니다.

8. Azure 페더레이션 메타데이터 XML 파일 다운로드

SAML 서명 인증서에서 페더레이션 메타데이터 XML에 대해 다운로드를 클릭합니다.

3단계. Azure Active Directory에서 ISE로 메타데이터 업로드

Administration(관리) > Identity Management(ID 관리) > External Identity Sources(외부 ID 소스) > SAML Id Providers(SAML ID 제공자) > [Your SAML Provider](SAML 제공자)로 이동합니다.

탭을 Identity Provider Config로 전환하고 Browse(찾아보기)를 클릭합니다. Azure Federation Metadata XML 다운로드 단계에서 페더레이션 메타데이터 XML 파일을 선택하고 저장을 클릭합니다.

4단계. ISE에서 SAML 그룹 구성

탭 그룹으로 전환하고 Active Directory 그룹 구성 특성에서 클레임 이름 값을 그룹 구성원 특성에 붙여넣습니다.

Add를 클릭합니다. Assertion에 Name(이름)을 Assertion to the Group(그룹에 Azure Active Directory 사용자 할당)에서 캡처한 ISE 관리자 그룹의 그룹 개체 ID 값으로 채웁니다.

드롭다운으로 ISE의 Name(이름)을 구성하고 ISE에서 적절한 그룹을 선택합니다. 이 예에서 사용된 그룹은 수퍼 관리자(Super Admin)입니다. OK(확인)를 클릭합니다. 저장을 클릭합니다.

이렇게 하면 Azure의 그룹과 ISE의 그룹 이름 간에 매핑이 생성됩니다.

(선택 사항) 5단계. RBAC 정책 구성

이전 단계에서 ISE에서 구성할 수 있는 다양한 유형의 사용자 액세스 레벨이 있습니다.

RBAC(Role Based Access Control Policies)를 편집하려면 Administration(관리) > System(시스템) > Admin Access(관리자 액세스) > Authorization(권한 부여) > Permissions(권한) > RBAC Policies(RBAC 정책)로 이동하고 필요에 따라 구성합니다.

이 이미지는 샘플 컨피그레이션에 대한 참조입니다.

다음을 확인합니다.

컨피그레이션이 제대로 작동하는지 확인합니다.

참고: Azure 테스트 기능의 SAML SSO 로그인 테스트가 작동하지 않습니다. Azure SAML SSO가 제대로 작동하려면 ISE에서 SAML 요청을 시작해야 합니다.

ISE GUI 로그인 프롬프트 화면을 엽니다. SAML을 사용하여 로그인하는 새로운 옵션이 표시됩니다.

1. ISE GUI 로그인 페이지에 액세스하고 SAML로 로그인을 클릭합니다.

2. Microsoft 로그인 화면으로 이동됩니다. 여기에 표시된 대로 ISE에 매핑된 그룹의 계정에 대한 사용자 이름 자격 증명을 입력하고 이미지에 표시된 대로 Next(다음)를 클릭합니다.

3. 사용자의 비밀번호를 입력하고 로그인을 클릭합니다.

4. 이제 이미지에 표시된 대로 이전에 구성된 ISE 그룹을 기반으로 구성된 적절한 권한을 사용하여 ISE 애플리케이션 대시보드로 리디렉션됩니다.

문제 해결

이 섹션에서는 설정 문제 해결에 사용할 수 있는 정보를 제공합니다.

일반적인 문제

브라우저와 Azure Active Directory 간에 SAML 인증이 처리됨을 이해하는 것이 중요합니다. 따라서 ISE 참여가 아직 시작되지 않은 Azure(Identity Provider)에서 인증 관련 오류를 직접 가져올 수 있습니다.

문제 1. 자격 증명을 입력한 후 "계정 또는 암호가 잘못되었습니다" 오류가 나타납니다. 여기서 사용자 데이터는 아직 ISE에서 수신되지 않으며 이 시점의 프로세스는 여전히 IdP(Azure)를 유지합니다.

계정 정보가 잘못되었거나 암호가 정확하지 않은 경우가 가장 많은 이유입니다. 수정하려면: 이미지에 표시된 대로 비밀번호를 재설정하거나 해당 계정에 올바른 비밀번호를 입력합니다.

문제 2. 사용자가 SAML SSO에 액세스할 수 있도록 허용된 그룹에 속하지 않습니다. 이전 사례와 마찬가지로 사용자 데이터는 아직 ISE에서 수신되지 않으며 이 시점의 프로세스는 여전히 IdP(Azure)로 유지됩니다.

이 문제를 해결하려면 이미지에 표시된 대로 Add group to the Application configuration(애플리케이션 컨피그레이션에 그룹 추가) 단계가 올바르게 실행되었는지 확인합니다.

3호 ISE 애플리케이션 서버가 SAML 로그인 요청을 처리할 수 없습니다. 이 문제는 SAML 요청이 서비스 공급자 ISE 대신 ID 공급자 Azure에서 시작될 때 발생합니다. ISE가 ID 공급자가 시작한 SAML 요청을 지원하지 않으므로 Azure AD에서 SSO 로그인 테스트가 작동하지 않습니다.

4호 ISE는 로그인 시도 후 "액세스 거부" 오류를 표시합니다. 이 오류는 Azure 엔터프라이즈 응용 프로그램에서 이전에 만든 그룹의 클레임 이름이 ISE에서 일치하지 않을 때 발생합니다.

이 문제를 해결하려면: Azure 및 ISE의 SAML ID 공급자 그룹 탭 아래에 있는 그룹 클레임 이름이 동일한지 확인합니다. 자세한 내용은 이 문서의 Azure AD로 SAML SSO 구성 섹션에서 2.7단계 및 4단계를 참조하십시오.

ISE 트러블슈팅

여기서 구성 요소의 로그 레벨은 ISE에서 변경해야 합니다. Operations(운영) > Troubleshoot(문제 해결) > Debug Wizard(디버그 마법사) > Debug Log Configuration(디버그 로그 컨피그레이션)으로 이동합니다.

구성 요소 이름

로그 레벨

로그 파일 이름

포털

디버그

guest.log

opensaml

디버그

ise-psc.log

SAML

디버그

ise-psc.log

SAML 로그인 및 일치하지 않는 그룹 클레임 이름이 있는 로그

플로우 실행 시 클레임 이름 불일치 문제 해결 시나리오를 표시하는 디버그 집합(ise-psc.log).

참고: 굵게 표시된 항목을 확인하십시오. 명확성을 위해 로그를 줄였습니다.

1. 사용자가 ISE 관리 페이지에서 IdP URL로 리디렉션됩니다.

2021-07-29 13:48:20,709 INFO   [admin-http-pool46][] api.services.persistance.dao.DistributionDAO -::::- In DAO getRepository method for HostConfig Type: PDP

2021-07-29 13:48:20,712 INFO   [admin-http-pool46][] cpm.admin.infra.spring.ISEAdminControllerUtils -::::- Empty or null forwardStr for: https://10.201.232.19/admin/LoginAction.do

2021-07-29 13:48:20,839 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-7][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAMLUtils::isLoadBalancerConfigured() - LB NOT configured for: Azure

2021-07-29 13:48:20,839 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-7][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAMLUtils::isOracle() - checking whether IDP URL indicates that its OAM. IDP URL: https://login.microsoftonline.com/182900ec-e960-4340-bd20-e4522197ecf8/saml2

2021-07-29 13:48:20,839 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-7][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SPProviderId for Azure is: http://CiscoISE/0049a2fd-7047-4d1d-8907-5a05a94ff5fd

2021-07-29 13:48:20,839 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-7][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAML request - providerId (as found in IdP configuration):http://CiscoISE/0049a2fd-7047-4d1d-8907-5a05a94ff5fd

2021-07-29 13:48:20,839 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-7][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAML request - returnToId (relay state):_0049a2fd-7047-4d1d-8907-5a05a94ff5fd_DELIMITERportalId_EQUALS0049a2fd-7047-4d1d-8907-5a05a94ff5fd_SEMIportalSessionId_EQUALS8d41c437-1fe8-44e3-a954-e3a9a66af0a6_SEMItoken_EQUALSLEXIXO5CDPQVDV8OZWOLLEVYJK9FYPOT_SEMI_DELIMITER10.201.232.19

2021-07-29 13:48:20,839 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-7][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAML request - spUrlToReturnTo:https://10.201.232.19:8443/portal/SSOLoginResponse.action

2021-07-29 13:48:20,844 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-7][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAML Request:

2021-07-29 13:48:20,851 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-7][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- <?xml version="1.0" encoding="UTF-16"?><samlp:AuthnRequest AssertionConsumerServiceURL="https://10.201.232.19:8443/portal/SSOLoginResponse.action" ForceAuthn="false"

2. 브라우저에서 SAML 응답을 수신합니다.

2021-07-29 13:48:27,172 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAML response - Relay State:_0049a2fd-7047-4d1d-8907-5a05a94ff5fd_DELIMITERportalId=0049a2fd-7047-4d1d-8907-5a05a94ff5fd;portalSessionId=8d41c437-1fe8-44e3-a954-e3a9a66af0a6;token=LEXIXO5CDPQVDV8OZWOLLEVYJK9FYPOT;_DELIMITER10.201.232.19

2021-07-29 13:48:27,172 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAML flow initiator PSN's Host name is:10.201.232.19

2021-07-29 13:48:27,172 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- Is redirect requiered: InitiatorPSN:10.201.232.19 This node's host name:ise3-1-19 LB:null request Server Name:10.201.232.19

2021-07-29 13:48:27,172 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- This node is the initiator (10.201.232.19) this node host name is:10.201.232.19

-::::- Decoded SAML relay state of: _0049a2fd-7047-4d1d-8907-5a05a94ff5fd_DELIMITERportalId_EQUALS0049a2fd-7047-4d1d-8907-5a05a94ff5fd_SEMIportalSessionId_EQUALS8d41c437-1fe8-44e3-a954-e3a9a66af0a6_SEMItoken_EQUALSLEXIXO5CDPQVDV8OZWOLLEVYJK9FYPOT_SEMI_DELIMITER10.201.232.19

2021-07-29 13:48:27,177 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] opensaml.ws.message.decoder.BaseMessageDecoder -::::- Parsing message stream into DOM document

-::::- Decoded SAML message

2021-07-29 13:48:27,182 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] opensaml.saml2.binding.decoding.BaseSAML2MessageDecoder -::::- Extracting ID, issuer and issue instant from status response

2021-07-29 13:48:27,183 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] opensaml.ws.message.decoder.BaseMessageDecoder -::::- No security policy resolver attached to this message context, no security policy evaluation attempted

2021-07-29 13:48:27,183 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] opensaml.ws.message.decoder.BaseMessageDecoder -::::- Successfully decoded message.

2021-07-29 13:48:27,183 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] opensaml.common.binding.decoding.BaseSAMLMessageDecoder -::::- Checking SAML message intended destination endpoint against receiver endpoint

opensaml.common.binding.decoding.BaseSAMLMessageDecoder -::::- Intended message destination endpoint: https://10.201.232.19:8443/portal/SSOLoginResponse.action

2021-07-29 13:48:27,183 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] opensaml.common.binding.decoding.BaseSAMLMessageDecoder -::::- Actual message receiver endpoint: https://10.201.232.19:8443/portal/SSOLoginResponse.action

2021-07-29 13:48:27,183 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAML decoder's URIComparator - [https://10.201.232.19:8443/portal/SSOLoginResponse.action] vs. [https://10.201.232.19:8443/portal/SSOLoginResponse.action]

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] opensaml.common.binding.decoding.BaseSAMLMessageDecoder -::::- SAML message intended destination endpoint matched recipient endpoint

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAML Response: statusCode:urn:oasis:names:tc:SAML:2.0:status:Success

3. 특성(assertion) 구문 분석이 시작됩니다.

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLAttributesParser -::::- [parseAttributes] Found attribute name : http://schemas.microsoft.com/identity/claims/tenantid

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLAttributesParser -::::- [parseAttributes] Found attribute name : http://schemas.microsoft.com/identity/claims/displayname

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLAttributesParser -::::- [parseAttributes] Delimeter not configured, Attribute=<http://schemas.microsoft.com/identity/claims/displayname> add value=<mck>

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLAttributesParser -::::- [parseAttributes] Set on IdpResponse object  - attribute<http://schemas.microsoft.com/identity/claims/displayname> value=<mck>

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLAttributesParser -::::- [parseAttributes] Found attribute name : http://schemas.microsoft.com/ws/2008/06/identity/claims/groups

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLAttributesParser -::::- [parseAttributes] Delimeter not configured, Attribute=<http://schemas.microsoft.com/ws/2008/06/identity/claims/groups> add value=<576c60ec-c0b6-4044-a8ec-d395b1475d6e>

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLAttributesParser -::::- [parseAttributes] Set on IdpResponse object  - attribute<http://schemas.microsoft.com/ws/2008/06/identity/claims/groups> value=<576c60ec-c0b6-4044-a8ec-d395b1475d6e>

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLAttributesParser -::::- [parseAttributes] Found attribute name : http://schemas.microsoft.com/identity/claims/identityprovider

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLAttributesParser -::::- [parseAttributes] Delimeter not configured, Attribute=<http://schemas.microsoft.com/identity/claims/identityprovider> add value=<https://sts.windows.net/182900ec-e960-4340-bd20-e4522197ecf8/>

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLAttributesParser -::::- [parseAttributes] Set on IdpResponse object  - attribute<http://schemas.microsoft.com/identity/claims/identityprovider> value=<https://sts.windows.net/182900ec-e960-4340-bd20-e4522197ecf8/>

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLAttributesParser -::::- [parseAttributes] Found attribute name : http://schemas.microsoft.com/claims/authnmethodsreferences

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLAttributesParser -::::- [parseAttributes] Delimeter not configured, Attribute=<http://schemas.microsoft.com/claims/authnmethodsreferences> add value=<http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password>

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLAttributesParser -::::- [parseAttributes] Set on IdpResponse object  - attribute<http://schemas.microsoft.com/claims/authnmethodsreferences> value=<http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password>

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLAttributesParser -::::- [parseAttributes] Found attribute name : http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLAttributesParser -::::- [parseAttributes] Delimeter not configured, Attribute=<http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name> add value=<email>

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLAttributesParser -::::- [parseAttributes] Set on IdpResponse object  - attribute<http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name> value=(email)

2021-07-29 13:48:27,184 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAMLUtils::getUserNameFromAssertion: IdentityAttribute is set to Subject Name

4. 그룹 속성이 576c60ec-c0b6-4044-a8ec-d395b1475d6e 값과 함께 수신됨, 서명 검증

2021-07-29 13:48:27,185 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAML Response: email attribute value:

2021-07-29 13:48:27,185 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAML response - Relay State:_0049a2fd-7047-4d1d-8907-5a05a94ff5fd_DELIMITERportalId=0049a2fd-7047-4d1d-8907-5a05a94ff5fd;portalSessionId=8d41c437-1fe8-44e3-a954-e3a9a66af0a6;token=LEXIXO5CDPQVDV8OZWOLLEVYJK9FYPOT;_DELIMITER10.201.232.19

2021-07-29 13:48:27,185 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAML flow initiator PSN's Host name is:10.201.232.19

2021-07-29 13:48:27,185 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAMLUtils::isLoadBalancerConfigured() - LB NOT configured for: Azure

2021-07-29 13:48:27,185 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAMLUtils::isOracle() - checking whether IDP URL indicates that its OAM. IDP URL: https://login.microsoftonline.com/182900ec-e960-4340-bd20-e4522197ecf8/saml2

2021-07-29 13:48:27,185 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SPProviderId for Azure is: http://CiscoISE/0049a2fd-7047-4d1d-8907-5a05a94ff5fd

2021-07-29 13:48:27,186 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- ResponseValidationContext:

IdP URI: https://sts.windows.net/182900ec-e960-4340-bd20-e4522197ecf8/

SP URI: http://CiscoISE/0049a2fd-7047-4d1d-8907-5a05a94ff5fd

Assertion Consumer URL: https://10.201.232.19:8443/portal/SSOLoginResponse.action

Request Id: _0049a2fd-7047-4d1d-8907-5a05a94ff5fd_DELIMITERportalId_EQUALS0049a2fd-7047-4d1d-8907-5a05a94ff5fd_SEMIportalSessionId_EQUALS8d41c437-1fe8-44e3-a954-e3a9a66af0a6_SEMItoken_EQUALSLEXIXO5CDPQVDV8OZWOLLEVYJK9FYPOT_SEMI_DELIMITER10.201.232.19

Client Address: 10.24.226.171

Load Balancer: null

2021-07-29 13:48:27,186 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.validators.SAMLSignatureValidator -::::- no signature in response

2021-07-29 13:48:27,186 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.validators.SAMLSignatureValidator -::::- Validating signature of assertion

2021-07-29 13:48:27,186 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.validators.BaseSignatureValidator -::::- Determine the signing certificate

2021-07-29 13:48:27,186 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.validators.BaseSignatureValidator -::::- Validate signature to SAML standard with cert:CN=Microsoft Azure Federated SSO Certificate serial:49393248893701952091070196674789114797

2021-07-29 13:48:27,186 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] org.opensaml.security.SAMLSignatureProfileValidator -::::- Saw Enveloped signature transform

2021-07-29 13:48:27,186 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] org.opensaml.security.SAMLSignatureProfileValidator -::::- Saw Exclusive C14N signature transform

2021-07-29 13:48:27,186 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.validators.BaseSignatureValidator -::::- Validate signature againsta signing certificate

2021-07-29 13:48:27,186 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] org.opensaml.xml.signature.SignatureValidator -::::- Attempting to validate signature using key from supplied credential

2021-07-29 13:48:27,186 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] org.opensaml.xml.signature.SignatureValidator -::::- Creating XMLSignature object

2021-07-29 13:48:27,186 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] org.opensaml.xml.signature.SignatureValidator -::::- Validating signature with signature algorithm URI: http://www.w3.org/2001/04/xmldsig-more#rsa-sha256

2021-07-29 13:48:27,186 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] org.opensaml.xml.signature.SignatureValidator -::::- Validation credential key algorithm 'RSA', key instance class 'sun.security.rsa.RSAPublicKeyImpl'

2021-07-29 13:48:27,188 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] org.opensaml.xml.signature.SignatureValidator -::::- Signature validated with key from supplied credential

2021-07-29 13:48:27,188 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.validators.SAMLSignatureValidator -::::- Assertion signature validated succesfully

2021-07-29 13:48:27,188 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.validators.WebSSOResponseValidator -::::- Validating response

2021-07-29 13:48:27,188 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.validators.WebSSOResponseValidator -::::- Validating assertion

2021-07-29 13:48:27,188 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.validators.AssertionValidator -::::- Assertion issuer succesfully validated

2021-07-29 13:48:27,188 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.validators.AssertionValidator -::::- Authentication statements succesfully validated

2021-07-29 13:48:27,188 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.validators.AssertionValidator -::::- Subject succesfully validated

2021-07-29 13:48:27,188 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.validators.AssertionValidator -::::- Conditions succesfully validated

2021-07-29 13:48:27,188 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAML Response: validation succeeded for (email)

2021-07-29 13:48:27,188 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAML Response: found signature on the assertion

2021-07-29 13:48:27,189 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- Retrieve [CN=Microsoft Azure Federated SSO Certificate] as signing certificates

2021-07-29 13:48:27,189 DEBUG  [https-jsse-nio-10.201.232.19-8443-exec-10][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAML Response: loginInfo:SAMLLoginInfo: (email), format=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress, sessionIndex=_7969c2df-f4c8-4734-aab4-e69cf25b9600, time diff=17475, attributeValues=null

2021-07-29 13:48:27,358 INFO   [admin-http-pool50][] ise.rbac.evaluator.impl.MenuPermissionEvaluatorImpl -::::-

5. RBAC 인증 확인

*************************Rbac Log Summary for user samlUser*************************

2021-07-29 13:48:27,360 INFO   [admin-http-pool50][] com.cisco.ise.util.RBACUtil -::::- Populating cache for external to internal group linkage.

2021-07-29 13:48:27,368 ERROR  [admin-http-pool50][] cpm.admin.infra.utils.PermissionEvaluationUtil -::::- Exception in login action

java.lang.NullPointerException

2021-07-29 13:48:27,369 INFO   [admin-http-pool50][] cpm.admin.infra.action.LoginAction -::::- In Login Action user has Menu Permission: false

2021-07-29 13:48:27,369 INFO   [admin-http-pool50][] cpm.admin.infra.action.LoginAction -::::- In Login action, user has no menu permission

2021-07-29 13:48:27,369 ERROR  [admin-http-pool50][] cpm.admin.infra.action.LoginAction -::::- Can't save locale. loginSuccess: false

2021-07-29 13:48:27,369 INFO   [admin-http-pool50][] cpm.admin.infra.action.LoginActionResultHandler -::::- Redirected to: /admin/login.jsp?mid=access_denied

2021-07-29 13:48:27,369 INFO   [admin-http-pool50][] cpm.admin.infra.spring.ISEAdminControllerUtils -::::- Empty or null forwardStr for: https://10.201.232.19/admin/LoginAction.do