比較バージョン

キー

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

...

警告

本ページで紹介したプラグインのより新しいバージョン(fork)が以下で公開されております。v3.4に対応しMFAログインフローと組み合わせられますので、こちらの利用もご検討ください。
https://github.com/joeFischetti/Shibboleth-IdP3-TOTP-Auth


注意

本IdPプラグインの添付されたバージョンでは登録できるデバイスの数を1個のみに制限し二要素認証としての効力を確保するものとなります。登録手続きにはIPアドレス等による制限はかかりません。

このままでの運用に不都合がある場合は、登録手続きにアクセス制限をかけた上で個数制限を緩和することをご検討ください。

警告

本IdPプラグインのバージョン0.5.1をそのまま用いるとID/パスワード入力後に常に何個でもデバイスを登録可能であるため二要素認証もしくは二段階認証としての効力に問題があります。パッチの適用を検討するか、登録手続きにアクセス制限をかけることをご検討ください。


注意

本TotpフローをExtendedフローの中で使用しようとしてもうまくいきません(Totpを選択してもID・パスワード欄が表示されません)。認証フローを組み合わせたい場合はMFAフローをご検討ください。

...

以下の手順で作業を進めてください。

添付の totpauth-impl-0.5.11oncepatch-bin.zip をマシンにダウンロード、展開。

conf/, edit-webapp/, flows/, views/ の内容をディレクトリ構造を保持したまま/opt/shibboleth-idp/以下に配置。

...

コード ブロック
@@ -23,6 +23,8 @@
     <bean id="shibboleth.authn.Password.PasswordFieldName" class="java.lang.String" c:_0="j_password" />
     <bean id="shibboleth.authn.Password.SSOBypassFieldName" class="java.lang.String" c:_0="donotcache" />
 
+    <util:constant id="shibboleth.authn.Password.RemoveAfterValidation" static-field="java.lang.Boolean.FALSE"/>
+
     <!-- Simple transforms to apply to username before validation. -->
     <util:constant id="shibboleth.authn.Password.Lowercase" static-field="java.lang.Boolean.FALSE"/>
     <util:constant id="shibboleth.authn.Password.Uppercase" static-field="java.lang.Boolean.FALSE"/>

登録ページの方にCSRF対策が抜けておりますので追加してください。

コード ブロック
languagediff
           <p class="error")>$errorMessage</p><br>
           #end
           <form action="$flowExecutionUrl" method="post">
+            #parse("csrf/csrf.vm")
 
             <li> Download the Google Authenticator to your mobile phone </li>


最後に、Tomcatを起動したまま/opt/shibboleth-idp/bin/build.shを実行し、WARファイル再作成およびデプロイします。

...

  1. 接続確認用SPから各自が使用するIdPを選択します。(どのSPからの認証要求でもTOTP認証フローが実行されます)
  2. 第一画面は通常と変わりませんので、通常のUsername/Passwordを入力して次に進みます。
  3. "Token code"というワンタイムパスワードを入力する画面になりますが、まだ登録していませんので、画面に指示のある通り任意の6桁の数字を入力し「Login」ボタンを押してください。
  4. 同じ画面の下にというワンタイムパスワードを入力する画面になりますが、まだ登録していませんので下の"Register a new Token"ボタンをクリックします。ボタンが現れますのでクリックします。そうすると登録のためのQRコードが表示されます。
  5. TOTP対応アプリ(例: Google Authenticator)を起動します。
  6. 「設定を開始」をタップします。
  7. 「バーコードをスキャン」をタップします。
  8. 登録画面に表示されているQRコードを読み取ります。
  9. 登録後に数字6桁のワンタイムパスワードが表示されますので、IdPのQRコードの下にある"Token code"欄に入力し"Register"ボタンをクリックします。

...