自社Web/WordPressをAzure AD/SAML認証のシングルサインオンで運用

自社のWebをSAML/シングルサインオンによる認証機能付きで構築&運用する場合の構成です。WAN側の公開用のWebサイトはもちろん、LAN側に設置の社内ローカルなWebサイトもidPの「Azure Active Directory」を利用してSAML2.0認証で運用することが出来ます。

一般的な Webページ や WordPress で作成のWebサイトをAzure ADのSAML2.0/SSOで連携して運用します。またSP/Webの多重化による負荷分散での運用も可能です。

https://japan.zdnet.com/storage/2017/08/03/de5e58b6c73ae8f65bb4ce49490d6dce/newsigninpage.jpg

SAML認証

シングルサインオンのSAML認証の場合には、ユーザーアカウント管理の機能を持つ idP(アイデンティティ・プロバイダ)とその情報を利用するSP(サービス・プロバイダ)で構成されます。

 

SP(サービス・プロバイダ)

今回はSPとして、SAML2.0に対応したSSOのWebサーバー機能を持つ Powered BLUE Web for SSO/IDaaS」を利用します。

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2019/06/pb-vm-2.png

機能としては

  • SAML2.0対応のWebサーバー機能
  • Webサーバー/SP側にユーザーアカウントを作成することなく、SAML認証&グループアクセスのコントロールでの運用に対応
  • インターネットサーバー機能(Mail/Web/DNS/ftp)
  • WordPress /  Let’s Encrypt 対応
  • ひとり情シス対応

のオールインワンで運用出来るサーバーです。CentOSやRedHat 上で動作し、AWS/Azure/Fujitsu Cloud Service for OSS(4OSS) / Enterprise Cloud などのクラウド環境や、VMware/Hyper-Vなどの仮想環境で運用することが出来ます。またCentOS/RedHatで動作するアプリやサードパーティのソフトを組込んでの運用にも対応しています。

 

ユーザーアカウント不要

SPとなるWebサーバーには個別ユーザーのアカウントを作成することなく、SAML認証でWebへアクセスさせることが出来ます。また部門や社員、会員ごとにWebへのグループ・アクセスコントロールの設定・運用にも対応。Webサーバー側にユーザーアカウントがないため、SP/Web側からアカウント漏洩の心配はありません。

ブラウザ

社内Webへのアクセスに際して、モバイル用の閉域網やVPNなどは不要です。利用者は、ブラウザのみで利用できます。

https://www.mubit.co.jp/sub/products/blue/img2/brauza-1.png

 

idP(アイデンティティ・プロバイダ)

idPとしてはSAMLに対応の Azure ADの他、TrustLogin、G Suite、や、CloudGate、HENNGE ONE(旧HDE ONE)、OneLogin、Okta等のIDaaSと連携が出来ます。また自社で運用のidP (OpenAM / KeyCloak)などとの連携も出来ます。

 

SAML2.0でのネットワーク構成例

SAMLは仕様上、idPとSPの直接の通信を行わない構成が可能です(SP-initiated SAML)

ユーザーのブラウザを経由してidPとSP間の通信を行うので、ネットワークやセキュリティ面で制約がある場合でも運用が出来ます

SP(サービスプロバイダ)は任意の場所に設置&運用が出来ます(LAN内の設置でもWAN側のidPでの認証が可能)

SPとIdP/Azure ADの通信手順

1)ユーザーがブラウザでSP(Web)へアクセス
2)SPで認証要求メッセージを作成
3)ブラウザは認証要求メッセージをidPへ転送
4)idPは認証要求メッセージを受信
5)idPは認証応答メッセージを作成
6)ブラウザはidPからの応答メッセージをSPへ転送
7)SPが認証応答メッセージを受信&検証
8)ユーザーはSP上のWebサイトへログイン

 

LAN内に設置のWebサイト/spとidPの例

LAN側に設置のWeb・SP(サービスプロバイダ)へのアクセス認証をWAN側のidP/Azure ADで行う

https://www.mubit.co.jp/sub/products/blue/img2/saml-4.png

 

こんな使い方が出来ます

