Closed8

OpenID Connect の Conformance Test をローカル環境で行う

42milez42milez

起動

git clone git@github.com:openid-certification/conformance-suite.git
git co -b release-v5.1.17 refs/tags/release-v5.1.17
MAVEN_CACHE=./m2 docker compose -f builder-compose.yml run builder
docker compose up -d

証明書取得

docker exec -it conformance-suite-httpd-1 cat /etc/ssl/certs/ssl-cert-snakeoil.pem > ~/Downloads/localhost-cert.pem
42milez42milez

証明書を Keychain に取り込む

sudo security add-trusted-cert -d -k /Library/Keychains/System.keychain ~/Downloads/localhost-cert.pem

削除はこのコマンド( ハッシュ値はオプション )

sudo security delete-certificate -c localhost -Z "<SHA256_HASH>" /Library/Keychains/System.keychain

ハッシュ値は次のコマンドで取得できる

openssl x509 -fingerprint -sha256 -in ~/Downloads/localhost-cert.pem | grep "sha" | grep -o -E "[0-9A-Z:]{64}" | sed "s/://g"
42milez42milez
  1. コンテナが起動したらブラウザで https://localhost:8443/ にアクセス
  2. Create a new test plan をクリック
  3. Test Plan から OpenID Connect Core: Basic Certification Profile Authorization server test を選択
  4. Server metadata location から discovery を選択
  5. Client Registration Type から static_client を選択
  6. Servder.discoveryUrl/.well-known/openid-configuration の URL を入力
  7. Client.client_id に Client ID を入力
  8. Client.client_secret に Client Secret を入力
42milez42milez

異なるネットワークに存在するコンテナと通信する場合は host.docker.internal という DNS 名を使う。
https://docs.docker.com/desktop/networking/

例えばネットワーク A からネットワーク B にリクエストを送信する場合。B でポートフォワードが 8080:80 に設定されている場合の URL は http://host.docker.internal:8080 となる。

42milez42milez

ECDSA 公開鍵の情報を出力するコマンド

openssl ec -pubin -in public.pem -text -noout

入力を公開鍵として解釈してもらうために -pubin が必要

42milez42milez

PEM 形式の鍵のフィンガープリント( ハッシュ値 )を算出するコマンド。Base64 デコードして DER 形式に変換してから SHA256 ハッシュを計算する。

grep -v ^- private.pem | base64 -d | sha256sum
このスクラップは4ヶ月前にクローズされました