Azure Active Directory を使用した Webサーバー(Apache)認証
2025年7月6日 15時32分1. Azure の手順
(1) Azure Active Directory にアプリケーションを登録
Azure Active Directory に移動
アプリの登録 > 新規登録 > アプリケーションの登録
・名前: 任意
・サポートされているアカウントの種類: この組織ディレクトリのみに含まれるアカウント (〇〇 tenant test のみ - シングル テナント)
登録ボタン押下。
(2) アプリケーションID、ディレクトリ (テナント) IDの確認
Azure Active Directory に移動
アプリの登録 > (1)で作成したアプリを選択 > 概要
表示名の下に表示されている「アプリケーション (クライアント) ID」が OIDCClientID となる。・・・①
ディレクトリ (テナント) ID が tenantID となる。・・・②
(3) リダイレクト URIの設定
Azure Active Directory に移動
アプリの登録 > (1)で作成したアプリを選択 > 認証 > プラットフォームを追加
・プラットフォームの構成「Web」を選択
・リダイレクト URI: 実際に存在しないURIを設定する(https://ドメイン名/redirect_uri など)⇒ OIDCRedirectURI となる。・・・③
例)https://hoge-test.com/redirect_uri
・ID トークン (暗黙的およびハイブリッド フローに使用)をチェック
構成ボタンを押下する。
(4) クライアントシークレットの作成
Azure Active Directory に移動
アプリの登録 > (1)で作成したアプリを選択 > 証明書とシークレット > 新しいクライアント シークレット
表示された「値(シークレットIDではない)」が OIDCClientSecret となる。・・・④
2. Apache の手順
(1) mod_auth_openidc のインストール
dnf install -y mod_auth_openidc
(2) httpd.conf の設定
保護したい Location を設定する。
vi /etc/httpd/conf/httpd.conf
<Location /test/>
AuthType openid-connect
Require valid-user
</Location>
ルートの場合
<Location />
AuthType openid-connect
Require valid-user
</Location>
いったん Apache の設定確認&再起動を行う。
apachectl configtest
systemctl restart httpd
ブラウザから該当URLにアクセスする(この時点では Internal Server Error になる)
例)
https://hoge-test.com/test/
(3) auth_openidc.conf の設定
OIDCRedirectURI ③
OIDCCryptoPassphrase 任意の文字列
OIDCProviderMetadataURL https://login.microsoftonline.com/②/v2.0/.well-known/openid-configuration
OIDCScope "openid email profile"
OIDCResponseType code
OIDCResponseMode form_post
OIDCClientID ①
OIDCClientSecret ④
3. ユーザーの追加
Azure Active Directory からユーザーを追加
Azure Active Directory に移動 ユーザー > 新しいユーザー > ユーザーの招待
注意点
・https が必須、http サイトでは使用できない。
・Directory / Location ディレクティブに以下の設定があると、優先されてしまうのでコメントアウトすること
Require all granted