1)LANでの運用例 SP/社内専用のWebサーバーをLAN内に設置

  • 社内用のWebサーバーをLAN内に設置
  • idPはAzure ADのSAML認証を利用
  • 総務部・技術部・営業部など部門ごとにWebサイトへのアクセス制限を設定
  • Webサーバー上には、ユーザーアカウントは不要

 

2)WANでの運用例 SP/公開用のWebサーバーをWAN側に設置

  • Webサイトを作成
  • トップページはワールドワイドに公開
  • idPはAzure ADのSAML認証を利用
  • 特定のディレクトリは、社員・会員・代理店のみにアクセスを許可
  • Webサーバー上には、ユーザーアカウントは不要

 

3)利用例

  • アルバイト社員の勤怠表Webページ
  • 社員向け連絡版のWebページ
  • 代理店向けの製品資料の閲覧やダウンロードページ
  • 会員向けの特定情報Webページ

 

こんなメリットがあります

  • Webサーバーにアカウントがないのでサーバーのメンテナンスが簡単
  • Webサーバーからのユーザーアカウント漏洩の心配は不要
  • 自社のWebサイトをSAML認証でセキュアに運用

 

SAML2.0の設定例

http://wp-sam.mubit.jp/ 以下の指定ディレクトリにSAML2.0の認証を設定する例です

を利用します。

idPとSPにそれぞれ、SAML認証の設定を行います。

 

Web/SP側の設定

Powered BLUE Web for SSO/IDaaS」にSPとなるWebを運用する仮想サイトを作成します

以下のサイトを作成します

http://wp-sam.mubit.jp/

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2019/06/B870-saml-1.png

 

Webサーバの有効化

Webサーバーを有効にする にチェックを入れます

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2019/06/b870-saml-22.png

 

仮想サイトのSSL化

SAML認証に際しては、WebサイトのSSL化が必須です。

SSLのサーバー証明書としては

  • サイトのSSL自己証明
  • パブリックなSSLサーバー証明書
  • Let’s EncryptでのSSLサーバー証明書

に対応しています。

 

自己証明の場合

必要事項に記入の上 「SSLを有効にする」 にチェックを入れます

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2019/06/B870-saml-2.png

 

パブリックなSSLサーバー証明書の場合

必要情報を記載して「署名リクエストの作成」ボタンで作成したテキストを、SSLサーバー証明書を発行する機関へ送付します。

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2015/12/csr-1.png

  • 「署名リクエストの作成」でファイルを保存
  • 作成された「署名リクエスト」 ファイル signig-request.txt を、公的なSSLサーバー証明書の発行機関へ送付

signing-req-1

  • 公的機関で発行された、サーバー証明書を 「インポート」 します
  • 中間証明書のインポートにも対応しています

SSLサーバー証明書が発行されたら「インポート」ボタン操作でSSLサーバー証明書をインポートします

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2015/12/ssl-import-1.png

 

Let’s Encryptを利用の場合

サーバーのフリープラグイン機能を利用して、Let’s Encryprt プログラムをインポートします

FreeSSLを選択

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2019/06/b870-saml-3.png

インストールボタンをクリック

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2019/06/b870-saml-4-1.png

Let’s Encryptインストール後に 有効にする にチェックを入れます

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2019/06/b870-saml-5.png

 

Webサイト

作成した仮想サイトには、デフォルトでindex.htmlが自動作成されています。このindex.htmlファルを適宜変更して、Webページを作成する もしくは フリープラグインでWordPressをインストールしてWebページを作成する事も出来ます。

デフォルトのindex.html

https://wp-sam.mubit.jp/index.html

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2019/06/b870-saml-23.png

WordPressインストール

フリープラグインでWordPressを選択します。

WordPressを「インストールボタン」を押すだけで、簡単にインストール&セットアップ出来ます。

Powered BLUE 対応のWordPressのインストールパッケージは、WordPress本体のインストールやセットアップなどを簡単化しています。機能などは通常のRedHat/CentOS 対応のWordPressと同一です。

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2019/06/b870-saml-6-1.png

WordPressの作成

「ブログを追加する」 ボタンを押します

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2019/06/b870-saml-7.png

パスの指定

WordPressをインストールする https://wp-sam.mubit.jp サイトのパスを指定します

