情報システム課の宮澤です。
今回は、OneLoginを利用して、WordPressのID管理を簡単にできて、セキュリティの強化も図れる方法を紹介します。
前提条件
今回の記事では、以下の2つが揃っていることが前提で記載しています。
WordPressの環境はAMIMOTO AMIを利用することで、AWS上に簡単に準備出来ます。
- OneLogin(Enterprise以上)が利用できる
- WordPressがセットアップされている
OneLogin側の設定
OneLoginに管理者IDでログインし、”Apps>Add Apps”に移動します。
検索欄に”WordPress”と入力し、表示された”WordPress”のSAML2.0コネクタを選択します。
OneLogin上の表示名を設定して”SAVE"を押します。
"Configuration"タブを開き、Consumer URLとLogout URLを以下の形式にしたがって入力します。
Consumer URL:http://{prefix}.{your_subdomain}.com/wp-login.php?saml_acs
Logout URL:https://{prefix}.{your_subdomain}.com/wp-login.php?saml_sls
"Palameters"を開き設定を行いますが、設定内容は初期状態で問題無いです。
SSOタブを押して”View Details”を押します。
以下のアイコンをクリックすることでX509証明書をクリップボードにコピーできます。
※次項のWordPress側の設定で利用します。
WordPress側の設定
WordPressの管理画面にログインして、"プラグイン>新規追加"に移動します。
検索欄に"OneLogin SAML SSO"と入力して検索して、”OneLogin SAML SSO”の”今すぐインストール”を押します。
プラグインインストール実行の画面が表示され、完了したら”プラグインを有効化”を押します。
ナビゲーションメニューの”設定>SSO/SAML Settings”に移動します。
SSO/SAML Settingsのページで、”IDENTITY PROVIDER SETTINGS”と”ATTRIBUTE MAPPING”の2つの項目について以下のように入力を行います。
”ATTRIBUTE MAPPING”の項目を設定することで、OneLoginの情報をWordPressのユーザーにマッピングすることができます。
IDENTITY PROVIDER SETTINGS
- IdP Entity ID: Issuer URL
Single Sign On Service URL: SAML 2.0 EndPoint(HTTP)
Single Log Out Service URL: 空欄または、 <http://app.onelogin.com/client/apps>
X.509 Certificate: OneLogin上で確認したX.509証明書
ATTRIBUTE MAPPING
Username: User.Username
E-mail: User.email
First Name: User.FirstName
Last Name: User.LastName
Role: memberOf
”変更を保存”を押して、設定は完了です。
さらに、OPTIONSの項目の"Create user if not exists"を有効にすることで、初回ログイン時にユーザーがいない場合は、自動的にOneLoginのユーザー情報を利用してユーザーを作成することもできます。
まとめ
WordPressにOneLoginのSSOプラグインを導入して設定することで、簡単にOneLoginからのSSOを実現することができました。
これを行うことで、ユーザーはパスワードを利用せずにWordPressを利用可能になり、管理者はID管理がOneLoginに一元化されるので、運用負担が軽減されます。
例えば、AMIMOTOでWordPressを運用していてID管理をしっかりしたいという要件を満たすことができます。
また、WordPress以外でもIDP連携可能なWebアプリケーションであれば、同様の設定をOneLoginで行うことができます。