6
2

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.

OpenID Connect Certification の Conformance Test をローカルで実施する

Last updated at Posted at 2020-04-20

概要

  • OpenID Connect Certification を取得するためには、 Conformance Test という Web で実施できるテストを実施して、結果を提出します
  • ただ、 Web で公開されているテストだと、テスト対象の OP も Web に公開する必要があり、実装途中だったり仕様の理解が正確でないと、結構辛いです
  • テストツールも含めて、すべてローカルに立ち上げてテストする方法をまとめています
  • OP (OpenID Connect Provider) のテストを前提とした記事です

Conformance Test とは

  • OpenID Connect の標準仕様にそった実装ができているかどうかを確認することができるツールです
  • Web 上で実施でき、ここからいつでも誰でもテストを実施できます
  • 実施方法の詳細は、公式サイト を参照してください

ローカルで立ち上げた OP のテストはできない

  • Web で公開されているテスト では、ローカルで立ち上げた OP のテストができません
    • このテストは、対象の OP に対して、 テスト用の RP (Relying Party) を立ち上げて、 OpenID Connect のプロトコルに沿った認証・認可までできるかどうかをチェックするものです
    • Authorization Code Flow のように、サーバ間通信を必要とするフローの場合、テスト時に立ち上がる RP (https://op.certification.openid.net:620xx/) から OP へアクセスできる必要があります
  • OP が実装途中の場合、わざわざインターネットアクセスできるところに公開しないとテストができないので、テスト/デバッグ/修正がめちゃくちゃ辛いです

テストツールの Docker がある!

  • Github に公開されていて、テストツール自体は簡単にローカルで起動できます

テストツールをローカルで起動する

(Readme に書いてある通りですが)

  • checkout して docker-compose up
$ git checkout stable-release-1.2.x
$ docker-compose -f docker/docker-compose.yml up
  • /etc/host を書き換え
$ sudo vi /etc/hosts
---
+ 127.0.0.1 op-test op rp-test

テスト対象の OP をローカルで起動する

  • http://localshot で起動しているとします

テストツールでテストを新規作成する

  • テスト新規作成画面 を開く
    image.png

  • issuer に http://host.docker.internal を指定する (Docker for Mac を使っている場合)

    • http://localhost を指定すると、テストで起動する RP はテストツールの Docker コンテナ上にいるため、Docker ホスト上の localhost ではなく、 Docker コンテナ上の localhost を見に行ってしまいます
    • Docker コンテナから Docker ホスト上のプロセスを指定する必要があります

RP 側のログを見る

  • テスト中にスタックトレースが表示されるようなエラーが起きた時に、実際に RP <-> OP の間でどういうリクエストとレスポンスがあったのかを見に行ったほうが早いです
$ cd ${conformance-test-root-dir}
$ cd ./docker
$ docker-compose exec op-test /bin/bash
# ここからコンテナ内操作
/usr/local/src/oidf/oidc_op# less server_log/rp_6000x.log
6
2
1

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
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?