• 검색 결과가 없습니다.

EDISON 계산과학공학 플랫폼 서비스 연합인증 연동 기술 보고서

N/A
N/A
Protected

Academic year: 2021

Share "EDISON 계산과학공학 플랫폼 서비스 연합인증 연동 기술 보고서"

Copied!
30
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

ISBN

EDISON 계산과학공학 플랫폼 서비스

연합인증 연동 기술 보고서

- Apache JServ Protocol (AJP) 를 이용한 아파치 환경의 Shibboleth Service Provider 와

Tomcat 환경의 Liferay(EDISON platform) Shibboleth Plug-in 구축 및 연동 보고서 -

일자 2017년 10월 23일

부서 슈퍼컴퓨팅본부 응용연구기술개발실

(2)

2

[

목 차 ]

1.

설치 SW 및 사전 준비 ...3

2.

CentOS 6.9기반의 Apache 2.4.12 환경 구축 ...7

3.

SRPM을 이용한 Shibboleth SP 설치 ... 11

4.

Shibboleth SP 설정 ... 16

5.

Shibboleth SP를 위한 아파치 설정 ... 21

6.

ID 연계 확인 ... 22

7.

AJP를 이용한 Liferay 연동 설정 ... 24

8.

Liferay Shibboleth Plugin 설치 ... 26

(3)

3

1

설치 SW 및 사전 준비

1 . 개 요

본 보고서는 현재 운영되고 있는 EDISON 계산과학공학 플랫폼 서비스에 SAML() 기반의 연합인 증(Identity Federation) 기술을 적용하기 위해, EDISON 서비스와 동일 환경을 구축한 후 연합인 증 SW를 설치하고 연동하기 위한 기술을 정의한다. 현재 EDISON 서비스 환경은 이용자의 서비 스 요청을 수용하기 위해 전면부(front-end)에 위치한 Apache 서버와, 후면부(back-end)에서 서비스를 넘겨받아 동적 페이지를 포함한 실제 모든 서비스를 처리하는 Tomcat 서버가 물리적 으로 분리되어 있다. EDISON 서비스는 물리적으로 후면부 Tomcat 서버에서 운용되며, 널리 활 용되는 CMS(Content Management System)인 Liferay Portal Community Edition 6.2를 이용해 개발되었다. 본 연구에서는 이원화된 동일 환경을 구축하고 양자의 통신은 Apache JServ Protocol (AJP) 프로토콜을 통해 통신하도록 구축함으로써 EDISON 서비스와 동일 환경을 재현 하였다. 또한 현재 서비스 중인 특정 Apache 서버환경(Apache 2.4.12)에 맞춰 연합인증 SW를 설치하기 위해서는 YUM 기반의 자동설치가 불가하므로, SRPM(RPM Source)을 이용해 단계적으 로 필요 패키지 및 Shibboleth SW를 설치하고, Tomcat 서버에는 Liferay CE 및 Shibboleth SW와의 연동을 위한 Liferay의 Shibboleth Plug-in을 설치함으로써 전체적으로 Apache, Tomcat, Liferay, Shibboleth Service Provider가 조화롭게 구동되는 환경을 구축하였다. 이로써 EDISON 서비스와 연합인증 연동을 위한 기본적인 환경 구축이 완료되었으며, 앞으로 서비스 차 원에서의 실제적 연동을 위해 EDISON 서비스와 Liferay CE 간 연동을 위해 Liferay Plug-in 최 적화 개발을 진행할 계획이다.

(4)

4

2 . 시스템 구성도

3 . 설치 SW 목록

구분 SW 버전 OS CentOS 6.9 Apache -2.4.12 policycoreutils-python 2.0.83-30.1.el6_8.x86_64 httpd24-httpd-tools 2.4.12-4.el6.2.x86_64 httpd24-httpd httpd24-mod_ssl httpd24-httpd-devel Shibboleth SP 및 의존 패키지 SRPM log4shib 1.0.9-3.3 RPM log4shib-debuginfo liblog4shib1

