Skip To Content

Shibboleth 구성

Shibboleth 3.2x 및 3.3.x를 Portal for ArcGIS의 엔터프라이즈 로그인 IDP로 구성할 수 있습니다. 구성 절차는 Portal for ArcGIS에 엔터프라이즈 IDP 등록 및 엔터프라이즈 IDP에 Portal for ArcGIS 등록의 두 가지 주요 단계로 구성됩니다.

필수 정보

Portal for ArcGIS 사용자가 엔터프라이즈 로그인을 사용하여 로그인할 때에는 IDP로부터 특정 속성 정보를 받아야 합니다. NameID 속성은 Portal for ArcGIS 작업과 페더레이션하기 위해 SAML 응답에서 IDP가 보내야 하는 필수 속성입니다. Portal for ArcGIS에서는 NameID 값을 사용하여 기명 사용자를 식별하므로 사용자를 고유하게 식별하는 상수 값을 사용하는 것이 좋습니다. IDP의 사용자가 로그인하면 Portal for ArcGIS에서 해당 사용자 저장소에 사용자 이름이 NameID인 새 사용자를 생성합니다. NameID에서 보내는 값에 사용할 수 있는 문자는 영숫자, _(밑줄), .(점), 그리고 @ 기호입니다. 다른 모든 문자는 Portal for ArcGIS에서 생성한 사용자 이름에 밑줄을 포함하도록 이스케이프됩니다.

Portal for ArcGIS 은 엔터프라이즈 IDP에서 엔터프라이즈 로그인의 givenNameemail address 속성 내부 흐름을 지원합니다. 사용자가 엔터프라이즈 로그인을 사용하여 로그인하고 Portal for ArcGISgivennameemail 또는 mail(이)라는 이름의 속성을 받을 경우(어떤 속성이든) Portal for ArcGIS은 IDP에게 받은 값으로 사용자 계정의 전체 이름과 이메일 주소를 채웁니다. 사용자가 알림을 받을 수 있도록 엔터프라이즈 IDP의 email address를 전달하는 것이 좋습니다.

