SeciossLink と Shibboleth-SP の 認 証 連 携 設 定 方 法 Shibboleth-SP を 使 うと 比 較 的 容 易 に Web アプリケーションの SAML SP 化 が 行 えます 以 下 は SeciossLink の SAML サービスプロバイダとして Shibboleth-SP を 登 録 する 手 順 となります 実 際 に Web アプリケーションと 連 携 させる 場 合 は 導 入 した Shibboleth-SP と Web アプリケーション 間 でユーザ ID などの 認 証 情 報 を 引 き 継 ぎ 認 証 を 通 す 仕 組 みの 開 発 が 必 要 となります 1. Shibboleth-SP のインストール Web アプリケーションが 動 作 しているサーバに Shibboleth-SP をインストールします ここでの 説 明 は サーバ OS が CentOS6 の 場 合 とします 1.1. リポジトリの 登 録 # wget http://download.opensuse.org/repositories/security://shibboleth/centos_centos-6/security:sh ibboleth.repo # cp security :shibboleth.repo /etc/yum.repos.d/shibboleth.repo 1.2. yum インストール # yum install shibboleth 2. Shibboleth-SP の 設 定 本 説 明 では 認 証 連 携 を 行 うための 基 本 的 な 設 定 のみとなります また SP に 設 定 する 証 明 書 はインストール 時 に 配 置 されたものを 使 用 します 設 定 が 完 了 しましたら Shibboleth-SP と Apache を 再 起 動 してください (/etc/init.d/shibd restart /etc/init.d/httpd restart) 2.1. shibboleth2.xml を 修 正 # vi /etc/shibboleth/shibboleth2.xml 2.1.1. SP の entityid を 設 定 <!-- The ApplicationDefaults element is where most of Shibboleth's SAML bits are defined. --> <ApplicationDefaults entityid="https://fqdn/shibboleth" Web アプリケーションの FQDN REMOTE_USER="eppn persistent-id targeted-id"> 1
2.1.1. SeciossLink の entityid を 設 定 <SSO entityid="https://slink.secioss.com" SeciossLink の entityid を 認 証 サーバとして 設 定 discoveryprotocol="samlds" discoveryurl="https://ds.example.org/ds/wayf"> SAML2 SAML1 </SSO> 2.1.2. SeciossLink のメタデータを 設 定 SeciossLink のメタデータは https://slink.secioss.com/saml/metadata.php?tenant=テナント ID にアクセスすると 取 得 することができます 取 得 したメタデータを /etc/shibboleth 配 下 に 配 置 してください <!-- Example of locally maintained metadata. --> <!-- --> コメント 解 除 <MetadataProvider type="xml" file="slinkmetadata.xml"/> SeciossLink のメタデータを 設 定 <!-- --> コメント 解 除 2.2. attribute-map.xml を 修 正 # vi /etc/shibboleth/attribute-map.xml 2.2.1. 受 信 属 性 のマッピング 設 定 SeciossLink で 設 定 したユーザ ID の 属 性 値 が 渡 されるので SP 側 で 環 境 変 数 より 参 照 できるよ うマッピングの 設 定 を 行 います <Attributes xmlns="urn:mace:shibboleth:2.0:attribute-map" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> 上 記 の 直 ぐ 下 辺 りに 追 加 してください <!-- Persistent ID Attribute map --> <Attribute name="urn:oasis:names:tc:saml:2.0:nameid-format:persistent" id="name-id"> <AttributeDecoder xsi:type="nameidattributedecoder" formatter="$name" defaultqualifiers="true"/> </Attribute> php であれば $_SERVER["name-id"]より 参 照 することができます 2
3. サンプルページの 作 成 動 作 確 認 時 に 正 しくユーザ ID 属 性 値 が 取 得 できているか 確 認 するためのページを 事 前 に 準 備 してお きます Shibboleth の 認 証 とするパスは デフォルトで 設 定 されている /secure 配 下 とします /var/www/html/secure を 作 成 します その 配 下 に 以 下 の 内 容 で test.php を 作 成 します <?php echo $_SERVER["name-id"];?> shibboleth 認 証 を 行 うパスは /etc/httpd/conf.d/shib.conf で 設 定 されています 4. SeciossLink にてサービスプロバイダ 登 録 管 理 画 面 より 連 携 するサービスプロバイダとして Shibboleth-SP を 登 録 します 本 説 明 での 前 提 条 件 として Assertion Consumer Service は1つとし ユーザ ID 以 外 の 属 性 値 は 送 信 しないものとします またエンティティ ID Assertion Consumer Service ログアウト URL は SP のメタデータより 読 み 込 む 方 法 で 設 定 します サービスプロバイダへのパスワード 送 信 パスワード 暗 号 化 用 公 開 鍵 の 設 定 は 必 要 ありません 4.1. 登 録 画 面 以 下 の 手 順 で 画 面 を 開 きます 1 管 理 画 面 にログイン 後 上 部 のメニューよりシングルサインオンをクリックします 2 左 にあるシングルサインオンのメニューより SAML サービスプロバイダをクリックします 3 SAML サービスプロバイダ 内 の 上 部 にあるメニューのサービスプロバイダ 登 録 をクリックします 以 下 がサービスプロバイダの 登 録 画 面 となります 3
4.2. 設 定 値 の 入 力 まずサービス ID とサービス 名 については 他 の SP と 同 じ 値 にならないように 任 意 の 値 を 設 定 します 例 として ここではサービス ID に testsp サービス 名 に TestSP を 設 定 しています 次 に 以 下 の 手 順 でメタデータを 読 み 込 み 残 りの 必 要 な 値 を 設 定 します 1 Shibboleth-SP のメタデータ 取 得 Shibboleth-SP のメタデータは https://fqdn/shibboleth.sso/metadata (Shibboleth-SP をイ ンストールした Web アプリケーションが 動 作 するサーバ)にアクセスすると 取 得 することができ ます (FQDN は SP の 環 境 に 合 わせて 置 き 換 えてください) 2 Shibboleth-SP のメタデータを 選 択 メタデータ 項 目 にある 参 照 ボタンをクリックします 選 択 画 面 が 表 示 されるので 取 得 した Shibboleth-SP のメタデータを 選 択 します 例 として ここでは Metadata という Shibboleth-SP のメタデータを 選 択 した 場 合 です 3 Shibboleth-SP のメタデータを 読 み 込 む メタデータ 項 目 にある 読 み 込 む ボタンをクリックします 4
以 下 のように Shibboleth-SP のメタデータが 読 み 込 まれ エンティティ ID Assertion Consumer Service ログアウト URL が 自 動 的 に 設 定 されます 保 存 ボタンをクリックして 登 録 を 完 了 させます 5. 動 作 確 認 以 下 の 手 順 で 認 証 連 携 が 行 えることを 確 認 します (FQDN は SP の 環 境 に 合 わせて 置 き 換 えてください ) 1 ユーザの 許 可 するサービスにある TestSP にチェックを 入 れます 2 https://fqdn/secure/test.php ( Shibboleth-SP をインストールした Web アプリケーションが 動 作 するサーバ)にアクセスします 3 SeciossLink の 認 証 画 面 が 表 示 され ID/パスワードなどの 認 証 を 行 います 4 https://fqdn/secure/test.php が 表 示 されます 最 後 に 表 示 された 画 面 にユーザ ID の 属 性 値 が 表 示 されていれば 正 しくユーザ ID 情 報 が 渡 されたこ ととなります 以 上 5