(5)

5 liblog4shib-devel SRPM xerces-c 3.1.4-1.2 RPM xerces-c-debuginfo xerces-c-bin libxerces-c-3_1 ibxerces-c-devel SRPM xml-security-c 1.7.3-3.3 RPM libxml-security-c17 libxml-security-c-devel xml-security-c-bin xml-security-c-debuginfo SRPM curl-openssl 7.51.0-2.2 RPM curl-openssl curl-openssl-debuginfo libcurl-openssl libcurl-openssl-devel SRPM xmltooling 1.6.0-1.2 RPM libxmltooling7 libxmltooling-devel xmltooling-schemas xmltooling-debuginfo

(6)

6 SRPM opensaml 2.6.0-1.2 RPM opensaml-bin opensaml-debuginfo opensaml-schemas libsaml-devel libsaml9 SRPM shibboleth 2.6.0-2.2 RPM shibboleth-debuginfo shibboleth-devel shibboleth Liferay & Tomcat OpenJDK 1.8.0_144 Tomcat 7.0.62 Liferay Portal 6.2-ce-ga6

* yum 명령어로 설치할 때 자동으로 포함되어 설치되는 의존 패키지 제외하였음

4 . 사전 준비

SELinux 비활성화 작업이 필요하다. 아래의 명령어를 통해 SELinux 비활성화 작업을 수행한다. getenforce #SELinux 상태 확인 setenforce 0 #SELinux 비활성화 vi /etc/sysconfig/selinux #영구적 비활성화를 위한 수정 파일에서 아래의 내용과 같이 변경 후 저장하여 SELinux를 영구적으로 비활성화한다. #SELINUX= SELINUX=permissive

(7)

7 2

CentOS 6.9기반의 Apache 2.4.12 환경 구축

CentOS-6.9 환경에 기본적으로 설치된 아파치 버전은 httpd-2.2.15 이다. 설치하려는 버전은 httpd-2.4.12이므로 httpd24-httpd 패키지를 이용한다. yum을 이용해 (레파지토리를 통해) httpd24-httpd를 설치할 경우 httpd-2.4.6이 설치되므로 httpd-2.4.12 버전을 위한 RPM 파일 들을 직접 다운로드 받아서 설치한다. 해당 버전 RPM 파일을 로컬에 다운로드 한 후 yum으로 설치하면 동일 버전의 의존적 SW들이 함께 설치된다. 이 과정에서 아파치 2.4 기본적인 패키지 들이 설치되므로 아파치 2.4를 위한 레파지토리를 미리 설정해두어야 한다. * 여기에서는 관리자 계정(root)으로 설치를 진행하였다.

* 본 문서의 CLI 명령문을 copy & paste 할 경우 한글 워드프로세서에 의해 자동 변환된 기능(예. ‘--’ -> ‘—’)으로 인해 오류가 생성될 수 있으므로 직접 명령어를 입력해 설치한다.

1 . httpd24-httpd 레파지토리 설정

curl –L -s http://repos.fedorapeople.org/repos/jkaluza/httpd24/epel-httpd24.repo > /etc/yum.repos.d/epel-httpd24.repo

2 . httpd24-httpd SW(2.4.12) 다운로드

 다운로드 사이트 http://mirror.centos.org/centos/6/sclo/x86_64/rh/httpd24  RPM 다운로드 httpd24-httpd-2.4.12-4.el6.2.x86_64.rpm httpd24-httpd-devel-2.4.12-4.el6.2.x86_64.rpm

(8)