에 엔터프라이즈 IDP로 Shibboleth 등록 Portal for ArcGIS

  1. 포털 웹 사이트에 내 기관의 관리자로 로그인하여 기관 > 설정 편집 > 보안을 클릭합니다.
  2. 엔터프라이즈 로그인 섹션에서 단일 아이덴티티 공급자 옵션을 선택하고 엔터프라이즈 로그인 설정 버튼을 클릭한 다음, 창이 나타나면 기관의 이름을 입력합니다(예시: City of Redlands). 사용자가 포털 웹 사이트에 접근하는 경우 이 텍스트가 SAML 로그인 옵션의 일부로 나타납니다(예시: City of Redlands 계정 사용).
    참고 사항:

    포털에 대해 하나의 엔터프라이즈 IDP 또는 하나의 IDP 페더레이션만 등록할 수 있습니다.

  3. 사용자가 자동으로 또는 관리자가 계정을 포털에 추가한 후 기관에 가입할 수 있는지 여부를 선택합니다. 첫 번째 옵션을 선택하면 사용자가 관리자의 개입 없이 엔터프라이즈 로그인으로 포털에 로그인할 수 있습니다. 사용자의 계정은 처음 로그인할 때 포털에 자동으로 등록됩니다. 두 번째 옵션을 이용하려면 관리자가 커맨드 라인 유틸리티 또는 Python 스크립트 샘플을 사용하여 필요한 계정을 포털에 등록해야 합니다. 계정이 등록되고 나면 사용자는 포털에 로그인할 수 있게 됩니다.
    팁:

    하나 이상의 엔터프라이즈 계정을 포털의 관리자로 지정하고 초기 관리자 계정을 삭제하거나 수준을 내리는 것이 좋습니다. 또한 사용자가 자신의 계정을 생성하지 못하도록 포털 웹 사이트에서 계정 생성 버튼 및 등록 페이지(signup.html)를 비활성화하는 것이 좋습니다. 자세한 지침은 포털에서 SAML을 준수하는 ID 공급자 구성을 참고하세요.

  4. 다음 두 가지 옵션 중 하나를 사용하여 IDP에 대한 메타데이터 정보를 제공합니다.
    • File - 기본 설정에 따라 Shibboleth에서는 SHIBBOLETH_HOME/metadata에 IdP 메타데이터 파일을 제공합니다. 메타데이터 파일에 접근할 수 있으면 엔터프라이즈 IDP의 메타데이터에 대해 파일 옵션을 선택하고 SHIBBOLETH_HOME/metadata/idp-metadata.xml 파일로 이동합니다. Portal for ArcGIS는 IDP 메타데이터 파일의 첫 번째 서명 인증서를 사용하여 Shibboleth의 SAML 어설션 응답 내 서명을 확인합니다. 하지만 기본 설정에 따라 Shibboleth IDP 메타데이터 파일에 나열되어 있는 첫 번째 서명은 백채널 TLS 통신용이며 두 번째 서명이 서명 어설션 응답용입니다. 첫 번째 서명에 주석을 달거나 첫 번째 서명을 두 번째 서명 아래로 이동한 다음, 업데이트된 메타데이터 파일을 사용하여 Shibboleth를 Portal for ArcGIS에 등록해야 합니다. 서명은 메타데이터 파일의 <KeyDescriptor use="signing"> 요소를 통해 정의됩니다.
    • 매개변수 - URL 또는 페더레이션 메타데이터 파일에 접근할 수 없는 경우 이 옵션을 선택합니다. 값을 수동으로 입력하고 요청을 받은 매개변수인 로그인 URL과 인증서를 BASE 64 형식으로 인코딩하여 제공합니다. Shibboleth 관리자에게 이러한 매개변수를 확인할 수 있습니다.
  5. 다음과 같은 고급 설정을 적절히 구성합니다.
    • 어설션 암호화 - 이 옵션을 선택하면 SAML 어설션 응답을 암호화하도록 Shibboleth가 구성됩니다.
    • 서명한 요청 활성화 - 이 옵션을 선택하면 Shibboleth로 보내진 SAML 인증 요청이 Portal for ArcGIS에 의해 서명됩니다.
    • 엔터티 ID - 새 엔터티 ID를 사용하여 포털을 Shibboleth에 고유하게 식별하려면 이 값을 업데이트합니다.
    • 로그인 시 프로필 업데이트 - 이 옵션을 선택하면 Portal for ArcGIS에서 사용자의 givenNameemail address 속성이 업데이트됩니다(마지막 로그인 이후 이러한 속성이 변경된 경우).
    • SAML 기반 그룹 멤버십 활성화 - 이 옵션을 선택하면 그룹 생성 프로세스 중에 기관 구성원이 지정된 SAML 기반 엔터프라이즈 그룹을 Portal for ArcGIS 그룹에 연결할 수 있습니다.

    어설션 암호화서명한 요청 활성화 설정에는 포털 KeyStore의 samlcert 인증서가 사용됩니다. 새 인증서를 사용하려면 samlcert 인증서를 삭제하고 포털로 인증서 가져오기의 단계에 따라 동일한 별칭(samlcert)의 새 인증서를 생성한 다음 포털을 다시 시작합니다.

    참고 사항:

    현재 ID 공급자에 로그아웃 전파로그아웃 URL은 지원되지 않습니다.

