Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8829

試しに「OpenID Connect Provider Certification」を通してみた

$
0
0

以前、なんちゃってOpenID Connectサーバを立ち上げました。( なんちゃってOAuth2/OpenID Connectサーバを自作する )

それはそれで役に立っているのですが、OpenID Connectに準拠しているかどうかを確認するためのTest Suite があったので、物は試しで通してみました。
結果は、散々でした。Optional機能は実装していないので当然ではありますが。

Conformance Testing for OPs
 https://openid.net/certification/testing/

テストの準備

まずは、準備として、テスト対象のエンドポイントのURLやサポートする機能を指定します。

 https://op.certification.openid.net:60000/

image.png

New ボタンを押下します。

image.png

Issuerに、サーバで生成するトークンに含めるissの値を指定します。
Response Typeとして「code」を選択しました。

最後に、「Create」ボタンを押下します。

次は、各エンドポイントなどを指定します。

image.png

以下の値を指定することで、テストを開始できました。

・contact_email : 適当な値
・authorization_endpoint : 認証エンドポイント
・jwks_uri : 署名を検証するための公開鍵のエンドポイント
・token_endpoint : トークンエンドポイント
・userinfo_endpoint : USERINFOエンドポイント
・client_id : 適当な値
・client_secret : 適当な値

最後に、「Save & Start」ボタンを押下すると、テスト用のページに進みます。

image.png

いざ、テスト実施

左側の列にある再生ボタンを押下していくと、それぞれテストが実施されます。
結果はこんな感じです。

image.png

まあ、実装を手抜きしているので当然ですね。
右側の列にある「!」マークのボタンを押下すれば、実行経過やエラー理由が確認できます。

エラーとなった理由を列挙しておきます。

(OP-Response-Missing)
・エラーメッセージを返すべきだが、HTTPエラーステータスが返ってきている。Swaggerで必須パラメータを指定しているがそれがないため

(OP-ClientAuth-SecretPost-Static)
(OP-claims-essential)
(OP-nonce-code)
(OP-prompt-none-LotLoggedIn)
(OP-Req-acr_values)
(OP-Req-login_hint)
(OP-Req-max_age=1)
(OP-Req-max_age=100000)
・OpenID Connectの仕様上Optionalな機能であり、対応していません。

(OP-redirect_uri-NotReg)
・リダイレクトURIをチェックしていないため(手抜き実装)

(OP-Oauth-2nd)
(OP-OAuth-2nd-30s)
(OP-OAuth-2nd-Revokes)
・認可コードの期限チェックや利用済みのチェックをしていないため(手抜き実装)

(参考) OpenID Connect Core 1.0 日本語訳
 http://openid-foundation-japan.github.io/openid-connect-core-1_0.ja.html

終わりに

なんちゃっての実装でしたが、こうしてやって実施してみると、すんなり確認が通ってよかったよかった。

以上


Viewing all articles
Browse latest Browse all 8829

Trending Articles