[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[upki-fed:01122] Re: Shibboleth IdPのShibboleth SP化について



西村様

そうですね。

たまたま、LDAPのかなりの部分を共有しているシステム同士なので、
問題ないかと思います。

> IdP上のShibboleth SPのセッション有効期間(lifetime)を極端に
> 短く(5分くらい?)しておくと、ここに起因する不具合(IdPからロ
> グアウトしたつもりなのに次回ログインしようとするとパスワードを聞
> かれずにログインできてしまう)が回避できるのでよいかなと思いました。

たしかにそのあたりがちょっと心配でした。
情報ありがとうございます。考えてみます。

細川

On 2016/12/09 14:57, Takeshi NISHIMURA wrote:
西村です。

蛇足かもしれませんが、
IdP ProxyとかProxy IdPとか呼ばれているものの範疇と考えると、
認証時のIDだけを引き渡すのであれば、お書きいただいた方法で問題
ないと思います。
# これがさらに、IdP Bから来た属性をそのままSPに流そうとすると
# Shibbolethでは途端に難しくなります。

IdP上のShibboleth SPのセッション有効期間(lifetime)を極端に
短く(5分くらい?)しておくと、ここに起因する不具合(IdPからロ
グアウトしたつもりなのに次回ログインしようとするとパスワードを聞
かれずにログインできてしまう)が回避できるのでよいかなと思いました。

2016/11/28 15:47、Tatsumi Hosokawa <xxxxxxxx@xxxxxxxxxxxxxx>のメール:

慶應義塾ITC本部の細川です。

やってみたところ、先程成功しましたが、若干の疑問点が残っています。

テスト構築はIdP 3.2.1, SP 2.6.0で行いました。

まず、Shibboleth IdP(IdP A)のサーバにShibboleth SP(IdP B)をインストールし、
Location /idpをShibboleth(IdP B)で認証するように設定しました。
その上で、Shibboleth IdP(IdP A)のサーバに次の設定を行いました。

1. /etc/shibboleth/shibboleth2.xmlで、<ApplicationDefaults>のところに、
  attributePrefix="AJP_"を追加する

2. /opt/shibboleth-idp/conf/idp.propertiesの

  idp.authn.flows= Password

  を

  idp.authn.flows= RemoteUser

  に変更

3. 存在しなければ /opt/shibboleth-idp/webapp/WEB-INF/web.xmlを
  /opt/shibboleth-idp/edit-webapp/WEB-INF/web.xmlにコピー

4. /opt/shibboleth-idp/edit-webapp/WEB-INF/web.xmlの

   <servlet>
       <servlet-name>RemoteUserAuthHandler</servlet-name>
       <servlet-class>net.shibboleth.idp.authn.impl.RemoteUserAuthServlet</servlet-class>
       <load-on-startup>2</load-on-startup>
   </servlet>

  の部分を

   <servlet>
       <servlet-name>RemoteUserAuthHandler</servlet-name>
       <servlet-class>net.shibboleth.idp.authn.impl.RemoteUserAuthServlet</servlet-class>
       <init-params>
           <param-name>checkHeaders</param-name>
           <param-value>UIDとして参照させたい属性名(Shibboleth SPからアクセスする属性名)</param-value>
       </init-params>
       <load-on-startup>2</load-on-startup>
   </servlet>

   に変更

これだけでIdP AのSPをIdP Bで認証できました(意外に簡単ですね)。

現在の疑問点は、IdP Bに存在してIdP Aに存在しないユーザを認証させた場合、
IdP Aで認証エラーが出るのではなく、IdP Aから遷移したIdP AのSP側で、
必要な属性が送られていないがゆえのエラーが出てしまうことです。

私の方でももう少し原因を追ってみますが、これはそういう仕様なのでしょうか?

何れにせよ、有用な情報、ありがとうございました。

よろしくお願いします。

細川


On 2016/11/25 8:43, Tatsumi Hosokawa wrote:
秋山様 やまじ様

情報、ありがとうございます。

私も昨日RemoteUserAuthenticationというものを発見し
(Basic Authentication Shibbolethというキーワードで出てきました)、
これが使えないかな、と思って環境構築を始めたのですが、
使った実例もあるということで少し安心しました。

昨日、テスト用IdPサーバにShibboleth SPをインストールするところまでは作業を行ったので、
ご紹介いただいたサイトを見ながら、テストを続けてみたいと思います。

よろしくお願いします。

細川

On 2016/11/24 22:23, Toyokazu Akiyama wrote:
京都産業大学の秋山です.

2年ほどの話なので,最新状況はわかりませんが,IdP01のRemoteUser認証の設定など(ExternalAuthなどもありました)を有効にし,IdP01のhttps://idp.domain/idp/Authn/RemoteUser <http://idp.domain/Authn/RemoteUser>をSP02で保護し,SP02側のREMOTE_USERにuidやeppnなど必要な属性を指定しておくことで,このSP02の認証(IdP02での認証)に成功したユーザのみIdP01にログインさせるということができました.

Shibboleth IdP 3.0 だと以下のページに詳細が載っているようです.

https://wiki.shibboleth.net/confluence/display/IDP30/RemoteUserAuthnConfiguration <https://wiki.shibboleth.net/confluence/display/IDP30/RemoteUserAuthnConfiguration>

checkRemoteUserを使うと良いのでしょうか.
AJPの設定なども絡んでくるので,以下も参照すると良いかと思います.
https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPJavaInstall

取り急ぎ.

2016年11月24日 21:43 Kazu Yamaji <xxxxxx@xxxxxxxxx <mailto:xxxxxx@xxxxxxxxx>>:

   やまじです。

   On 2016年11月24日 12:46:50 JST, Tatsumi Hosokawa <xxxxxxxx@xxxxxxxxxxxxxx <mailto:xxxxxxxx@xxxxxxxxxxxxxx>> wrote:
   >
   >やりたいこととしては、あるShibboleth IdPの認証を他のShibboleth IdPで行いたい、
   >つまり、Shibboleth IdPをShibboleth SP化したい、ということです。

   1回目はSPがあるIdPにログインさせて、
   アカウントをリンクした上で、2回目以降は
   自動的にログインさせるというJavaのアプリ
   なら、以前作ったことがあります。

   想定されているのとは、ちょっと違いますでしょうか?
   --
   Kazu


--
慶應義塾ITC本部  細川達己  xxxxxxxx@xxxxxxxxxxxxxx
Tel. 03-5427-1685  Fax. 03-5427-1722