Shibboleth에 신뢰할 수 있는 서비스 공급자로 Portal for ArcGIS 등록

  1. Shibboleth에서 신뢰 당사자로 Portal for ArcGIS를 구성합니다.
    1. 포털의 메타데이터 파일을 가져와 XML 파일로 저장합니다.

      메타데이터 파일을 가져오려면 내 기관의 관리자로 로그인하여 기관 페이지를 엽니다. 설정 편집 버튼, 보안 탭을 차례로 클릭하고 엔터프라이즈 로그인 섹션에서 서비스 공급자 가져오기 버튼을 클릭합니다.

    2. MetadataProvider 파일에서 새 SHIBBOLETH_HOME/conf/metadata-providers.xml 요소를 정의하여 Portal for ArcGIS를 Shibboleth의 신뢰할 수 있는 서비스 공급자로 구성합니다.

      아래 코드 조각을 루트 MetadataProvider 요소 내에 추가합니다. 기관의 메타데이터 XML 파일(위의 1.a 단계에서 저장)에 대한 경로를 제공합니다.

      <MetadataProvider id="EsriSP" xsi:type="FilesystemMetadataProvider"
      xmlns="urn:mace:shibboleth:2.0:metadata" 
      	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      	xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd"
      	failFastInitialization="true"
      	metadataFile=" <PATH_TO_THE_SAVED_METADATA>/esri-sp-metadata.xml" />
  2. 사용자 인증을 구성합니다. 다음 예에서 SHIBBOLETH_HOME/conf/ldap.properties: 파일의 필요 등록정보를 업데이트하여 LDAP Directory Server를 사용자 저장소로 구성합니다.

    idp.authn.LDAP.authenticator = bindSearchAuthenticator

    idp.authn.LDAP.ldapURL = ldaps://myldap.example.org:port

    idp.authn.LDAP.baseDN = ou=People,dc=example,dc=org

    idp.authn.LDAP.userFilter= (uid={user})

    idp.authn.LDAP.bindDN = cn=readonlyuser,dc=example,dc=org

    idp.authn.LDAP.bindDNCredential = userpassword

  3. Shibboleth에서 반환하도록 사용자 속성을 구성합니다.
    1. SHIBBOLETH_HOME/conf/attribute-resolver.xml을(를) 편집합니다. 의견을 추가하거나 기존의 모든 예제 속성 정의 및 데이터 커넥터를 삭제합니다.
    2. mail 파일에서 givenName 파일로 SHIBBOLETH_HOME/conf/attribute-resolver-full.xmlSHIBBOLETH_HOME/conf/attribute-resolver.xml에 대한 정의를 복사합니다.
    3. SHIBBOLETH_HOME/conf/attribute-resolver-ldap.xml에서 SHIBBOLETH_HOME/conf/attribute-resolver.xml(으)로 LDAP 데이터 커넥터를 복사합니다. uid에 대한 정의 또는 NAMEID 속성으로 반환하려는 다른 속성을 복사합니다.
    4. 서비스 공급자로 릴리스하기 위해 속성을 구성합니다. SHIBBOLETH_HOME/conf/attribute-filter.xml 파일을 편집하고 다음을 추가합니다.
    <AttributeFilterPolicy id="ArcGIS">
            <PolicyRequirementRule xsi:type="Requester" value="[The Entity ID of your Portal instance]" />
    			<AttributeRule attributeID="<NameID Attribute>">
    				<PermitValueRule xsi:type="ANY" />
    			</AttributeRule>
    			<AttributeRule attributeID="givenName">
    				<PermitValueRule xsi:type="ANY" />
    			</AttributeRule>
    			<AttributeRule attributeID="mail">
    				<PermitValueRule xsi:type="ANY" />
    			</AttributeRule>
    		</AttributeFilterPolicy>
  4. SHIBBOLETH_HOME/conf/relying-party.xml 파일을 편집합니다.
    1. 아래 XML 코드를 복사하고 shibboleth.RelyingPartyOverrides 요소 내부에 붙여넣어 Shibboleth ID 공급자에 대한 기본 구성을 무시할 수 있습니다.
      <bean parent="RelyingPartyByName" c:relyingPartyIds="[The Entity ID of your Portal instance]">
      <property name="profileConfigurations">
       <list>
        <bean parent="SAML2.SSO"    p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified" />
       </list>
      </property>
      </bean>

      nameIDFormatPrecedence 매개변수는 IDP에게 ArcGIS OnlinePortal for ArcGIS에 필요한 unspecified 형식으로 SAML 이름 ID 속성을 보내도록 지시합니다.

    2. encryptAssertions 매개변수를 false(으)로 설정하여 Shibboleth ID 공급자에서 어설션 암호화를 해제합니다.
      <bean parent="RelyingPartyByName" c:relyingPartyIds="[The Entity ID of your Portal instance]">
      		<property name="profileConfigurations">
      			<list>
      				<bean parent="SAML2.SSO" 					p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified" 
      					p:encryptAssertions="false" />
      			</list>
      		</property>
      		</bean>
  5. SHIBBOLETH_HOME/conf/saml-nameid.xml 파일을 편집하고 이 섹션을
    <!--
    <bean parent="shibboleth.SAML2AttributeSourcedGenerator"
       p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
       p:attributeSourceIds="#{ {'mail'} }" />
    -->

    다음으로 바꿉니다.

    <bean parent="shibboleth.SAML2AttributeSourcedGenerator"
                p:format="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified"
                p:attributeSourceIds="#{ {'your-name-id-attribute'} }" />

  6. Shibboleth daemon(Linux) 또는 서비스(Windows)를 다시 시작합니다.