0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ArcGIS OnlineにShibboleth IdPでSSO設定する際のメモ

Last updated at Posted at 2021-07-31

概要

ArcGIS OnlineはSAML認証に対応しており、Shibboleth IdPとの認証連携も可能となっている。

設定メモ

基本的にはESRI社のドキュメントに従って設定するが、注意点や変更可能な点がある。

ログインボタンの設定

ArcGIS Onlineのログイン画面にSAMLログイン用のボタンを表示する際のテキストを設定できる。ここで漢字などのマルチバイト文字を利用すると、ログインボタンが動作しない。

エンティティIDの指定

Shibboleth IdPとShibboleth SPの組み合わせの場合、一般的にエンティティIDには

<PolicyRequirementRule xsi:type="Requester" value="https://sp.example.com/shibboleth-sp" />

のようなにURLを指定するが、ArcGIS Onlineの場合は、 スキームのないFQDNで指定する。

conf/attribute-filter.xml
    <AttributeFilterPolicy id="ArcGIS">
-       <PolicyRequirementRule xsi:type="Requester" value="[The Entity ID of your ArcGIS Online organization]" />
+       <PolicyRequirementRule xsi:type="Requester" value="your-id.maps.arcgis.com" />

NameIDの指定

ArcGIS Onlineで利用するユーザIDとして、Shibboleth IdPからNameIDを送出する必要がある。ちなみにePTIDを利用しようとするとArcGIS Online側で不正とみなされ、ログインが失敗する。

以下の設定では、NameIDとしてuidまたはemailを利用できるよう定義している。

conf/saml-nameid.xml
        <util:list id="shibboleth.SAML2NameIDGenerators">
            <ref bean="shibboleth.SAML2TransientGenerator" />
+               <bean parent="shibboleth.SAML2AttributeSourcedGenerator"
+                   p:omitQualifiers="true"
+                   p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:username"
+                   p:attributeSourceIds="#{ {'uid'} }" />
+
+               <bean parent="shibboleth.SAML2AttributeSourcedGenerator"
+                   p:omitQualifiers="true"
+                   p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
+                   p:attributeSourceIds="#{ {'mail'} }" />
        </util:list>

特定のサービスでどの属性値をNameIDとして利用するか、RelyingPartyOverridesとして設定する。
relyingPartyIdsで指定したエンティティIDのサービスについて設定が上書きされるため、ArcGIS OnlineのエンティティIDを指定する。ここではemailを利用する設定だが、p:nameIDFormatPrecedenceの値を、先で定義したp:formatに合わせて変えることで変更可能。

conf/relying-party.xml
        <util:list id="shibboleth.RelyingPartyOverrides">
+           <bean parent="RelyingPartyByName" c:relyingPartyIds="your-id.maps.arcgis.com">
+               <property name="profileConfigurations">
+                   <list>
+                       <bean parent="SAML2.SSO"
+                           p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
+                           p:encryptAssertions="false" />
+                   </list>
+               </property>
+           </bean>
        </util:list>

attribute-filterの設定

ArcGIS OnlineへのSSOにはmail属性が必須のため送出する必要があるが、givenNameは任意となっている。前項のようにNameIDとしてmailを利用する場合は、attribute-filterの記述は下記のようになる。

conf/attribute-filter.xml
+       <AttributeFilterPolicy id="ArcGISOnline">
+           <PolicyRequirementRule xsi:type="Requester" value="your-id.maps.arcgis.com" />
+           <!--<AttributeRule attributeID="givenName" permitAny="true" />-->
+           <AttributeRule attributeID="mail" permitAny="true" />
+       </AttributeFilterPolicy>
    </AttributeFilterPolicyGroup>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?