比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。
情報

以下で認証方式を選択できる簡便な方法(Extendedフロー)を説明していますが、3.3以降であればより汎用的で複雑な挙動が実現できるMFAによる方法もご参照ください。

警告

特にTOTPとの共存はNGですので、TOTPを認証方式の一つとして選択させたい場合はMFAによる方法をご検討ください。

もしくは、未検証ですが以下のforkで解消している可能性がありますのでお試しください。検証結果を学認事務局と共有いただけましたら幸いです。
https://github.com/joeFischetti/Shibboleth-IdP3-TOTP-Auth

1. はじめに

※前提として、「クライアント証明書認証を使った認証セキュリティレベルを設定したSPに対する認証」が実施済みであるとします。
本メニューでは、IdPをカスタマイズします。
本メニューでは、IdPとSPを共にカスタマイズします。
ログイン時に対象SPが使用できる認証方式をユーザが選択してログインできるようになります。
IdPには、ID/パスワード認証とクライアント証明書認証を使って、セキュリティレベルに応じた認証方式を設定します。
またSPに
は、認証のセキュリティレベルを設定します。
上記の設定により、ログイン時に対象SPが使用できる認証方式をユーザが選択してログインできるようになります。セキュアなクライアント証明書認証などが行えるユーザは、ID/パスワードの入力が必要なく、SPにアクセスできます。

 

...

2. 実習セミナーでは

以下のような設定で行います。
手順書と照らし合わせながら、作業を進めてください。

...

・Password認証フローの設定

実習セミナーでは、ID/パスワードと証明書の2つの認証方式で確認します。
以下のように手順書にある内容を置き換えて設定します。
※「RemoteUser」は設定しません。

...

borderColor#cccccc
bgColor#eeeeee
borderStylesolid

...

以下のように/opt/shibboleth-idp/conf/

...

# Regular expression matching login flows to enable, e.g. IPAddress|Password
idp.authn.flows= Password|X509

(省略)

# Whether to prioritize "active" results when an SP requests more than
# one possible matching login method (V2 behavior was to favor them)
idp.authn.favorSSO = true

※アンコメントして、有効にします。

 authn/authn.propertiesを変更します。
※「Level3」は追加せず、「Level2」のみ設定を追加します。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

(省略)

/opt/shibboleth-idp/conf/authn/general-authn.xmlの設定内容について

<bean id="authn/X509" parent="shibboleth.AuthenticationFlow"

(省略)

            <bean parent="shibboleth.SAML2AuthnContextClassRef"
                   c:classRef="     saml2/urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport, \
     saml2/urn:oasis:names:tc:SAML:2.0:ac:classes:Password, \
     saml1/urn:oasis:names:tc:SAML:1.0:am:password, \
     saml2/urn:mace:gakunin.jp:idprivacy:ac:classes:Level2" />
           <bean parent="shibboleth.SAML2AuthnContextClassRef"
                   c:classRef="Level1, \
     saml2/urn:mace:gakunin.jp:idprivacy:ac:classes:Level1" />

※Level3の設定を除いた、Level1~Level2の設定とします。

...

Level2
 # Validators are controlled in password-authn-config.xml

(省略) 

・Extendedフローの設定 

以下のように/opt/shibboleth-idp/conf/authn/password-authn-config.xmlを変更します。
※「X509」は設定せず、「RemoteUser」のみ設定します。

...

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

※4.2からExtendedフローのサンプルが削除されておりますので、最終行の1行上に以下の赤字部分を挿入します。 

    <bean

/opt/shibboleth-idp/conf/relying-party.xmlの設定内容について
※DefaultRelyingPartyの設定は、手順通り行ってください。
以下のように各自作成したSPに対して認証レベルを設定します。
<util:list

id="shibboleth.

RelyingPartyOverrides">内に設定を追加します。
※ホスト名など赤文字部分は、各自の番号に合わせて修正してください。 <bean parent="ex-sp-test01

authn.Password.ExtendedFlows" class="java.lang.String" c:

relyingPartyIds

_0=

"https://ex-sp-test01.gakunin.nii.ac.jp/shibboleth-sp

"RemoteUser" />
    <util:list id="shibboleth.authn.Password.ExtendedFlowParameters">

   </util:list>
   <util:list id="shibboleth.authn.Password.PrincipalOverride">
       <bean parent="shibboleth.SAML2AuthnContextClassRef"
           c:classRef="urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport" />
       <bean parent="shibboleth.SAML2AuthnContextClassRef"
           c:classRef="urn:oasis:names:tc:SAML:2.0:ac:classes:Password" />
       <bean parent="shibboleth.SAML1AuthenticationMethod"
            c:method="urn:oasis:names:tc:SAML:1.0:am:password" />
       <bean parent="shibboleth.SAML2AuthnContextClassRef"
           c:classRef="urn:mace:gakunin.jp:idprivacy:ac:classes:Level1" />
   </util:list>