8 httpd24-httpd-tools-2.4.12-4.el6.2.x86_64.rpm httpd24-mod_ssl-2.4.12-4.el6.2.x86_64.rpm wget http://mirror.centos.org/centos/6/sclo/x86_64/rh/httpd24/httpd24-httpd-2.4.12-4.el6.2.x86_64.rpm wget http://mirror.centos.org/centos/6/sclo/x86_64/rh/httpd24/httpd24-httpd-devel-2.4.12-4.el6.2.x86_64.rpm wget http://mirror.centos.org/centos/6/sclo/x86_64/rh/httpd24/httpd24-httpd-tools-2.4.12-4.el6.2.x86_64.rpm wget http://mirror.centos.org/centos/6/sclo/x86_64/rh/httpd24/httpd24-mod_ssl-2.4.12-4.el6.2.x86_64.rpm

3 . 설치

아래의 명령어를 통해 설치한다.

yum install policycoreutils-python

yum install ./httpd24-httpd-tools-2.4.12-4.el6.2.x86_64.rpm yum install ./httpd24-httpd-2.4.12-4.el6.2.x86_64.rpm yum install ./httpd24-mod_ssl-2.4.12-4.el6.2.x86_64.rpm yum install ./httpd24-httpd-devel-2.4.12-4.el6.2.x86_64.rpm

설치 직 후 Apache-2.4.12 환경은 아래와 같다.

설정파일 /opt/rh/httpd24/root/etc/httpd/conf/httpd.conf DocumentRoot /opt/rh/httpd24/root/var/www/html/

Shibboleth SP 제한 접근 경로 /opt/rh/httpd24/root/var/www/html/secure/ 로그파일 /var/log/httpd24/

(9)

9

4 . 자동 시작 설정 및 구동 확인

Apache-2.2가 구동 중이라면 중지한다. service httpd status service httpd stop Apache-2.4.12를 부팅 시 자동시작 하도록 설정하고 구동한다. chkconfig httpd24-httpd on service httpd24-httpd start 웹 브라우저로 http://localhost 를 접속해 2.4.12 버전의 정상구동을 확인한다.

5 . Apache SSL 설정

개인키 및 인증요청서를 생성한다.

openssl genrsa –des3 –out server.key 2048 openssl req –new -key server.key –out server.csr

* Common Name 설정 시 호스트 도메인 네임으로 설정한다.

개인키 암호제거 및 인증서를 생성한다.

cp server.key server.key.org

openssl rsa -in server.key.org -out server.key

openssl x509 –req -days 365 –in server.csr –signkey server.key -out server.crt

개인키 및 인증서를 설치한다.

cp server.crt /etc/ssl/certs/ mkdir /etc/ssl/private

cp server.key /etc/ssl/private/

(10)

10 vi /opt/rh/httpd24/root/etc/httpd/conf.d/ssl.conf #설정 파일을 열고 아래 내용 수정 SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key 정상 구동을 확인한다. service httpd24-httpd restart 웹 브라우저로 https://localhost 를 접속해본다. 첫 접속 후 “Add Exception”을 눌러 신뢰된 사이트로 등록한다.

(11)

11

3

SRPM을 이용한 Shibboleth SP 설치

일반적으로 Shibboleth SP의 경우 Shibboleth IDP와 달리 yum으로 간단히 설치할 수 있다. 그러나 CentOS-6.9 및 httpd-2.2 환경에서 yum으로 자동설치하게 되면 built-in된 아파치 버전(httpd-2.2.15)에 맞추어 설치된다. Apache-2.4.12 환경에 맞게 설치하려면 Shibboleth SP SW 및 각종 관련 패키지를 소스코드로부터 설치하거나 SRPM(RPM Source)으로 설치하는 방법이 있다. 여기에서는 후 자의 방법으로 설치한다. SRPM은 RPM 파일을 생성하기 위한 소스 RPM으로 일반적으로 *.src.rpm 확장자를 가진다. SRPM 설치 방법은 우선 1. 설치환경에 맞는 RPM 파일들을 생성하는 단계와 2. 생 성된 RPM들을 이용해 최종 SW를 설치하는 두 단계로 나뉜다. * 참조 - SRPM: http://download.opensuse.org/repositories/security://shibboleth/CentOS_CentOS-6/src/ - RPM: http://download.opensuse.org/repositories/security://shibboleth/CentOS_CentOS-6/x86_64/ - 설치방법 https://venturoustech.wordpress.com/tag/amazon-linux/ https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPLinuxSRPMBuild

