0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Azure ADを使って既存のサービスを簡単に多要素認証対応にする

Last updated at Posted at 2021-08-03

はじめに

「境界型防御はもはや時代遅れ、これからはゼロトラストだから既存のサービスにも多要素認証導入して!あと多要素認証導入されていないサービスは社外からはVPN経由でないと利用できないようにしといて」という無茶ぶりがあったとする。
VPNならいいのかよ?というツッコミは置いといて、なんとか対策を考える。

Azure AD

Azure AD Premium P1だと「条件付きアクセス」、P2なら「リスクベースの条件付きアクセス」が使えるので、希望する条件で多要素認証を利用するように設定できる。
多要素認証を求められた場合にも、Microsoft Authenticatorアプリで承認するだけなので、利用者の負担も軽いのが良い。
せっかくなので新規に多要素認証対応のIdPを構築したりせず、この仕組みを利用することにする。

設定

今回リバースプロキシサーバを用意し、アクセス時にはAzure ADで認証OKならサービスを利用できるようにする。リバースプロキシサーバのFQDNは proxy.example.com、サービス提供サーバを service.example.com とする。

本設定にはAzure Portalでのアプリ登録が必須のため、管理者の協力が必要となる。

Azureへのアプリ登録

Azure ADを使って認証したいウェブサイトについて、Azure Portalでアプリとして登録する。

OnenID Connectモジュールの設定

リバースプロキシサーバでApache httpdにOpenID Connectモジュールを設定する。
RHEL 7の場合はyumコマンドでモジュールを追加できる。

# yum install mod_auth_openidc

OpenID Connect用の設定を、アプリとして登録した内容に合わせて変更する。OIDCRedirectURIの値は https://proxy.example.com/oidc/auth のようなURLにしておく。

/etc/httpd/conf.d/auth_openidc.conf
OIDCRedirectURI <Azure Portalで登録したアプリ用リダイレクトURL>
OIDCClientID <Azure Portalで確認したアプリ用ClientID>
OIDCClientSecret <Azure Portalで生成したアプリ用Secret>
OIDCProviderMetadataURL https://login.microsoftonline.com/<テナントID>/.well-known/openid-configuration
OIDCCryptoPassphrase <適当に決定>
OIDCScope openid
OIDCAuthRequestParams prompt=select_account
OIDCAuthRequestParams domain_hint=<your-azure-ad.domain>
OIDCResponseType code
OIDCRemoteUserClaim upn

サービス提供サーバのリバースプロキシとして動作するよう設定する。

/etc/httpd/conf.d/oidc.conf
ProxyRequests Off
ProxyPass / https://service.example.com/
ProxyPassReverse / https://service.example.com/
SSLProxyEngine on

<Location />
  AuthType openid-connect
  Require valid-user
</Location>

以上の設定をした後で https://proxy.example.com/ にアクセスすると、Azure ADを利用した認証画面が表示される。条件付きアクセスの設定によっては、多要素認証を求められる。
OIDCAuthRequestParams domain_hint=<your-azure-ad.domain> で制限しているため、当該ドメイン以外の個人用MSアカウントなどは、ログイン済みでも表示されなくなっている。

参考にしたサイト

https://heartbeats.jp/hbblog/2017/08/mod-auth-openidc.html
https://heartbeats.jp/hbblog/2017/08/mod-auth-openidc-azure-ad.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?