</beans>

・ログイン画面(login.vm)の置き換え

同様に4.2以降のログイン画面ではExtendedフローのコードが削除されておりますので、添付のもので置き換えます。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
# wget https://ex-ds.gakunin.nii.ac.jp/login.vm
# chown root:root login.vm
# mv -f login.vm /opt/shibboleth-idp/views/
">
   <property name="profileConfigurations">
       <list>
           <bean parent="SAML2.SSO" p:postAuthenticationFlows="attribute-release"
                                                    p:defaultAuthenticationMethods="urn:mace:gakunin.jp:idprivacy:ac:classes:Level2"/>
            <ref bean="SAML2.ECP" />
            <ref bean="SAML2.Logout" />
            <ref bean="SAML2.AttributeQuery" />
            <ref bean="SAML2.ArtifactResolution" />
            <ref bean="Liberty.SSOS" />
        </list>
    </property>
</bean>


...

3. 手順書

下記の設定手順書を参照し、作業を行います。
※実習時の設定値に置き換える事を忘れないようにしてください。
※手順書内の「認証フローの階層化」を実施し、確認します。
 (説明上、「Password認証フローのExtendedフロー」は行いません。)※手順書内の「Password認証フローのExtendedフロー」を実施し、確認します。

 

...

4. 動作確認

※確認手順の説明に記載されている「動作確認用のSP」は、現在使用しているフェデレーションによって
 アクセス先が変わります。(どちらかのフェデレーションに参加して利用できる状態にしておいてください。)

実習セミナーフェデレーションhttps://ex-sp.gakunin.nii.ac.jp/
テストフェデレーションhttps://test-sp1.gakunin.nii.ac.jp/

① 設定後、Jettyの再起動を行ってない場合は行ってください。① 設定後、Tomcatの再起動を行ってない場合は行ってください。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
systemctl restart tomcatjetty

各自が使用するSPの接続確認用ページにアクセスします。 各自が使用するSPの接続確認用ページにアクセスします。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
例)1番を割り振られた場合
 https://ex-sp-test01.gakunin.nii.ac.jp/

③ ログインボタンをクリックします。

④ DSの設定を行っている場合、所属機関の選択画面が表示されるので、各自が使用するIdPを選択します。

証明書認証用のログイン画面が表示されるので、Certificate Loginボタンをクリックします。認証方式を選択する画面が表示されるのですが、各自が使用するSPのセキュリティレベルが証明書認証が
  必要と設定しているので、RemoteUserボタン(クライアント証明書)のみ表示され、選択可能となります。 

個人証明書の要求というダイアログが表示されるので、対象となるクライアント証明書を選択して、OKボタンをクリックします。
  ※送信属性同意画面が表示される場合は、そのまま設定値を送信しします。個人証明書の要求というダイアログが表示されるので、対象となるクライアント証明書を選択して、
  OKボタンをクリックします。
  ※送信属性同意画面が表示される場合は、そのまま設定値を送信しします。

⑦ 正しく属性受信の確認ページが表示される事を確認してください。

 ※ID/パスワードを入力するログイン画面は表示されず、クライアント証明書で認証が行われ、
     ログインする事ができます。

⑧ 次に動作確認用のSPにアクセスし、認証要求がなくシングルサインオンにてログインできることを確認します。

⑨ 一度ブラウザを閉じて、②でアクセスしたSPを動作確認用のSPに置き換えてアクセスします。

⑩ 進めていくとID/パスワードの認証要求が行われるので、入力してログインしてください。

⑪ 次に各自が作成したSPにアクセスします。今回は、認証済みですがアクセスレベルが高いため証明書認証が要求されることを確認します。 

⑧ この状態で動作確認用のSPにアクセスすると、セキュリティレベルが低いためSSOにより認証がスキップされます。

⑨ 一度ブラウザを閉じて、動作確認用のSPにアクセスします。

⑩ 進めていくと動作確認用のSPはID/パスワード認証でも認証が可能であるため、認証方式を選択する
  画面では、Loginボタン(ID/パスワード)とRemoteUserボタン(クライアント証明書)の2つのボタンが表示されます。

⑪ Loginボタン(ID/パスワード)を選択する場合は、ユーザ名とパスワードを入力してボタンをクリックしてください。

⑫ 認証後、正しく属性受信の確認ページが表示される事を確認してください。

⑬ この状態で各自が使用するSPにアクセスすると、セキュリティレベルが上なので⑤と同じ画面が表示されます。⑫ 認証後、正しく属性受信の確認ページが表示される事を確認してください。

Prevnextbuttons