SiteMinder 웹서비스시나리오 두번째버전
포함된도움말시스템및전자적으로배포된매체를포함하는이문서 ( 이하 " 문서 ") 는정보제공의목적으로만제공되며 CA 에의해언제든변경또는취소될수있습니다. CA 의사전서면동의없이본건문서의전체혹은일부를복사, 전송, 재생, 공개, 수정또는복제할수없습니다. 이문서는 CA 의기밀및독점정보이며, 귀하는이문서를공개하거나다음에의해허용된경우를제외한다른용도로사용할수없습니다 : (i) 귀하가이문서와관련된 CA 소프트웨어를사용함에있어귀하와 CA 사이에별도동의가있는경우, 또는 (ii) 귀하와 CA 사이에별도기밀유지동의가있는경우. 상기사항에도불구하고, 본건문서에기술된라이선스가있는사용자는귀하및귀하직원들의해당소프트웨어와관련된내부적인사용을위해합당한수의문서복사본을인쇄또는제작할수있습니다. 단, 이경우각복사본에는전체 CA 저작권정보와범례가첨부되어야합니다. 본건문서의사본인쇄또는제작권한은해당소프트웨어의라이선스가전체효력을가지고유효한상태를유지하는기간으로제한됩니다. 어떤사유로인해라이선스가종료되는경우, 귀하는서면으로문서의전체또는일부복사본이 CA 에반환되거나파기되었음을입증할책임이있습니다. CA 는관련법의허용범위내에서, 상품성에대한묵시적보증, 특정목적에대한적합성또는권리위반보호를비롯하여 ( 이에제한되지않음 ) 어떤종류의보증없이본문서를 " 있는그대로 " 제공합니다. CA 는본시스템의사용으로인해발생되는직, 간접손실이나손해 ( 수익의손실, 사업중단, 영업권또는데이터손실포함 ) 에대해서는 ( 상기손실이나손해에대해사전에명시적으로통지를받은경우라하더라도 ) 귀하나제 3 자에게책임을지지않습니다. 본건문서에언급된모든소프트웨어제품의사용조건은해당라이선스계약을따르며어떠한경우에도이문서에서언급된조건에의해라이선스계약이수정되지않습니다. 본문서는 CA 에서제작되었습니다. 본시스템은 " 제한적권리 " 와함께제공됩니다. 미합중국정부에의한사용, 복제또는공개는연방조달규정 (FAR) 제 12.212 조, 제 52.227-14 조, 제 52.227-19(c)(1) 호 - 제 (2) 호및국방연방구매규정 (DFARS) 제 252.227-7014(b)(3) 호또는해당하는경우후속조항에명시된제한사항을따릅니다. Copyright 2013 CA. All rights reserved. 본시스템에서언급된모든상표, 상호, 서비스표시및로고는각해당회사의소유입니다.
CA Technologies 제품참조 이문서는다음 CA Technologies 제품을참조합니다 : SiteMinder CA SiteMinder for Secure Proxy Server CA 에문의 기술지원팀에문의 온라인기술지원및지사목록, 기본서비스시간, 전화번호에대해서는 http://www.ca.com/worldwide 에서기술지원팀에문의하십시오.
설명서변경사항 이설명서가마지막으로릴리스된이후에다음과같이업데이트되었습니다. 클라이언트프로그램생성 ( 페이지 12) - WADL 경로가수정되었습니다. 이변경사항은 CQ171651 및 STAR Issue # 21406410:01 을해결합니다.
목차 제 1 장 : SiteMinder 인증및권한부여웹서비스 7 인증및권한부여웹서비스로작업하는방법... 7 인증및권한부여웹서비스개요... 8 웹서비스구성... 9 웹서비스에대한 ACO 생성... 10 웹서비스보호... 11 웹서비스가사용되도록설정... 11 웹서비스로그구성... 12 클라이언트프로그램생성... 12 인증 SOAP 인터페이스... 13 인증 REST 인터페이스... 16 권한부여 SOAP 서비스... 18 권한부여 REST 인터페이스... 19 목차 5
제 1 장 : SiteMinder 인증및권한부여웹서비스 이섹션은다음항목을포함하고있습니다. 인증및권한부여웹서비스로작업하는방법 ( 페이지 7) 인증및권한부여웹서비스개요 ( 페이지 8) 웹서비스구성 ( 페이지 9) 클라이언트프로그램생성 ( 페이지 12) 인증및권한부여웹서비스로작업하는방법 SiteMinder 에서는현재인증웹서비스와권한부여웹서비스를제공하고있습니다. SiteMinder 인증및권한부여웹서비스를사용하는프로세스에는다음다이어그램의절차가포함됩니다. 제 1 장 : SiteMinder 인증및권한부여웹서비스 7
인증및권한부여웹서비스개요 인증및권한부여웹서비스에대한작업을하려면다음단계를수행하십시오. 1. ACO 를생성합니다 ( 페이지 10). 2. 웹서비스를보호합니다 ( 페이지 11). 3. 웹서비스가사용되도록설정합니다 ( 페이지 11). 4. 웹서비스로그를구성합니다 ( 페이지 12). 5. 클라이언트프로그램을생성합니다 ( 페이지 12). 인증및권한부여웹서비스개요 SiteMinder 인증및권한부여웹서비스는 SPS( 보안프록시서버 ) 설치에포함됩니다. 각구성요소의사용여부를개별적으로설정할수있습니다. 웹서비스구성프로세스에서는다음과같은 SiteMinder 개체가구성되어있다고가정합니다. 호출자가인증하는대상응용프로그램을보호하기위한에이전트하나이상 인증및권한부여에필요한영역, 사용자디렉터리, 정책및응답 인증및권한부여웹서비스를사용하면다른방법으로보호되지않는응용프로그램을지원할수있습니다. 예를들어휴대폰의독립형응용프로그램은적절한 SiteMinder 개체가있으면사용자를인증할수있습니다. 이러한웹서비스는 SOAP 1.2 프로토콜과 HTTP 기반 RESTful 아키텍처를지원합니다. 인증및권한부여웹서비스에서는다음과같은기능을제공합니다. 로그인 (login) - 인증을시도하고인증이성공하면세션토큰을반환합니다. 참고 : 사용자추적사용옵션이사용되도록설정되면응답에아이덴티티토큰도포함됩니다. 부울로그인 (blogin) - 인증을시도하고로그인성공여부를확인합니다. 세션토큰은반환하지않습니다. 로그아웃 (logout) - 사용자또는사용자그룹을로그아웃합니다. 권한부여 (authorize) - 권한부여상태메시지와새로고친세션토큰을반환합니다. 8 웹서비스시나리오
웹서비스구성 작업요청에대한응답은 SiteMinder 에서생성한헤더에따라다릅니다. 리소스가익명인증체계로보호되는경우응답에세션토큰이포함되지않고아이덴티티토큰이포함됩니다. 이아이덴티티토큰을이후권한부여요청에세션토큰대신사용할수있습니다. 인증요청에는다음매개변수가포함됩니다. 응용프로그램 ID(appId) 리소스문자열 (resource) 작업 (action) 사용자자격증명 응용프로그램 ID 는 SiteMinder 응용프로그램개체가아니라리소스계층의위치에대해사용자가정의한논리적이름을나타냅니다. 응용프로그램 ID 는내부적으로에이전트에매핑됩니다. SiteMinder 는에이전트이름을사용하여영역을확인합니다. 영역, 리소스문자열및사용자자격증명으로사용자를인증할수있습니다. 권한부여요청은인증요청보다단순합니다. 권한부여요청에는로그인응답에서가져온응용프로그램 ID(appId), 리소스경로, 작업및세션토큰이포함됩니다. 웹서비스는토큰의유효성을검사한후지정된리소스에대한액세스권한을부여할지여부를결정합니다. 웹서비스구성 기본적으로 SPS 12.51 을설치하거나 SPS 12.51 로업그레이드하면웹서비스기능이설치됩니다. 웹서비스를구성하려면다음단계를수행하십시오. 1. WAMUI 를통해웹서비스에대한 ACO 를생성합니다. 2. 웹서비스를보호합니다. 3. SPS 관리 UI 를통해웹서비스가사용되도록설정합니다. 4. ( 선택사항 ) 웹서비스로그를구성합니다. 제 1 장 : SiteMinder 인증및권한부여웹서비스 9
웹서비스구성 웹서비스에대한 ACO 생성 ACO 를통해웹서비스를관리할수있습니다. 웹서비스를사용하려면 enableauth 매개변수나 enableaz 매개변수, 또는둘모두를활성화해야합니다. 다음단계를수행하십시오. 1. WAMUI 에서 AuthAzServiceDefaultSettings 템플릿을기반으로하는 ACO 를생성합니다. 2. 다음매개변수를구성합니다. AgentName 리소스를보호하는웹에이전트의이름을정의합니다. 각웹에이전트가응용프로그램을보호하는하나이상의웹에이전트를정의할수있습니다. 값은다음형식으로입력하십시오. agent_name1,agent_appid1,agent_name2,agent_appid2,...,agent_namen,agent_a ppidn agent_name appid enableauth 리소스를보호하는웹에이전트의이름을정의합니다. agent_name 에지정된웹에이전트의참조이름또는웹에이전트에의해보호되는응용프로그램의참조이름을정의합니다. SiteMinder 는웹서비스요청에서이값을사용하므로사용자로부터에이전트이름을보호합니다. 인증웹서비스의상태를지정합니다. 인증웹서비스를사용하려면이값을 yes 로설정하십시오. enableaz 권한부여웹서비스의상태를지정합니다. 권한부여웹서비스를사용하려면이값을 yes 로설정하십시오. RequireAgentEnforcement SiteMinder 에이전트가웹서비스를보호해야하는지여부를지정합니다. 프로덕션환경에서는 SiteMinder 에이전트가웹서비스를보호하도록이값을 yes 로설정할것을강력히권장합니다. 이값을 yes 로설정한경우웹서비스가보호되지않으면웹서비스에대한요청이실패합니다. 10 웹서비스시나리오
웹서비스구성 참고 : RequireAgentEnforcement 의값은테스트환경인경우또는 SiteMinder 이외의다른메커니즘을사용하여웹서비스를보호하는경우 'no' 로설정할수있습니다. 3. 변경내용을저장합니다. 웹서비스보호 프로덕션환경에서는웹서비스를보호할것을권장합니다. 웹서비스의웹에이전트를보호하면사용자요청이처리되기전에 SiteMinder 가웹서비스클라이언트를인증및권한부여할수있습니다. 프로덕션환경에서웹서비스를보호하면 CA SiteMinder for Secure Proxy Server 가사용자요청에 SMSESSION 쿠키를포함합니다. RequestSmSessionCookie ACO 매개변수가활성화된경우 SiteMinder 는웹서비스가사용자요청을처리하기전에 SMSESSION 쿠키에대한사용자요청을확인하도록합니다. 웹서비스를보호하기위해 X.509 클라이언트인증서인증체계를사용하여웹서비스루트 URL 을보호하도록 CA SiteMinder for Secure Proxy Server 를구성할것을권장합니다. 웹서비스가사용되도록설정 SPS 관리 UI 를통해이전절차에서생성한 ACO 를사용하여웹서비스가사용되도록설정하십시오. 참고 : enableauth 및 enableaz 의값이 no 로설정되어있으면 SPS 관리 UI 를통해해당지원기능이사용되도록설정해도웹서비스가작동하지않습니다. 다음단계를수행하십시오. 1. " 프록시구성 ", " 인증및권한부여웹서비스 " 로이동합니다. 2. " 호스트이름 " 에웹서비스가상호스트의고유호스트이름을입력합니다. 3. " 에이전트구성개체 " 에웹서비스에대해생성한 ACO 의이름을입력합니다. 4. " 저장 " 을클릭합니다. 웹서비스가사용되도록설정됩니다. 제 1 장 : SiteMinder 인증및권한부여웹서비스 11
클라이언트프로그램생성 웹서비스로그구성 웹서비스가사용되도록설정하면 CA SiteMinder for Secure Proxy Server 에서해당웹서비스의로그를 server.log 파일에저장합니다. 로그위치를 server.log 에서 authazws.log 로변경할수도있습니다. 로그위치를변경하려면다음단계를수행하십시오. 1. sps_home/proxy-engine/conf/webservicesagent 로이동합니다. 2. authaz-log4j.xml 파일을백업합니다. 3. 원본 authaz-log4j.xml 파일을열고다음단계를수행합니다. a. 다음 AuthAZ_ROLLING appender 태그의주석처리를제거합니다. <appender name="authaz_rolling" class="org.apache.log4j.dailyrollingfileappender"> <param name="file" value="logs/authazws.log"/> </layout> </appender> <layout class="org.apache.log4j.patternlayout"> <param name="conversionpattern" value="%d %-5p [%c] - %m%n"/> b. AuthAZ_ROLLING 태그에대한다음 appender-ref 를모두찾아해당주석처리를제거합니다. <appender-ref ref="authaz_rolling"/> 4. 변경내용을저장하고 CA SiteMinder for Secure Proxy Server 를다시시작합니다. 로그위치가 sps_home/proxy-engine/logs/ 에있는 authazws.log 파일로변경됩니다. 클라이언트프로그램생성 클라이언트프로그램은다른응용프로그램대신웹서비스에대한인증및권한부여요청을발행하는역할을합니다. 클라이언트프로그램에는클라이언트스텁에대한코드가필요합니다. 스텁은웹서비스와의통신을위해메시지를관리하고서로주고받습니다. 웹서비스는 WSDL 파일 (SOAP 프로토콜의경우 ) 과 WADL 파일 (REST 아키텍처의경우 ) 을지원합니다. 웹브라우저를사용하여 WSDL 또는 WADL 파일에액세스한후이를 XML 파일로저장할수있습니다. 12 웹서비스시나리오
클라이언트프로그램생성 다음단계를수행하십시오. 1. 필요한자격증명을수집하는응용프로그램용비즈니스논리를작성합니다. 2. 클라이언트스텁을생성합니다. 필요한경우타사도구와함께 WSDL 또는 WADL 파일을사용하여클라이언트스텁을생성할수있습니다. WSDL 을로드하려면다음 URL 을사용하십시오 : http://hostname/authazws/auth?wsdl WADL 을로드하려면다음 URL 을사용하십시오 : http://hostname/authazws/authrestservice/application.wadl 3. 클라이언트스텁을가져오고, 웹서비스를호출하는스텁개체를인스턴스화합니다. 다음단원에서는참조를위해단순화된샘플 SOAP 및 REST 메시지를보여줍니다. 인증 SOAP 인터페이스 이단순화된샘플에서는 SOAP 프로토콜을사용한인증작업을보여줍니다. username, password 및 binarycredentials 라는세개의필드만으로구성된 IdentityContext 로대부분의인증체계를지원할수있습니다. 다른필드가더필요한체계의경우자격증명유형에맞게입력이조정된추가작업에서지원됩니다. 다음예제는인증웹서비스의일반적인사용자로그인요청입니다. <s:envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" <s:header/> <s:body> <aut:login> xmlns:aut="http://ca.com/2010/04/15/authentication.xsd"> <identitycontext> <binarycreds> </binarycreds> <password>user1</password> <username>user1</username> </identitycontext> <appid>app1</appid > <action>get</action> <resource>/*</resource > </aut:login> </s:body> </s:envelope> 제 1 장 : SiteMinder 인증및권한부여웹서비스 13
클라이언트프로그램생성 부울로그인 (blogin) 작업은로그인 (login) 작업과유사하지만다음예제와같이 blogin 은응답에 SMSESSION 값을반환하지않는다는차이점이있습니다. <s:envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" <s:header/> <s:body> <aut:blogin> xmlns:aut="http://ca.com/2010/04/15/authentication.xsd"> <identitycontext> <binarycreds> </binarycreds> <password>user1</password> <username>user1</username> </identitycontext> <appid>app1</appid > <action>get</action> <resource>/*</resource > </aut:blogin> </s:body> </s:envelope> 다음예제에서는성공적인로그인응답을나타냅니다. <s:envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"> <s:header/> <s:body> <aut:loginresponse xmlns:aut="http://ca.com/2010/04/15/authentication.xsd"> <return> <message>authentication successful.</message> <resultcode>login_success</resultcode> <sessiontoken>session</sessiontoken> <responses> <response/> <response/> </responses> </return> </aut:loginresponse> </s:body> </s:envelope> 14 웹서비스시나리오
클라이언트프로그램생성 다음예제에서는실패한로그인시도를나타냅니다. <s:envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"> <s:header/> <s:body> <ns2:loginresponse xmlns:ns2="http://webservice.sm.services.soa.ca.com/"> <return> <message>authentication failured</message> <resultcode>login_failed</resultcode> <smsessioncookievalue/> </return> </ns2:loginresponse> </s:body> </s:envelope> 다음예제에서는인증웹서비스사용자로그아웃요청을나타냅니다. 참고 : 사용자가성공적으로로그아웃했더라도해당 SessionToken 은유효한사용자자격증명으로간주되므로에이전트가권한부여에이 SessionToken 을계속사용할수있습니다. <s:envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" <s:header/> <s:body> <aut:logout> xmlns:aut="http://ca.com/2010/04/15/authentication.xsd"> <smsessioncookievalue>session</smsessioncookievalue> </aut:logout> </s:body> </s:envelope> 다음예제에서는성공적인인증웹서비스로그아웃응답을나타냅니다. <s:envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"> <s:header/> <s:body> <ns2:logoutresponse xmlns:ns2="http://ca.com/2010/04/15/authentication.xsd"> <return> <message>logout successful.</message> <resultcode>success</resultcode> </return> </ns2:logoutresponse> </s:body> </s:envelope> 제 1 장 : SiteMinder 인증및권한부여웹서비스 15
클라이언트프로그램생성 인증 REST 인터페이스 REST 는 REpresentational State Transfer 를의미합니다. REST 에서는서비스요청이개체의상태를 URI 를통해액세스할수있도록변환합니다. HTTP 의경우생성, 읽기, 업데이트및삭제같은작업을통해상태가변경됩니다. 인증및권한부여를위한 URI 매핑은 appid 와 resourcepath 로구성됩니다. 리소스상태란인증또는권한부여된사용자와리소스를연결한것을총칭합니다. 인증에사용되는서비스이름은 login, blogin 및 logout 입니다. https://host:port#/login/appid/resourcepath/ 형식의 URI 는다음요청을포스트합니다. <loginrequest> <binarycreds></binarycreds> <password>user1</password> <username>user1</username> <action>get</action> </loginrequest> 로그인응답 : HTTP 반환코드 200 <loginresponse> <message>authentication successful</message> <resultcode>login_success</resultcode> <smsessiontoken>session</smsessioncookievalue> <authenticationresponses> <response> </response> <name>sm_ SESSIONDRIFT</name> <value>0</value> </ authenticationresponses > </loginresponse> HTTP 반환코드 400 <loginresponse> <message>bad Request</message> <resultcode>login_error</resultcode> </loginresponse> 16 웹서비스시나리오
클라이언트프로그램생성 HTTP 반환코드 200 <loginresponse> <message>authentication Failed</message> <resultcode>login_failed</resultcode> <authenticationresponses> <response><name>sm_authreason</name> <value>0</value> </response> </ authenticationresponses > </loginresponse> HTTP 반환코드 500 <loginresponse> <message>system</message> <resultcode>server Error</resultCode> </loginresponse> 부울로그인 (blogin) 작업은로그인 (login) 과유사합니다. http://host:port#/blogin/appid/resourcepath 형식의 URI 는로그인요청에표시된것과같이포스트하며, 응답메시지에서 yes 또는 no 를반환합니다. http://host:port#/logout/appid/resourcepath/ 형식의 URI 는다음과같은로그아웃요청을포스트합니다. <logoutrequest> <smsessioncookievalue>session</smsessioncookievalue> </logoutrequest > 인증웹서비스로그아웃응답 : <logoutresponse> <message>logout successful(failed).</message> <resultcode>logout_success</resultcode> <smsessioncookievalue>session</smsessioncookievalue> </logoutresponse> 제 1 장 : SiteMinder 인증및권한부여웹서비스 17
클라이언트프로그램생성 권한부여 SOAP 서비스 다음 XML 은웹서비스에대한권한부여요청을대략적으로나타낸것입니다. <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://ca.com/2010/04/15/authorization.xsd"> <soapenv:header/> <soapenv:body> <aut:authorize> <sessiontoken>session</sessiontoken> <appid></appid> <action>get,post</action> <resource>/domainadmin/a.jsp</resource> </aut:authorize> </soapenv:body> </soapenv:envelope> 다음예제에서는권한부여웹서비스 AUTHORIZED 응답을나타냅니다. <env:envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> <env:header/> <env:body> <ns2:authorizeresponse xmlns:ns2="http://ca.com/2010/04/15/authorization.xsd"> <return> <message>authorization Successful</message> <resultcode>authorized</resultcode> <sessiontoken>aklaks</sessiontoken> <authorizationresponses> <response/> </authorizationresponses> </return> </ns2:authorizeresponse> </env:body> </env:envelope> 다음예제에서는권한부여웹서비스 UN AUTORIZED 응답을나타냅니다. <env:envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> <env:header/> <env:body> <ns2:authorizeresponse xmlns:ns2="http://ca.com/2010/04/15/authorization.xsd"> <return> <message> Authorization Failed</message> <resultcode>notauthorized</resultcode> </return> </ns2:authorizeresponse> </env:body> </env:envelope> 18 웹서비스시나리오
클라이언트프로그램생성 참고 : 유효한세션토큰을포함한권한부여웹서비스요청의경우 NOTAUTHORIZED 권한부여응답에는다음과같은제약조건이있습니다. 1. WAMUI 에서다음특성으로만응답을구성할수있습니다. SM_ONREJECTTEXT SMREDIRECTURL 또는 SM_REDIRECTURL SMERROR 2. 응답에는세션토큰이포함되지않습니다. 권한부여 REST 인터페이스 권한부여를위한 REST 인터페이스는 https://fqservername:port/authz/appid/resourcepath/ 입니다. <authorizationrequest> <action>post</action> <resource>realma/index.html</resource> <sessiontoken>affl;;alkf;l;fd</sessiontoken> </authorizationrequest> HTTP 반환코드 200: < authorizationresult > <message>the user is authorized.</message> <resultcode>authorized</resultcode> </authorizationresult > 제 1 장 : SiteMinder 인증및권한부여웹서비스 19