Shibboleth の構成

Shibboleth 3.2x および 3.3.x を ArcGIS EnterpriseSAML ログイン アカウントの IDP として構成できます。 構成プロセスでは、主に次の 2 つの手順を実行します。まず、SAML IDP を ArcGIS Enterprise に登録し、次に、ArcGIS Enterprise を SAML IDP に登録します。

注意:

SAML ログインをセキュアに構成するには、「SAML セキュリティのベスト プラクティス」をご参照ください。

必要な情報

ArcGIS Enterprise は、ユーザーが SAML ログインを使用してサイン インするときに、特定の属性情報を IDP から受信する必要があります。 NameID は、フェデレーションが機能するように、IDP が SAML レスポンスで送信しなければならない必須の属性です。 ArcGIS EnterpriseNameID の値を使用して指定ユーザーを一意に識別するため、ユーザーを一意に識別する定数値を使用することをお勧めします。 IDP からユーザーがサイン インすると、ArcGIS Enterprise 組織サイトによってユーザー名が NameID の新しいユーザーがユーザー ストアに作成されます。 NameID によって送信される値に使用できる文字は、英数字、_ (アンダースコア)、. (ドット) および @ (アット マーク) です。 その他の文字はエスケープされ、ArcGIS Enterprise によってアンダースコアが付加されたユーザー名が作成されます。

ArcGIS Enterprise は、ユーザーの電子メール アドレス、グループ メンバー、名と姓を、SAML ID プロバイダーから取得して入力することをサポートしています。

ShibbolethSAML IDP として ArcGIS Enterprise に登録する

  1. 組織サイトの管理者としてサイン インしていることを確認します。
  2. サイトの上部にある [組織] をクリックして、[設定] タブをクリックします。
  3. ページの左側にある [セキュリティ] をクリックします。
  4. [ログイン] セクションの [新しい SAML ログイン] ボタンをクリックし、[1 つの ID プロバイダー] オプションを選択します。 [プロパティの指定] ページで、組織名 (たとえば「City of Redlands」) を入力します。 ユーザーがポータル Web サイトにアクセスすると、このテキストが SAML サイン イン オプションの一部に表示されます (たとえば、「City of Redlands アカウントを使用」)。
    注意:

    ポータル用に登録できる SAML IDP または IDP のフェデレーションは 1 つだけです。

  5. [自動] または [管理者から招待されたとき] のいずれかを選択して、ユーザーが組織に加入できる方法を指定します。 1 番目のオプションを選択すると、ユーザーは、管理者から招待されなくても、自分の SAML ログインを使用して組織サイトにサイン インできます。 ユーザーのアカウントは、最初にサイン インしたときに自動的に組織サイトに登録されます。 2 番目のオプションを選択すると、管理者は、コマンド ライン ユーティリティを使用して必要なアカウントを組織サイトに登録する必要があります。 ユーザーは、アカウントが登録された時点で、組織サイトにサイン インできるようになります。
    ヒント:

    少なくとも 1 つの SAML アカウントをポータルの管理者として指定し、最初の管理者アカウントを降格するか削除することをお勧めします。 また、ポータル Web サイトの [アカウントの作成] ボタンを無効化することで、ユーザーが自分のアカウントを作成できないようにしておくこともお勧めします。 詳細な手順については、「ポータルでの SAML 準拠の ID プロバイダーの構成」をご参照ください。

  6. 次の 2 つのオプションのいずれかを使用して、IDP のメタデータ情報を入力します。
    • [ファイル] - デフォルトでは、Shibboleth の IDP メタデータ ファイルは、SHIBBOLETH_HOME/metadata にあります。 メタデータ ファイルにアクセスできる場合は、SAML IDP のメタデータの [ファイル] オプションを選択し、SHIBBOLETH_HOME/metadata/idp-metadata.xml ファイルを選択します。 ArcGIS Enterprise は、IDP メタデータ ファイル内の最初の署名証明書を使用して、Shibboleth からの SAML アサーションの応答に含まれるシグネチャを検証します。 しかし、デフォルトでは、Shibboleth IDP メタデータ ファイル内に最初にリストされているシグネチャはバック チャンネル TLS 通信用であり、署名アサーションの応答に使用されるのは 2 番目のシグネチャです。 そのため、最初のシグネチャをコメント アウトするか、または 2 番目のシグネチャの下に最初のシグネチャを移動し、更新されたメタデータ ファイルを使用して ShibbolethArcGIS Enterprise に登録する必要があります。 これらのシグネチャは、メタデータ ファイル内の <KeyDescriptor use="signing"> エレメントを使用して定義されます。
    • [設定パラメーター] - URL にもフェデレーション メタデータ ファイルにもアクセスできない場合は、このオプションを選択します。 値を手動で入力して、要求されたパラメーター (BASE 64 形式でエンコードされたログイン URL および証明書) を指定します。 これらの情報については、Shibboleth 管理者にお問い合わせください。
  7. 必要に応じて高度な設定を構成します。
    • [暗号化アサーション] - SAML アサーションの応答を暗号化するように Shibboleth を構成する場合は、このオプションを有効化します。
    • [署名付きリクエストの有効化] - Shibboleth に送信される SAML の認証リクエストに ArcGIS Enterprise が署名する場合は、このオプションを有効化します。
    • [エンティティ ID] - 新しいエンティティ ID を使用してポータルを Shibboleth に対して一意に識別する場合は、この値を更新します。
    • [サイン イン時にプロフィールを更新] - ユーザーの givenName および email address 属性が前回のサイン イン以降に変更された場合に ArcGIS Enterprise によって更新するには、このオプションを有効化します。
    • [SAML ベースのグループのメンバーシップを有効化] - このオプションを有効化すると、組織メンバーが、グループ作成処理中に、指定された SAML ベースのグループを、ArcGIS Enterprise グループにリンクできるようになります。

    [暗号化アサーション][署名付きリクエストの有効化] 設定では、ポータル キーストアの samlcert 証明書を使用します。 新しい証明書を使用するには、samlcert 証明書を削除してから、「ポータルへの証明書のインポート」に記載された手順に従って新しい証明書を同じエイリアス (samlcert) で作成し、ポータルを再起動します。

    注意:

    現在、[ID プロバイダーへのログアウトの反映][ログアウト URL] はサポートされていません。

  8. [保存] をクリックします。

