Skip To Content

Shibboleth の構成

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

メモ:

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

必要な情報

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

ArcGIS Online は、ユーザーの電子メール アドレス、グループ メンバー、名と姓を、SAML ID プロバイダーから取得して入力することをサポートしています。 ユーザーが通知を受信できるようにするために、エンタープライズ IDP から取得した電子メール アドレスを渡すことをお勧めします。 そうすると、ユーザーが後で管理者になる場合に役立ちます。 アカウントに電子メール アドレスが登録されていると、管理アクティビティに関する通知を受信したり、他のユーザーが組織に加入できるように招待を送信したりできます。

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

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

    [1 つの ID プロバイダー] オプションを選択することで、ArcGIS Online 組織用に 1 つのエンタープライズ IDP を登録できます。 複数の IDP からのエンタープライズ ログインでユーザーを認証する場合には、1 つの IDP ではなくSAML ベースのフェデレーションを登録します。

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

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

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

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

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

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

    2. SHIBBOLETH_HOME/conf/metadata-providers.xml ファイルに新しい MetadataProvider エレメントを定義して、ArcGIS Online を信頼できるサービス プロバイダーとして 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 ArcGIS Online organization]" />
    			<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 ArcGIS Online organization]">
      <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 ArcGIS Online organization]">
      		<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) を再起動します。