Shibboleth 認証の構成

このセクションでは、Shibboleth を構成し、[Shibboleth のみ] ログオン ポリシーで Service Desk または資産マネージャを使用できるようにする方法について説明します。

Shibboleth の構成の詳細および固有の情報については、Shibboleth のマニュアルをご参照ください。

Shibboleth には次の2つの部分があります。

  • ID プロバイダ (IdP) – Active Directory と連携するように構成される Web アプリケーション。関連する認証資格情報を入力し、構成されたシステムで ID を確認するためのログイン Web ページが表示されます。
  • サービス プロバイダ (SP) – 特定の Web サイト パス (/ServiceDesk.WebAccess など) を保護するように構成される Web サーバ (IIS、Apache など) のアドオン。ユーザがログイン用の IdP にリダイレクトされた後、HTTP 要求にヘッダを追加して、ユーザの ID に関する情報が Web アプリケーションに渡されます。SP と IdP は直接通信する必要がありませんが、お互いに信頼するように構成される必要があります。ユーザの Web ブラウザでは両方が表示される必要があります。

IIS を使用している場合は、IIS 6 Management Compatibility Windows 機能が Web サーバにインストールされていることを確認してください。

次の例ではサンプルのアドレスを使用しています。これらのアドレスは必ず固有の値に変更してください。

内部 IdP への接続

まず、内部 IdP に接続します。

内部 IdP に接続するには:

  1. Web サーバで https://localhost/Shibboleth.sso/Metadata に移動し、SP に関する詳細情報が記述された XML ファイルをダウンロードします。
  2. SP の一意の名前を使用してこれを保存します。
  3. Shibboleth サーバで、前の手順で保存した XML ファイルを C:\Program Files (x86)\Shibboleth\IdP\metadata にコピーします。
  4. テキストエディタで C:\Program Files (x86)\Shibboleth\IdP\conf\metadata-providers.xml ファイルを開きます。
  5. コメントに従い、次のように一意の ID とパスを使用して、メタデータ ファイルに行を追加します。
コピー
<MetadataProvider id="LocalMetadataUNIQUEID" xsi:type="FilesystemMetadataProvider" metadataFile="%{idp.home}/metadata/example.com.xml"/>
  1. ファイルを保存して閉じます。
  2. Shibboleth 3 IdP Daemon サービスを再起動して、サーバから切断します。
  3. Web サーバで、C:\Program Files\Shibboleth\etc\shibboleth に移動し、shibboleth2.xml を開きます。
  4. <Sessions> セクションで、<SSO> タグを次のように置換します。
コピー
<SSO entityID="https://www.example.com/idp/shibboleth"> SAML2 SAML1</SSO>
  1. <ApplicationDefaults> セクションの次の場所に <MetadataProvider> タグを追加します。
コピー
<MetadataProvider type="XML"
    uri="https://www.example.com/idp/shibboleth"
    backingFilePath="lab-shib01-idp-metadata.xml"
    reloadInterval="180000"/>
  1. ファイルを保存してから、IIS と Shibboleth 2 Daemon (既定) サービスを再起動します。

サーバ変数リストの一番下には、HTTP_EPPN のように Shibboleth に関連付けられた値があり、ログインユーザの名前を確認します。

セッションの詳細については、https://webserver/Shibboleth.sso/Session をご覧ください。

サーバ変数名を HTTP_LANDESK_USER に変更する

Service Desk および資産マネージャアプリケーションで想定されるログインユーザ名の既定のヘッダは、HTTP_LANDESK_USER です。tps.config ファイルでこれを上書きして既定に合わせる (別のサーバ変数を使用するように Web Access を構成するを参照) か、Shibboleth を再構成できます。

Service Desk および資産マネージャの構成と保護

コンソールの管理コンポーネントを使用して、Service Desk および資産マネージャ ユーザをネットワークログインに関連付け、ログイン ポリシーの設定で説明しているログオンポリシーを設定した場合は、Web Access インスタンスを保護できます。

Web Access インスタンスを保護するには:

  1. C:\Program Files\Shibboleth\etc\shibboleth に移動し、shibboleth2.xml を開きます。
  2. <Host> セクションで、Web Access インスタンスの名前を使用して、新しい <Path> タグを追加します。
コピー
<Host name="hd37f6c6dv3ctrh.example.com">
    <Path name="secure" authType="shibboleth" requireSession="true"/>
    <Path name="ServiceDesk.WebAccess" authType="shibboleth"
        requireSession="true"/>
</Host>
  1. ファイルを保存してから、IIS と Shibboleth 2 Daemon (既定) サービスを再起動します。
  2. https://webserver/ServiceDesk.WebAccess に移動します。
    ログインしました。

Web Access は2つの場所で HTTP_LANDESK_USER の値を検索します。まず、Shibboleth SP が入力する HTTP ヘッダを検索します。次に、URL クエリ文字列を検索します。これは、完全に統合された環境設定がなくても Shibboleth 認証をテストできる方法です。

URL クエリ文字列を使用して Web Access をテストするには、次のサイトにアクセスします。https://webserver/ServiceDesk/WebAccess/[email protected]

統合 Shibboleth 環境ではこの URL は機能しません。SP によって IdP ログインページが表示され、HTTP ヘッダが入力されます。これらは URL 値よりも優先されます。

別のサーバ変数を使用するように Web Access を構成する

Shibboleth を再構成して属性名 HTTP_LANDESK_USER を使用する代わりに、Web Access を再構成して、既定の属性名 HTTP_EPPN を使用することができます。

別のサーバ変数を使用するように Web Access を構成するには:

  1. Web Access の tps.config ファイルを開き、次の行を追加します。
コピー
<add key="ShibbolethHeaderId" value="HTTP_EPPN" />
  1. Web Access で使用されるアプリケーション プールを再利用します。