今回は /develop-dep を指定

https://wp-sam.mubit.jp//develop-dep にWordPressがインストールされます

「ブログをインストールする」 ボタンを押します

尚、WordPressは同一サイト内に複数のインストールが出来ます

 

例 「ブログの追加する」 ボタンを押して

sales-dep

support-dep

などを指定して複数のWordPressをインストール

https://wp-sam.mubit.jp/develop-dep/

https://wp-sam.mubit.jp/support-dep/

https://wp-sam.mubit.jp/sales-dep/

のディレクトリにそれぞれ、個別のWordPressがインストールされました

 

WordPressのアップデート

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2019/06/wordpress-1.png

WordPressはインストール後に、最新バージョンへのアップデートも可能です。

WordPressへの各種プラグインや操作&変更などは、通常のWordPressと同様の操作や運用が出来ます。

 

phpの有効化

WordPressのindex.phpが動作するように、phpにチェックを入れて有効にします

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2019/06/b870-saml-10.png

SAML2.0設定

SAMLのエンドポイントを指定します 例 /  (環境に合わせて適宜、変更)

idP側のxmlのメタデータをインポートします

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2019/06/b870-saml-13.png

idP側で作成のメタデータ(xml)をアップロードします

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2019/06/b870-saml-14.png

SAML2.0の認証をかけたいdirを設定します

  • /develop-dep
  • /sales-dep
  • /support-dep

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2019/06/b870-saml-16.png

SAML認証のディレクトリ

https://wp-sam.mubit.jp/develop-dep/

https://wp-sam.mubit.jp/sales-dep/

https://wp-sam.mubit.jp/support-dep/

この3つのURLには、idP側のSAML認証が設定されていないとアクセスができません。なおSPとなるWebサーバー側には、ユーザーアカウントは不要です。

グループアクセスでのコントロールが不要の場合には、SP側はここまでの設定で運用出来ます。

 

attributeの指定

グループでのWebへのアクセスコントロールを行なう場合に、attributeなどを設定します

それぞれのパスに対して、idP側で設定の attribute-value もしくは ロール の指定が出来ます

SP側で attribute=”groups”  value= ”mbt”  というattribute value でのアクセスを許可の場合の設定例

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2019/06/b870-saml-17.png

SAMLの有効化

設定のサイトのSAMLを有効にします

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2019/06/b870-saml-15.png

 

idPの設定

IDaaSでSAML2.0をサポートしていれば、Powered BLUE Web for SSO/IDaaSと接続が出来ます。今回はidPとしてMicrosoft社のAzure ADを利用します。

 

Azure ADの設定例

自社のWebサイトをSAML認証させます

 

Azure AD の前提条件

  • Azure AD Premium

 

エンタープライズ アプリケーションブレード

自社独自のSAMLベースWebを登録の場合には、 [エンタープライズ アプリケーション] ブレードを使用して、アプリケーションを Microsoft ID プラットフォームに接続します。

 

  • お使いの Microsoft ID プラットフォーム管理者アカウントを使用して、Azure Active Directory ポータルにサインインします。
  • Azure Active Directory を選択
  • [エンタープライズ アプリケーション] > [新しいアプリケーション] の順に選択します。
  • (省略可能だが推奨) [ギャラリーから追加する] 検索ボックスに、アプリケーションの表示名を入力します。 検索結果にアプリケーションが表示されたら、それを選択し、この手順の残りをスキップします。
  • [ギャラリー以外のアプリケーション] を選択します。 [独自のアプリケーションの追加] ページが表示されます。

  1. 新しいアプリケーションの表示名を入力します。
  2. [追加] を選択します。

この方法でアプリケーションを追加することにより、事前に統合されたアプリケーションに似たエクスペリエンスを提供します。 まず、アプリケーションのサイドバーから、 [シングル サインオン] を選択します。 次の画面 ( [シングル サインオン方式の選択] ) は、SSO を構成するためのオプションを示しています。

SAMLを選択

① 基本的なSAML構成を選択

idp側のxmlを読み込み

メタデータファイルをクリック

idPに読み込むメタデータファイルの指定(SP側のxmlファイル)

