IdPにAzureADを使用し、SPにApache(mod_auth_mellon)を使用した時の設定をまとめます。
特に、UbuntuとAzureADの組み合わせに関しては、まったく記事が見つからなかったので少しでも参考になれば幸いです。
他に不明なところはコメントください追記や別記事にしていきたいと思います。
環境
|構成 |環境 |
|---|---|---|
|IdP |AzureAD |
|SP |Ubuntu(Apache 2.4 mod_auth_mellon) |
UbuntusはWindows10 WSL2 の Ubuntu 20.4を使用しました。
参考
基本的にこのサイトのとおりにやればできました。
https://www.techsupportpk.com/2021/05/integrate-azure-active-directory-authentication-apache-ubuntu-debian.html
つまづいたところ
AzureADのデフォルト属性の中にはNameという属性がないので、設定する必要あり。もし設定しなかった場合はHTTP 500エラーとなった。
<Location /protected>
Require valid-user
AuthType "Mellon"
MellonEnable "auth"
MellonDecoder "none"
MellonVariable "cookie"
MellonSecureCookie On
MellonUser "Name"
</Location>
設定しなくてもOKなところ
AzureADでユーザへの割当要求を設定しているが、これがデフォルトの「はい」の場合はユーザまたはグループをAzureADに割り当てる必要あり
必須かどうかわからない設定
前にPythonでSAML2.0を設定したときは不要だった、IdPのフェデレーションが今回は必要でした。
AzureADでフェデレーション設定の情報をダウンロードした後に、Apacheを再起動するようです。
AzureAD_metadata.xmlの部分です。
<location />
MellonSPPrivateKeyFile /etc/apache2/mellon/mellon.key
MellonSPCertFile /etc/apache2/mellon/mellon.cert
MellonSPMetadataFile /etc/apache2/mellon/mellon_metadata.xml
MellonIdPMetadataFile /etc/apache2/mellon/AzureAD_metadata.xml
MellonEndpointPath /mellon
MellonEnable "info"
</Location>
わからないところ
- HTTPSは必ず必要か?
- Location設定が2か所に必要だけど関係性は調査が必要
- HTMLの中で属性値を取りたい場合はどのように設定したらいいかわからない
- 細かい設定がわからない
わからないところだらけだけど、まずはSSOできたことやAzureADの例が少ない弱点でしょうか。
次は、CentOSで実際にHTMLで取得するときにどうすればいいのか?などを調べていきたいと思います。