OpenAM 14.0.0 を使って SAMLのIdP(Identity Provider) を構築していると、
こんな疑問にぶつかりました👇
「SHA-1はもう危険って言われてるけど、
OpenAMのGUIでSHA-256に切り替える項目が見当たらない…🤔」
実際に調べて設定してみたところ、
GUIの1か所をポチっと変えればOK、という話ではないことが分かりました。
今回は OpenAM 14でSAML署名をSHA-1 → SHA-256へ変更する手順を、
同じところで悩む人向けにまとめます✍️
まず大事なポイント👇
❌ パスワード認証方式のSHA
⭕ SAMLアサーション/レスポンスの署名アルゴリズム
OpenAMで言う「SHA-256化」は、
SAMLメッセージの電子署名方式を強化するという意味です。
先に結論を書くと👇
✅ OpenAM 14はSHA-256対応
❌ GUIに「SHA-256を選択する項目」は存在しない
⭕ 使用する証明書の署名アルゴリズムに依存
つまり、
SHA-256で署名された証明書を使えば、
SAML署名もSHA-256になる
という仕組みです。
まずは管理コンソールから設定を確認します。
管理コンソール
→ Federation
→ Entity Providers
→ SAMLv2 Identity Provider
→ 対象のIdPエンティティ
ここで指定している 証明書のalias が重要です🔑
SHA-1証明書を使っていれば、署名もSHA-1のままになります。
OpenAM側のキーストアに入っている証明書を確認します。
keytool -list -v -keystore keystore.jks
Signature algorithm name: SHA1withRSA
Signature algorithm name: SHA256withRSA
🔧 対応方法
これが一番大事なポイントです💡
環境によっては、
署名アルゴリズムを明示しないとSHA-1にフォールバックすることがあります。
Configuration
→ Servers and Sites
→ 対象サーバ
→ Advanced
org.forgerock.openam.saml2.signature.algorithm=http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
org.forgerock.openam.saml2.xmlsig.digest=http://www.w3.org/2001/04/xmlenc#sha256
📌 OpenAM 14では
GUIに項目が無いケースが多いため 手動追加が定番です。
IdPだけSHA-256にしても、
SP(Service Provider)が未対応だと失敗します。
チェックポイント👇
<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
設定変更後は必ず OpenAMを再起動します。
これを忘れると
「設定したのにSHA-1のまま…😇」
という沼にハマります。
| 勘違い | 実際 |
|---|---|
| GUIでSHA-256を選べる | 証明書依存 |
| プロパティだけでOK | 証明書更新が必須 |
| OpenAM 14は古いから非対応 | 対応している |
✅ OpenAM 14でSHA-256は問題なく使用可能
✅ 鍵は証明書の署名アルゴリズム
✅ IdPエンティティのaliasを見直す
✅ 必要に応じてAdvanced設定を追加
✅ 再起動を忘れない
同じところで詰まっている人の助けになれば幸いです🙏
SAMLまわりは 「分かってる前提」 の情報が多くて辛いですね…。
またハマったら備忘録として残していこうと思います✍️😊
まず結論:ここだけ見ればOK✅…