ArcGIS Enterprise を信頼できるサービス プロバイダーとして Shibboleth に登録する

  1. ArcGIS Enterprise を証明書利用者として Shibboleth で構成します。
    1. ポータルのメタデータ ファイルを取得し、それを XML ファイルとして保存します。

      メタデータ ファイルを取得するには、組織サイトの管理者としてサイン インして、組織のページを開きます。 [設定] タブをクリックして、ページの左側にある [セキュリティ] をクリックします。 [ログイン] セクションの [SAML ログイン] の下で、[サービス プロバイダーのメタデータのダウンロード] ボタンをクリックします。

    2. SHIBBOLETH_HOME/conf/metadata-providers.xml ファイルに新しい MetadataProvider エレメントを定義して、ArcGIS Enterprise を信頼できるサービス プロバイダーとして Shibboleth に追加します。

      ルート MetadataProvider エレメント内に次のスニペットを追加します。 (上記のステップ 1.a で保存した) 組織のメタデータ XML ファイルへのパスを指定します。

      <MetadataProvider id="EsriSP" xsi:type="FilesystemMetadataProvider"
      xmlns="urn:mace:shibboleth:2.0:metadata" 
      	xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
      	xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata https://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. mailgivenName、および surname の定義を SHIBBOLETH_HOME/conf/attribute-resolver-full.xml ファイルから SHIBBOLETH_HOME/conf/attribute-resolver.xml ファイルにコピーします。
    3. LDAP データ コネクタ セクションを SHIBBOLETH_HOME/conf/attribute-resolver-ldap.xml から SHIBBOLETH_HOME/conf/attribute-resolver.xml にコピーします。 NAMEID 属性として返す UID または他の属性の定義をコピーします。
    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:1.1:nameid-format:unspecified" />
       </list>
      </property>
      </bean>
      

      nameIDFormatPrecedence パラメーターを使用して、ArcGIS Online および ArcGIS Enterprise で必要となる SAML 名前 ID 属性を unspecified 形式で送信するように IDP に指示します。

    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:1.1: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:1.1:nameid-format:unspecified"
                p:attributeSourceIds="#{ {'your-name-id-attribute'} }" />
    

  6. Shibboleth のデーモン (Linux) またはサービス (Windows) を再起動します。