-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_ClientCertOffload
Linux環境でクライアント証明書を認証(アプリではサボりたい)。
-
以下は、クライアント証明書を使用したプログラムのテスト動画
- Demo: MultiPurposeAuthSite & Financial-grade API part 2 (confidential client) of Open棟梁 - YouTube
https://www.youtube.com/watch?v=m9BGlJwOdOM
この構築は、IIS Expressで行った。(の該当節)
- Demo: MultiPurposeAuthSite & Financial-grade API part 2 (confidential client) of Open棟梁 - YouTube
-
これによりクライアントから送信される
クライアント証明書は、以下のプログラムで取得可能。これをApacheや、他のWebサーバでやればイイだけ。
この処理を、中間層にオフロードしたい場合、
...調べると以下のようなものがある模様。
- ProxyServletでリバースプロキシを作った話 - Qiita
https://qiita.com/shinevillage/items/5b10ae6517628a41c574
これを使用して、
X.509をX-ARR-ClientCert、X-Client-Certヘッダから、
読んで、任意のHTTPヘッダを追加して、代理リクエストすればイイ。
...しかし、色々調べて、具体的な実装方法が不明。
そこで他にも調べてみたが、
HAProxyというプロダクトにビンゴの当該機能が存在するっぽい。
(Authentication Developer Guide 7.5.0 )
-
7.1. 概要
https://nec-baas.github.io/baas-manual/latest/developer/ja/auth/clientcert/intro.html -
7.3. リバースプロキシで認証する場合の設定
https://nec-baas.github.io/baas-manual/latest/developer/ja/auth/clientcert/haproxy.html-
本章では HAProxy によるクライアント証明書
認証を行う場合の設定手順を説明します。 -
HAProxyからBaaSサーバへのリクエスト抜粋
X-SSL-Client-CertAuth-Validated: 1 X-SSL: 1 X-SSL-USED: 1 ... X-SSL-Client-DN: /C=JP/ST=Kanagawa/L=Kawasaki/O=... X-SSL-Client-CN: client001 X-SSL-Client-UID: 00000001
-
-
7.6. HAProxyで認証する場合の設定例
https://nec-baas.github.io/baas-manual/latest/developer/ja/auth/clientcert/configurations.html
なお、自己署名証明書の問題対策は以下に書かれている。
-
openssl - Haproxy ssl configuration - install root and intermediate certificate - Stack Overflow
https://stackoverflow.com/questions/15048346/haproxy-ssl-configuration-install-root-and-intermediate-certificate...大きなPEMにまとめるとか、少々、乱暴な設定方法らしい。
余談、
SiteMinderもバックエンドに認証結果情報をHTTPヘッダで転送していたと思うので、
調べてみたが、オレオレ・ヘッダなので、適当なヘッダに書き換えれば良さそう。
- 製品によって使用されるデフォルトの HTTP ヘッダ
CA Single Sign-On - 12.7 - Japanese - Japan - CA Technologies ドキュメント
https://docops.ca.com/ca-single-sign-on/12-7/jp/http-403316211.html- SM_AUTHDIRNAME
- SM_AUTHDIRSERVER
- SM_AUTHDIRNAMESPACE
- SM_AUTHDIROID
なので、HAProxy のX-SSL-Client-**でもOK。
移行メモ
- マイクロソフト系技術情報 Wiki(techinfoofmicrosofttech.osscons.jp)への URL リンクは、移行済みの ASP.NET+クライアント証明書 に張り替えた。
- PukiWiki のページ内アンカ(
#xxxxxxxx)は GitHub Wiki では再現できないため、 「(の該当節)」を添える形に置き換えた。- 末尾の「X-SSL-Client-**」は Markdown の強調と解釈されないよう バックスラッシュでエスケープした。
- 元 Wiki の行頭空白によるプレフォーマット・ブロックは、 フェンス付きコードブロックにした。
Tags: 移行, クライアント証明書, HAProxy, リバースプロキシ, ProxyServlet, X.509, SiteMinder, オフロード
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。