1 . Shibboelth 레파지토리 설정

curl –L –s http://download.opensuse.org/repositories/security://shibboleth/CentOS_CentOS-6/security:shibboleth.repo > /etc/yum.repos.d/shibboleth.repo

2 . 필요 패키지 설치

yum install automake boost-devel chrpath doxygen gcc-c++ groff httpd-devel libidn-devel openldap-libidn-devel openssl-libidn-devel redhat-rpm-config stunnel unixODBC-libidn-devel

(12)

12

3 . SRPM 다운로드

log4shib-1.0.9-3.3.src.rpm xerces-c-3.1.4-1.2.src.rpm xml-security-c-1.7.3-3.3.src.rpm curl-openssl-7.56.1-1.1.src.rpm xmltooling-1.6.0-1.2.src.rpm opensaml-2.6.0-1.2.src.rpm shibboleth-2.6.0-2.2.src.rpm wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_CentOS-6/src/log4shib-1.0.9-3.3.src.rpm wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_CentOS-6/src/xerces-c-3.1.4-1.2.src.rpm wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_CentOS-6/src/xml-security-c-1.7.3-3.3.src.rpm wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_CentOS-6/src/curl-openssl-7.56.1-1.1.src.rpm wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_CentOS-6/src/xmltooling-1.6.0-1.2.src.rpm wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_CentOS-6/src/opensaml-2.6.0-1.2.src.rpm wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_CentOS-6/src/shibboleth-2.6.0-2.2.src.rpm

4 . SRPM 빌드 및 RPM 생성

반드시 아래 순서로 설치한다. 각 단계 내에서도 순서대로 설치한다. SRPM(*.src.rpm) 빌드 후

(13)

13

생성된 RPM 파일은 아래 경로에 존재하므로 rpm 설치는 아래 경로로 이동해서 수행한다.

* RPM 생성 경로 : /root/rpmbuild/RPMS/x86_64

‘rpmbuild’ 명렁어가 설치되지 않은 경우 아래와 같이 설치

yum install rpm-build

1 ) log4shib 설치

rpmbuild —rebuild log4shib-1.0.9-3.3.src.rpm

rpm –ivh /root/rpmbuild/RPMS/x86_64/log4shib-debuginfo-1.0.9-3.3.x86_64.rpm rpm –ivh /root/rpmbuild/RPMS/x86_64/liblog4shib*

2 ) xerces-c 설치

rpmbuild —rebuild xerces-c-3.1.4-1.2.src.rpm

rpm –ivh /root/rpmbuild/RPMS/x86_64/llibxerces-c-* rpm –ivh /root/rpmbuild/RPMS/x86_64/xerces-c*

3 ) xml-security-c 설치

rpmbuild –-rebuild xml-security-c-1.7.3-3.3.src.rpm rpm –ivh /root/rpmbuild/RPMS/x86_64/libxml-security* rpm –ivh /root/rpmbuild/RPMS/x86_64/xml-security-c*

4 ) curl-openssl 설치

rpmbuild –-rebuild curl-openssl-7.51.0-2.2.src.rpm rpm –ivh /root/rpmbuild/RPMS/x86_64/libcurl-openssl* rpm –ivh /root/rpmbuild/RPMS/x86_64/curl-openssl*

(14)

14 5 ) xmltooling 설치

rpmbuild –-rebuild xmltooling-1.6.0-1.2.src.rpm rpm –ivh /root/rpmbuild/RPMS/x86_64/libxmltooling* rpm –ivh /root/rpmbuild/RPMS/x86_64/xmltooling*

6 ) opensaml

