OpenDJの環境構築
前回、OpenAMのSAML認証でAWSへログインするまでの設定でOpenAMを構築しましたが、とりあえずOpenAM内にデータストアをもつように定義しました。
今回は、データストアを外に出す場合の設定変更についてです。
データストアはOpenDJを利用します。OpenDJを構築するためのCloudFormationのテンプレートはOpenAMに同じです。
CloudFormationで構築するための前提は、
- aws-cli がインストールされ、プロファイルの設定がされていること
- HostedZoneに ドメイン が登録されていること
- 対象のRegionに キーペア が作成されていること
- 実行するIAMユーザに十分な権限があること
- OpenDJは事前にForgeRockからダウンロードします(要アカウント登録)
- CloudFormation でrpmファイルをダウンロードするため、ダウンロード可能な場所に配置して下さい
- パブリックなS3は前回のOpenAMの構築手順からの続きになります。
# バケット名を取得
BUCKET_NAME=$(aws cloudformation describe-stacks \
--stack-name public-bucket \
--query 'Stacks[].Outputs[?OutputKey==`BucketName`].OutputValue' \
--output text)
echo ${BUCKET_NAME}
#
# OpenAMのwarファイルをS3にアップロード
aws s3 cp opendj-3.0.0-1.noarch.rpm s3://${BUCKET_NAME}/
# アップロードしたRPMファイルのURIを取得
DONWLOD_URI=$(aws cloudformation describe-stacks \
--stack-name public-bucket \
--query 'Stacks[].Outputs[?OutputKey==`DownloadUri`].OutputValue' \
--output text)
echo ${DONWLOD_URI}
#
RPMをダウンロード可能な場所に配置したら、環境変数を設定します。
# 例)
KEY_NAME=openam-key
HOSTED_ZONE_NAME=example.com.
OPENDJ_RPM_URI=${DONWLOD_URI}/opendj-3.0.0-1.noarch.rpm
ROOT_PW=secret
BASE_DN=dc=example\\\,dc=com
それでは、以下のコマンドでOpenDJの環境構築を行います。
aws cloudformation create-stack \
--stack-name opendj \
--capabilities CAPABILITY_IAM \
--parameters ParameterKey=KeyName,ParameterValue=${KEY_NAME} \
ParameterKey=HostedZoneName,ParameterValue=${HOSTED_ZONE_NAME} \
ParameterKey=OpendjRpmUri,ParameterValue=${OPENDJ_RPM_URI} \
ParameterKey=RootPw,ParameterValue="${ROOT_PW}" \
ParameterKey=BaseDn,ParameterValue="${BASE_DN}" \
--template-body file://opendj-template.yml
OpenAMのデータストアの設定変更
データストアの更新
- Administratorユーザ(
amAdmin
)でログイン -
Top Level Realm
>Data Stores
-
新規
をクリック
データストアのタイプを選択
- 名前: OpenDJ(任意)
- タイプ: OpenDJ
-
次へ
をクリック
新規データストア
- LDAPサーバー: (例: example.com:389)
- LDAPバインドDN: (例: cn=Directory Manager)
- LDAPバインドパスワード(LDAPバインドパスワード(確認)): (例: password)
- LDAP組織DN: (例: dc=example,dc=com)
- デフォルトで設定されている
localhost:50389
は削除してください。 - 他の設定はデフォルトのままで。
-
終了
をクリック
※上記手順でOpenDJを構築した場合、設定値は以下から取得できます。
LDAPサーバー
aws cloudformation describe-stacks \
--stack-name opendj \
--query 'Stacks[].Outputs[?OutputKey==`LDAPServer`].OutputValue' \
--output text
LDAPバインドDN
aws cloudformation describe-stacks \
--stack-name opendj \
--query 'Stacks[].Outputs[?OutputKey==`LDAPBindDN`].OutputValue' \
--output text
LDAPバインドパスワード
aws cloudformation describe-stacks \
--stack-name opendj \
--query 'Stacks[].Outputs[?OutputKey==`LDAPBindPW`].OutputValue' \
--output text
LDAP組織DN
aws cloudformation describe-stacks \
--stack-name opendj \
--query 'Stacks[].Outputs[?OutputKey==`LDAPBaseDN`].OutputValue' \
--output text
ローカルのデータストアを削除
-
embedded
のチェックボックスをチェックし、削除
をクリック
設定は以上です。
ユーザを作成できたら、OpenDJのサーバへログインし以下のコマンドでユーザがLDAPに作成できていることを確認できます。
/opt/opendj/bin/ldapsearch \
-D "<LDAPバインドDN>" \
-w <LDAPバインドパスワード> \
-b "ou=people,<LDAP組織DN>" "objectclass=*"
以上