もしくは、以下の項目をxmlの内容に沿って記述します

Azure AD SAML の設定例

SAMLの項目

SP側のxmlの内容に従って、以下の項目を設定します。SP側のxmlファイルのアップロードでの登録も出来ます。

エンティティID

https://他wp-sam.mubit.jp/endpoint/metadata

 

応答URL (Assertion Consumer Service URL )

https://wp-sam.mubit.jp/endpoint/postResponse

 

サインオンURL

https://twp-sam.mubit.jp/develop-dep/

 

リレー状態

空欄でも可能

 

ログアウトURL

空欄でも可能

 

② ユーザー属性とクレーム

必要に応じて設定

 

③ SAML署名

idP/Azure AD側のフェデレーションメタデータ(XML)をダウンロードして、SP側に登録します

グループアクセスコントロールが不要の場合には、ここまでの設定となります

 

Validate

idPおよびSP側の設定が正しければ、「Validate] ボタンをクリックすると SP側のWebページが表示されます。

 

例 現在のユーザーとしてサインイン

エラーが表示される場合には、メッセージをコピーします

エラーが表示される場合には、メッセージをクリップボードに貼り付けると修正方法が、サジェスチョンされます

エラーを適宜修正して、正常にアクセス出来ればセットアップは終了です。

 

SAMLアプリケーションにユーザーとグループのアサイン

作成したSAMLアプリケーションを利用出来る、ユーザーやグループを割り当てます

  • アプリケーションのサイドバーで、 [ユーザーとグループ] を選択します。 [<アプリケーション名> – ユーザーとグループ] ページが表示され、割り当てられたユーザーとグループの現在の一覧が示されます。
  • [ユーザーの追加] を選択します。 [割り当ての追加] ページが表示されます。
  • [ユーザーとグループ] (選択した <数>) を選択します。 [ユーザーとグループ] ページが表示され、使用可能なユーザーとグループの一覧が示されます。
  • 一覧から割り当てるユーザーまたはグループを入力するか、スクロールして見つけます。
  • 追加する各ユーザーまたはグループを選択し、 [選択] ボタンを選択します。 [ユーザーとグループ] ページは表示されなくなります。
  • [割り当ての追加] ページで [割り当て] を選択します。 [ – ユーザーとグループ] ページが表示され、追加ユーザーが一覧に示されます。

 

https://docs.microsoft.com/ja-jp/azure/active-directory/manage-apps/media/configure-single-sign-on-non-gallery-applications/application-users-and-groups.png

 

アクセス

https://wp-sam.mubit.jp/develop-dep/

 

初回

シングルサインオンでは、一度  idP/Azure AD  へのログイン

https://japan.zdnet.com/storage/2017/08/03/de5e58b6c73ae8f65bb4ce49490d6dce/newsigninpage.jpg

ターゲットのwebページ

SAML認証を設定のターゲットのWebページが表示されます

 

SP/Webの多重化

SP側のWordPressや一般のWebページを2重化して、シングルサインオン/SAML認証でWebアクセスの負荷を分散させる構成にも対応しています。

 

多要素認証

idP側の認証とは別に、「Powered BLUE Web for SSO / IDaaS」のSP上で単独で

  • SSLクライアント認証
  • ワンタイムパスワード認証

を設定して運用する事が出来ます

 

SSLクライアント認証

SP上でPrivate CAを運用 SSLクライアント証明書を発行してSSLクライアント認証によるアクセスコントロールが出来ます。

 

OTP/ワンタイムパスワード認証

 

idPの費用を抑えたい場合

IdPの費用を抑えてWebサイトをSAML認証で運用したい場合には、Azure ADと同様の機能を持ち、idPの基本機能は無料で利用出来るGMOグローバルサイン社のIDaaSサービス「TrustLogin」を使うことも出来ます。

https://www.mubit.co.jp/sub/products/blue/img2/arrow-finger.gif  自社Web/WordPressをSAML/SSO認証で構築(TrustLogin編)

 

終わりに

デモ環境で試してみたい方や詳しい話を聞いてみたい方などは、ムービットの https://www.mubit.co.jp/sub/products/blue/img2/arrow-finger.gif お問い合わせフォーム からご連絡ください。