rpmbuild –-rebuild opensaml-2.6.0-1.2.src.rpm rpm –ivh /root/rpmbuild/RPMS/x86_64/libsaml* rpm –ivh /root/rpmbuild/RPMS/x86_64/opensaml* 7 ) Shibboleth SP 설치 아파치 2.4.12에 맞게 환경을 설정하기 위해 apxs 스크립트를 아래와 같이 변경한다. vi /opt/rh/httpd24/root/usr/bin/apxs 변경 전

my $libdir = `pkg-config —variable=libdir apr-1`; /* 35 line */

변경 후

my $libdir = "/opt/rh/httpd24/root/usr/lib64/"; /* 35 line */

(15)

15

rpmbuild --rebuild --without builtinapache –D 'shib_options --with-apxs24=/opt/rh/httpd24/root/usr/bin/apxs CPPFLAGS="-I/opt/rh/httpd24/root/usr/include/httpd" --with-apr1=/opt/rh/httpd24/root/usr/bin/apr-1-config --with-apu=/opt/rh/httpd24/root/usr/bin/apu-1-config --enable-apache-24 --with-openssl=/usr/local/ssl' shibboleth-2.6.0-2.2.src.rpm RPM 설치 rpm -ivh shibboleth*

(16)

16

4

Shibboleth SP 설정

Shibboleth SP 설정 파일을 수정한다.

vi /etc/shibboleth/shibboleth2.xml

1 . ACL 설정

<!-- Status reporting service. -->

<Handler type="Status" Location="/Status" acl="127.0.0.1 ::1 IP_ADDR"/>

2 . entityID 설정

<ApplicationDefaults entityID="https://SP_ADDRESS/shibboleth" REMOTE_USER="eppn persistent-id targeted-id" attributePrefix=“AJP_”>

3 . SAML 메시지 암호화/서명용 key 생성 및 설정

아래 명령어를 사용하여 Shibboleth에서 사용할 서명 생성

cd /etc/shibboleth

openssl req -newkey rsa:4096 -new -x509 -days 365 -nodes –text -out shibsp.crt – keyout shibsp.key

chmod 644 shibsp.keyvi shibb

Shibboleth SP 설정 파일에서 아래 부분 변경

<CredentialResolver type="File" key="shibsp.key" certificate="shibsp.crt"/>

4 . IDP 메타데이터 설정

(17)

17

<MetadataProvider type="XML" validate="true"

uri="https://fedinfo.kreonet.net/signedmetadata/federation/KAFE-testfed/metadata.xml" backingFilePath="kafe-metadata.xml" reloadInterval="7200"> <MetadataFilter type="RequireValidUntil" maxValidityInterval="2419200"/>

<MetadataFilter type="Signature" certificate="kafe-fed.crt"/> </MetadataProvider> 아래 명령어로 KAFE 메타데이터 인증서를 다운로드 받아 저장 cd /etc/shibboleth wget https://fedinfo.kreonet.net/cert/kafe-fed.crt * KAFE 인증서 신뢰경로 추가 웹브라우저를 이용해 아래 사이트에 접속 후 KAFE 인증서 다운로드를 위한 아래 주소를 방문해서 URL 버튼을 클릭한 다. Chrome 웹 브라우저의 경우 인증서 추가를 위한 프로그램이 실행되고 "Downloading Certificate" 창에서 모두 ‘v’ 후 OK 버튼을 클릭해 신뢰경로에 추가한다.

* 인증서 다운로드 사이트 : https://coreen.kreonet.net/join

Shibboleth SP 설정에 TestIdP 메타데이터 추가

<MetadataProvider type="XML" validate="false"

uri="https://testidp.kreonet.net/simplesaml/saml2/idp/metadata.php“ backingFilePath="testidp-metadata.xml" reloadInterval="7200">

</MetadataProvider>

(18)

18 <SSO entityID="https://testidp.kreonet.net/idp/simplesamlphp" discoveryProtocol="SAMLDS" discoveryURL="https://ds.kreonet.net/kafe"> SAML2 SAML1 </SSO>

6 . SSL 설정

<Sessions lifetime="28800" timeout="3600" relayState="ss:mem" checkAddress="false" handlerSSL="true" cookieProps="http">

