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

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



西村です。

蛇足かもしれませんが、
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

-- 
西村健
国立情報学研究所 TEL:03-4212-2890
⌘