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

[upki-fed:01010] Re: Movable Type を Shibboleth 認証されている事例はありますか?



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

Movable TypeをShibboleth対応させたくて、「Movable Type Shibboleth」をキーワードにググったところ、
あまりドンピシャの記事が見当たらなかった上に、こちらの2年ほど前のメールが引っかかったくらいだったすが、
自分でやってみたら思ったよりあっさりとShibboleth対応できてしまったので、
もはや期限切れで役に立たない回答かと思いますが、リプライの形でメモを残しておこう、と思います。

これはよくない方法、とかいう点がありましたらぜひご指摘ください。

1. Movable TypeのサーバにShibboleth SPをインストールし、MTのディレクトリを
   Shibboleth認証の対象に設定します。

2. mt/lib/MT/Authに次のファイルをShibboleth.pmという名前で置き、
   $userid_attrにユーザIDとして利用したい属性の環境変数名を設定します

-----ここから----------------------------------
package MT::Auth::Shibboleth;

use strict;
use base qw( MT::Auth::BasicAuth );

my $userid_attr = 'mail';  #ここを設定する(他の例: eppn)

sub can_logout { 1 }

sub remote_user {
    my $class = shift;
    my ($ctx) = @_;
    return $ENV{$userid_attr};
}

1;
-----ここまで----------------------------------

3. mt-config.cgiに次の行を足します。

AuthenticationModule Shibboleth

これだけで設定は終わりです。

登録されていないユーザがShibboleth経由でアクセスしてくると、無権限のユーザが作成されます。
あとは管理者がそのユーザに権限を割り振ればOK、のようです。
これが運用上問題な場合は、new_user()を潰す必要があるかもしれません。

# 私はMTに詳しくないので間違っていたらすみません。

なお、AuthenticationModuleを設定するとShibbolethユーザ以外はログインできなくなるので、
一旦AuthenticationModule設定した状態でShibbolethで管理者にしたいユーザでログインして、
新しいユーザを作成し、その後AuthenticationModuleをコメントアウトして、
以前の管理者でログインして新しく出来たユーザを管理者にして、
それからAuthenticationModuleを再び有効化すれば、Shibboleth認証ユーザの管理者が出来上がります。

以上です。

細川

On 2013/10/24 16:18, TSUCHIYA Masatoshi wrote:
> 土屋です.
> 
> 表題の通りなのですが,ざっと Movable Type 5.2.8 の認証周辺のロジックを眺
> めてみると,lib/MT/Auth/BasicAuth.pm というモジュールがあり,REMOTE_USER
> 環境変数を参照して認証を行っているように読み取れます.
> 
> とすると,普通に Shibboleth 認証にしてやってもうまくいきそうな気がするの
> ですが,先行事例は存在しているでしょうか? もしも,先行事例とコツをご存じ
> でしたら,教えて頂けませんか.
> 
> よろしくお願いします.
> 


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