7 . SP Metadata 설정 수정

IdP에 eppn등 서비스에서 필요한 정보를 요청하기 위해 아래 부분을 찾아 변경

<Handler type=“MetadataGenerator” Location=“/Metadata” signing=“false”> <md:AttributeConsumingService index="1">

<md:ServiceName xml:lang="en">Liferay Test</md:ServiceName> <md:RequestedAttribute FriendlyName="displayName" Name="urn:oid:2.16.840.1.113730.3.1.241"/> <md:RequestedAttribute FriendlyName="mail" Name="urn:oid:0.9.2342.19200300.100.1.3"/> <md:RequestedAttribute FriendlyName="uid" Name="urn:oid:0.9.2342.19200300.100.1.1"/>

<md:RequestedAttribute FriendlyName="orgName" Name="urn:oid:2.5.4.10"/> <md:RequestedAttribute FriendlyName="eppn"

Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.6"/>

<md:RequestedAttribute FriendlyName="persistent-id" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10"/>

(19)

19 <md:RequestedAttribute FriendlyName="schacHomeOrganization" Name="urn:oid:1.3.6.1.4.1.25178.1.2.9"/> <md:RequestedAttribute FriendlyName="unscoped-affiliation" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.1"/> </md:AttributeConsumingService></md:SPSSODescriptor> </Handler>

8 . 사용자 속성명 설정

oid 기반의 속성명 인식이 가능하도록 attribute-map.xml 파일을 수정 vi /etc/shibboleth/attribute-map.xml

<!-- SCHAC attributes, uncomment to use... --> // 아래 라인 활성화

<Attribute name="urn:oid:1.3.6.1.4.1.25178.1.2.9" id="schacHomeOrganization"/> ...

// 아래 모든 라인 활성화

<Attribute name="urn:oid:2.5.4.3" id="cn"/> <Attribute name="urn:oid:2.5.4.4" id="sn"/>

<Attribute name="urn:oid:2.5.4.42" id="givenName"/>

<Attribute name="urn:oid:2.16.840.1.113730.3.1.241" id="displayName"/> <Attribute name="urn:oid:0.9.2342.19200300.100.1.1" id="uid"/>

<Attribute name="urn:oid:0.9.2342.19200300.100.1.3" id="mail"/> ...

// 아래 라인 활성화

(20)

20

9 . 사용자 속성정책 설정

attribute-policy.xml에 속성정책을 설정

vi /etc/shibboleth/attribute-policy.xml

Shibboleth SP에서 scope 필터링을 하지 않을 경우 코멘트 처리해서 해당 기능 비활성화

<!-- Enforce that the values of schacHomeOrganization are a valid Scope. -->

<!--

<afp:AttributeRule attributeID="schacHomeOrganization">

<afp:PermitValueRule xsi:type="saml:AttributeValueMatchesShibMDScope" /> </afp:AttributeRule>

(21)

21 5

Shibboleth SP를 위한 아파치 설정

1 . Shibboleth SP를 위한 아파치 설정 변경

Shibboleth SP를 위한 아파치 설정파일(shibd.conf)을 복사한다. cp /etc/shibboleth/apache.config /opt/rh/httpd24/root/etc/httpd/conf.d/shibd.conf httpd-2.4 환경에서 생성된 모듈로 모듈명을 변경 vi shibd.conf

LoadModule mod_shib /usr/lib64/shibboleth/mod_shib_24.so

2 . Shibboleth 접근 제한 설정

<Location /secure> AuthType shibboleth # ShibCompatWith24 On ShibRequestSetting requireSession 1 require shib-session </Location>

3 . 아파치 설정 반영

httpd-2.4를 재시작 service httpd24-httpd restart

(22)

22

6

ID 연계 확인

1 . Shibboleth SP 기본 구동 확인

shibd –t 명령어로 점검한다.

