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