fc2ブログ

Sonatype Nexusのユーザー管理にOpen LDAPを使う

Apache Maven の管理ソフトウェア、 Sonatype Nexus と OpenLDAP を連携させる。

Open LDAPのインストール・設定

この記事を参照して適当に入れる。
ユーザー情報投入までやる。

Sonatype Nexusのインストール

ここからwarを落とす。
ちょっとわかりにくいけど、「Download Nexus OSS」→「Download the Nexus X.X.X WAR distribution」のリンクで落とせる。
これを適当なTomcatに入れてデプロイ。その際、ファイル名を"nexus.war"とかに変えておくといいと思うよ。

Sonatype NexusとOpen LDAPの連携設定

Nexusへログイン

Nexusの設定はWebインターフェースから行う。
まずはNexusにログインしよう。

今は適当にlocalhostにTomcatが立ってるとすると、

http://localhost:8080/nexus/

とかにアクセスすればいいはず。右上の「Log In」からログインしよう。

初期設定では、

Username:admin
Password:admin123

で管理者権限で入れる。

LDAP機能の有効化

デフォルトではLDAP認証機能が有効化されていないので有効化しよう。
左側のメニューの「Administration」→「Server」から、「Security Settings」の「OSS LDAP Authentication Realm」を有効のほうへ入れてSaveを押す。

ldap_nexus_realm_s.png

LDAPの設定

先ほどの管理メニューの「Security」→「LDAP Configuration」から、LDAPの設定をしていく。

今、ユーザーエントリがou=Users,dc=test,dc=comにあり、LDAPの管理者がcn=manager,dc=test,dc=comだとすると、次のような設定になると思う。

Connection:

Protocol:ldap
Hostname:yourldap.server.com
Port:389
Search Base:dc=test,dc=com //ユーザーやグループエントリのある基底DN あとで使う

Authentication:

Authentication Method:Simple Authentication
SASL Realm:
Username:cn=manager,dc=test,dc=com
Password:XXXXXXXXXXX

ここまでできたら、一旦Check Authenticationボタンを押して、きちんと設定されているか確認しておく。

次はLDAPアカウントとの紐付け設定。こんなかんじかな。
今回はグループは使わないことにして、GroupElementMappingのチェックは外しておく。
あと、personクラスにはE-Mailを表す属性がないので適当に入れておく。

Base DN:ou=Users
User Subtree:unchecked
Object Class:person
User Filter:
User ID Attribute:cn
Real Name Attribute:cn
E-Mail Attribute:description //適当
Password Attribute:userPassword

Base DNには、先程Connectionのところで設定したSearch DNのより下位の部分だけ書く。
つまり、$BASE_DN,$Search DNが真のDNってことになる。このDNの直下が検索対象になる。

直下だけでなく下位すべてを検索して欲しい時は、User Subtreeにチェックすればいいみたい。

ここまで設定して、Check User Mappingを押すと、見つかったユーザー一覧が下に出てくるはず。
出来ていたら最後にSaveしておこう。

権限付与

さて、これでユーザー情報を見つけるところまでできたわけだけど、この状態ではまだログインできない。
それはログインしてページを見る権限がないため。

ここからは各ユーザーに権限を付与していこう。
今回はしていないグループ化をしてあれば、グループごとに権限を付与することもできるみたい。

左側のメニューの「Security」→「Users」から権限を変更したいユーザーを選んで、「Config」→「Role Management」から変えていこう。
見ればわかるけど、adminにしたいならNexus Administrator Role、一般ユーザーならRepo: All Repositories(Full Control)Nexus Deployment Roleを付与しておけばいい感じになると思う。

完成!

これでログイン出来るはず!

LDAP側にユーザーを追加したときは、UsersページのRefreshを押すとユーザーが追加されるので、権限付与してあげればOK。

スポンサーサイト



テーマ : ソフトウェア
ジャンル : コンピュータ

DokuWikiのユーザー管理にOpenLDAPを使う

お仕事でOpenLDAP+DokuWikiな連携をやったので覚え書き。
英語のドキュメントしかなくてしかも完全じゃなかったのでちょっと苦労した。

一応環境はCentOS4。だけど他のOSでもだいたい同じだろう。

OpenLDAPのインストール

適当にyumかなんかで入れる。なぜか所有者がおかしいとこがあるので修正もしとく。