* 아래와 같은 에러가 발생하면 시스템에 원래 설치된 libcurl 대신 shibboleth 설치 시 생성된 libcurl을 (libcurl.so.4.4.0) 참조할 수 있도록 수정해야 한다.

2017-10-13 06:09:51 CRIT XMLTooling.Config : libcurl lacks OpenSSL-specific options, this will greatly limit functionality

2017-10-13 06:09:51 ERROR XMLTooling.libcurl.InputStream : error while fetching https://fedinfo.kreonet.net/signedmetadata/federation/KAFE-testfed/metadata.xml: (59) Unknown cipher in list: ALL:!aNULL:!LOW:!EXPORT:!SSLv2

2017-10-13 06:09:51 ERROR XMLTooling.libcurl.InputStream : on Red Hat 6+, make sure libcurl used is built with OpenSSL

이 경우 아래 명령어를 수정 cd /usr/lib64 rm libcurl.so.4 ln -s /opt/shibboleth/lib64/libcurl.so.4.4.0 libcurl.so.4

2 . shibboleth SP를 구동 확인

아래 명령어로 shibboleth SP를 구동하고 상태를 확인한다.

service shibd start service shibd status

정상적으로 구동된다면 아래 사이트에서 로그파일 및 SP 메타데이터를 확인할 수 있다.

* Shibboleth SP 로그파일 : /var/log/shibboleth/shibd.log

(23)

23

이후 단계는 연동할 Identity Provider에서 SP 메타데이터 등록 및 관련 설정을 완료한 뒤 수행 한다.

3 . 확인

service httpd24-httpd restart service shibd restart

웹브라우저로 Shibboleth로 접근을 제한한 경로로 접근한다.

* 접근경로 : http://localhost/secure/

웹브라우저로 Shibboleth Session 정보를 확인한다.

(24)

24

7

AJP를 이용한 Liferay 연동 설정

로컬에 설치된 Shibboleth SP가 AJP를 통해 원격에 설치된 Tomcat 및 Tomcat 응용(Liferay) 에 연동하기 위한 설정에 대해 기술한다.

1 . AJP 모듈 구동 확인

shibboeth SP 아파치 모듈 로드 확인

cd /opt/rh/http24/root/usr/sbin ./apachectl –M | grep mod_shib

AJP 아파치 모듈 로드 확인

./apachectl –M | grep proxy_ajp_module

2 . 아파치 설정

shibboleth SP를 위한 아파치 설정파일에 AJP를 설정 vi /opt/rh/httpd24/root/etc/httpd/conf.d/shibd.conf Shibboleth.sso ProxyPass 예외 처리 <Location /Shibboleth.sso> Satisfy Any

Allow from all

ProxyPass !

</Location>

AJP 패킷 사이즈 설정

ProxyIOBufferSize 65536

(25)

25 ProxyPass / ajp://LIFERAY_IP_ADDRESS:8009/ ProxyPassReverse / ajp://LIFERAY_IP_ADDRESS:8009/ shibboleth 제한 설정 <Location /> AuthType shibboleth require shibboleth </Location> <Location /c/portal/login/shibboleth> AuthType shibboleth ShibRequestSetting requireSession 1 require shib-session </Location>

* /c/portal/login/shibboleth 경로의 경우 Shibboleth를 사용하여 로그인을 하기 위한 경로로 사용. /c/portal/login 경로로 설정할 경우 Liferay의 로컬 로그인 경로를 무시하게 될 수 있음

3 . 구동 및 테스트

service shibd restart

service httpd24-httpd restart

웹브라우저로 “https://IP_ADDRESS/”를 접속해서 원격의 liferay 응용으로 연동이 되면 ‘shibboleth’ 로그인 버튼을 클릭하고 SAML 연동을 확인한다.

(26)

26

8

Liferay Shibboleth Plugin 설치

첨부된 shibboleth.war 파일을 Liferay 관리자 페이지에서 업로드한다.

* Control Panel – Apps – App Manager - Install

Shibboleth 플러그인의 설정에서 플러그인을 활성화

