2017-03-29 7 views
0

OpenAM OpenID接続エージェントを使用して、openidの有効範囲を持つTest-Clientという名前のOAuth 2.0/OpenID接続クライアントを作成しました。OpenAM OpenID接続トークン確認

私のOpenAMインスタンスはTomcat 7にデプロイされており、/ etc/hostsファイルを調整してlocalhostをopenam.example.comとして表示しています。既定の資格情報を使用して

、私が使用してOpenIDの接続IDトークンを取得することができ、次の私のベアラ・トークンはアクセストークンが返されるところ(でまだ有効である場合

curl -k -u Test-Client:password -d "grant_type=password&username=demo&password=changeit&scope=openid" -H "Content-Type: application/x-www-form-urlencoded" "http://openam.example.com:8080/openam/oauth2/access_token" 

私は、OpenIDのユーザ情報を取得することができます

curl POST -H "Authorization: Bearer {{access_token}}" -k -v "http://openam.example.com:8080/openam/oauth2/userinfo" 

私の質問::)上記のコマンドによって

  • 私はどのように見つけますかid_token JWTに署名するために使用された秘密?

答えて

3

私はOpen AMでの経験はありませんが、IDトークンを確認するには、OpenID Connectプロバイダの正しい公開鍵を取得する必要があります(鍵が非対称暗号で署名されている場合)。それを得るには、発見文書(/.well-known/openid-configurationにあるはずです)を読むべきです。返されたJSONドキュメントで、jwks_uriの値を見つけてロードします。サーバーのすべての公開鍵を持つ別のJSON文書が作成されます。次に、IDトークンからkid(鍵ID)の値がkidに一致するものを見つける必要があります。

トークンが対称暗号に署名されている場合、その配布のための標準化された方法はありません。

詳細情報については

参照:

+0

仕様はここに言うように対称暗号のために使用されるキーは、クライアントシークレットのようになります。http:/ /openid.net/specs/openid-connect-core-1_0.html#Signing –

+0

これは知っておきたいことですが、修正のためにハンスに感謝します。 –