Skip To Content

Shibboleth の構成

Shibboleth 3.2x および 3.3.x を Portal for ArcGIS のエンタープライズ ログイン アカウントの ID プロバイダー (IDP) として構成できます。構成プロセスでは、主に次の 2 つの手順を実行します。まず、エンタープライズ IDP を Portal for ArcGIS に登録し、次に、Portal for ArcGIS をエンタープライズ IDP に登録します。

必要な情報

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

Portal for ArcGIS では、ユーザーの電子メール アドレス、グループ メンバーシップ、名と姓を SAML ID プロバイダーから取得して入力することができます。

Shibboleth をエンタープライズ IDP として Portal for ArcGIS に登録する

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

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

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

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

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

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

    メモ:

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

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

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

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

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

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

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

      <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. 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 および Portal for ArcGIS で必要となる 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) を再起動します。