* Control Panel – Configuration – Authentication – Shibboleth

설정명 설정내용 Login URL Shibboleth에서 설정된 로그인 URL, 서비스의 로그인 페이 지가 커스터마이징 된 경우 Shibboleth 로그인을 구현하기 위해서는 경로를 직접 추가해야 함 Logout URL Shibboleth 로그아웃 URL, 로컬 로그아웃의 경우에도 Shibboleth를 먼저 로그아웃 시켜야 하기 때문에 기본값으 로 /Shibboleth.sso/Logout?return=/ 으로 설정 Error URL Shibboleth에서 에러가 발생할 경우 이동할 에러 페이지 경 로

(27)

27

Shibboleth user eppn header

IdP로부터 넘겨받은 eppn의 속성명, ID 생성, 기관명 확인 을 위해 사용되는 정보

User ID Prefix 자동으로 생성할 User ID의 앞에 입력될 키워드 Shibboleth user email header IdP로부터 넘겨받은 사용자 메일 주소

Shibboleth user firstname header

IdP로부터 넘겨받은 사용자 이름, displayName이 서비스에 서 표시되는 사용자 이름

Custom Fields Affiliation Attribute

기관명을 입력하기 위해 생성한 Liferay User Custom Field 이름, 하단의 테이블에서 도메인에 따른 기관명을 설정, 도 메인을 *로 설정하는 경우 도메인에 해당하는 기관이 없는 상태일 때 지정할 기관명을 설정 할 수 있음

Logout enable Shibboleth 로그아웃 기능 활성화

Auto-create users 사용자가 기존에 존재하지 않을 경우 자동 생성

Auto-update users

Shibboleth를 사용하여 로그인 할 때마다 사용자의 정보를 최신 상태로 업데이트

(28)

28

9

Liferay 연합인증 연동 확인

Apache가 설치된 IP1 주소로 접속하면 AJP를 통해 Tomcat에 설치된 LifeLay 로 자동 리다이렉션 된다. KAFE 버튼을 클릭해서 연합인증을 이용한 로그인을 시도한다.

(29)

29

아래와 같이 사용자가 사용자 정보 제공에 동의하면 인증게이트웨이에 저장된 사용자 속성 정보가LifeLay로 전달된다.

이어 LifeLay 에서 이용약관 동의 및 암호 설정 창이 나타나는데 동의를 클릭하고 암호를 설정하면 LifeLay 환경에 사용자 정보가 등록된다.

(30)

30

참조

관련 문서

또한 백업 소프트웨어에서 소산 백업만을 위해 별도 백업을 수행하기도 하지만 정기 백업 시 두벌씩 데이터를 백업하거나, 백업 완료 후 매체 복사를 통해 한 벌을

Examine the survey results in &lt;A&gt; and part of the interview with the teacher who taught Practical English II in &lt;B&gt;, and follow the

&lt;Inclusion&gt; -Undergoing colonoscopy as a screening &lt;Exclusion&gt; -Symptoms of lower gastrointestinal tract disease, including rectal bleeding, changes in bowel

또한 JEUSMain.xml의 &lt;application&gt; 설정을 통해서 각 컨테이너에 대한 Auto Deploy 디렉터리 설정을 할 수 있다.. AutoDeploy

&lt;참고&gt; WTO설립을 위한 마라케쉬 협정

즉, &lt;FRAME&gt; 태그의 name 속성을 이용하여 프레임의 이름을 지정하고, &lt;A&gt; 태그의 target 속성에 그 이름을 지정하면 지정된

• ‘git checkout’ 명령에 ‘&lt;원격 저장소 이름&gt;/&lt;원격 저장소의 브랜치 이름&gt;’ 인자로 줘서 특정 원격 저장소의 특정 브랜치 파일 워킹 스페이스로 가져올 수

&lt;충무공 이순신 리더십 함양과정&gt; 운영 사후협의회 연산중학교. &lt;미래를 준비하는