# yum install openldap-servers openldap-clients
# chown -R ldap:ldap /var/lib/ldap

OpenLDAPの設定

次に設定ファイルをいじる

設定ファイルは、

/etc/openldap/slapd.conf
/etc/openldap/ldap.conf

のふたつ。

新しくなって slapd.conf のほうはいらなくなったみたいだけどよくわからなかったので旧来の方法を使った。
(参考: [LDAP]slapd.confが無い)

設定方法は面倒なので各自ぐぐるなり、LDAP本を読むなりして欲しい。

一応、自分の環境では

slapd.conf

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema

pidfile /var/run/openldap/slapd.pid
argsfile        /var/run/openldap/slapd.args

database bdb
suffix "dc=test,dc=com"
rootdn "cn=manager,dc=test,dc=com"
rootpw  XXXXXXXXXXXXXXXXX
directory /var/lib/ldap

ldap.conf

BASE    dc=test,dc=com
URI     ldap://localhost
HOST    localhost

もちろん、パスワードやdnは各自読み替えること。

OpenLDAPの起動

起動は、さっきの参考リンクにあった通りで起動。

# slapd -f /etc/openldap/slapd.conf

ちゃんと設定してるなら、serviceとかでもいいはず。

# service slapd start

こんな感じかな。

OpenLDAPにユーザー情報を投入

今回はツールとかなしでちまちま入れる。
適当なファイルにldifを書いて、ldapaddするって手順。

data.ldif

dn: dc=test, dc=com
objectClass: dcObject
objectClass: organization
o: test
dc: test

dn: ou=Users,dc=test,dc=com
objectClass: top
objectClass: organizationalUnit
ou: users

dn: cn=admin,ou=Users,dc=test,dc=com
objectClass: top
objectClass: person
cn: admin
sn: admin
userPassword: admin

これをldapaddする。

# ldapadd -v -h localhost -x -D cn=manager,dc=test,dc=com -W -f data.ldif

パスワードを聞かれるのでそれを入れれば、データが入るはず。

DokuWikiのインストール

まずは、適当なDocumentRootをApacheかなんかに設定してやる。
そしたら後は簡単。公式サイトにいって落としてきて、解凍した中身を配置するだけ。
その後、/install.phpにブラウザからアクセスして設定する。あとは見たらわかると思う。

ldap-phpのインストール

DokuWikiがphpで書かれている以上、phpのldapライブラリを使ってldapにアクセスすることになる。
でも、デフォルト環境ではldapライブラリが入っていないので入れておく。
//これに気づくのにどれだけかかったか・・・

# yum install ldap-php

OpenLDAPとDokuWikiの連携

さて、ようやく本題。こっからはDokuWikiの設定。
DokuWikiの設定は、 $DocumentRoot/conf/local.php なんかに直接phpコードを書く形になってる。
そこにコレを追記する。

conf/local.php に追記

$conf['authtype']    = 'ldap';

$conf['auth']['ldap']['server']      = 'ldap://localhost:389';
$conf['auth']['ldap']['version']     = 3;
$conf['auth']['ldap']['usertree']    = 'ou=Users, dc=test, dc=com';
$conf['auth']['ldap']['binddn']      = 'cn=manager,dc=test,dc=com';
$conf['auth']['ldap']['bindpw']      = 'XXXXXXXXXXXXXXXXX';
$conf['auth']['ldap']['grouptree']   = 'ou=Users, dc=test, dc=com';
$conf['auth']['ldap']['userfilter']  = '??????';//要設定
$conf['auth']['ldap']['groupfilter'] = '??????';//要設定
$conf['auth']['ldap']['mapping']['name']  = 'sn';

もちろん、dnとかURLなんかは環境に応じて書き換えて欲しい。バージョン指定も大事。
ここで注目して欲しいのが、userfilterとgroupfilter。
これらは、ユーザーとかグループの検索条件を書くところ。
${user} がユーザー名になるので、これを使ってエントリが特定できるように設定する。
今回の場合は、 (&(cn=%{user})(objectClass=person)) と入れておけばOK。

あと、エラーが出て原因がわからない時は

$conf['auth']['ldap']['debug']       = true;

と書いておくと幸せになれると思うよ。

テーマ : サーバ
ジャンル : コンピュータ

検索フォーム
RSSリンクの表示
QRコード
QR