2017-04-26 15 views
1

私は単純なようなことをしようとしていますが、私は専門知識が不足しているので難しくなります。WSO2 APIM 1.9.0によって生成されたJWTを検証する:公開鍵とは何ですか?

カスタマイズされたAPIMはセキュリティに基づいて配備されています(これは生産ではありません)。だから、carbon.jksしか得られません。

IDSに対してSAML2を使用するアプリケーションでユーザーを認証し、SAML2トークンから生成されたユーザートークンに対してAPIMを使用します。 APIMからAPIを呼び出すために使用するOAuthトークンをAPIMから取得します。 (私はこれまで数時間前に別の投稿に感謝しました:-))

APIを実装するバックエンドは、ヘッダ、ユーザ情報、アプリ情報、および署名を含むJWTを受信します。 私の最初のテストでは、JWTを記録する独自の "hello world"バックエンドを書きます。

私はhttp://jwt.ioを使用していますが、問題なくJWTを読むことができます。しかし、それは署名が無効であることを私に伝えます。 署名を有効にするには、有効な公開鍵が必要です。

私はそのキーを見つける場所を知りません。

RSA Public Key of WSO2carbonに記載されているコマンドラインを実行し、.certというファイルを生成しました。しかし私は、Windowsでそれを開くと、私に「30 81 89 02 81 81 00のように見えるフィールド「公開鍵」を与えた、porteclehttp://portecle.sourceforge.net/)に.certファイルを調べたが、興味のあるものを発見しました94 a [...] "、かなり長く、明らかに16進数。

http://jwt.ioではこれを試しましたが、そのbase64でエンコードされた表現は試しましたが、成功しませんでした。

私は私の公開鍵であり、私も読んだことが疑問に思っていたので: How to validate a JWT from WSO2 API Manager を(と参照リンクhttps://asankad.org/2013/12/05/obtaining-certificate-used-to-sign-a-jwt/) 提供されているコードは、言語のではないとしても言及して、自分自身で少しですが。私はそれがnode.jsだと仮定しますが、libsや何かについての情報はありません。ここで

いくつかのより正確な質問されています

  • WSO2 APIMは(SHA2 IIUCの味である)のみSHA256withRSAを提供しています。 wso2carbon.jks私が見つけた証明書はsha1でした。とにかく働けないと思っています。 APIMはどのようにしてSHA1証明書付きのSHA256を生成できますか?
  • WSO2 APIMは、SHA256withRSAのみです。 http://jwt.ioは、RS256HS256のいずれかを選択し、もう一方は秘密(パブリック/プライベート)を選択します。私は使用する必要があると推測していますRS256? (しかし、私はSHA1の証明書から来たようです)
  • 私がやっていることに成功した人は誰ですか?WSO2 APIMをインストールし、JWTを生成し、署名を含むhttp://jwt.ioに対してJWTを検証しますか?
  • もし私がhttps://github.com/tymondesigns/jwt-authのようなlibを使ってJWTを検証したら、それはうまくいくのですか?私はこのlibがSHA256をサポートしていないと言われました。
  • APIMに私はサンドボックスと呼ばれるテナントです。私がスーパーテナントカーボンに行く場合、wso2carbon.jksを参照してください。私自身のテナントの炭素に行くとsandbox.jksと表示されますが、それは空ですが、デプロイメントマシンでは対応するファイルはありません。それはどうしたらうまくいくのですか?テナントJKSは、使用されたときにのみ存在するのですか、それともファイルシステムではなくDBに格納されていますか?
  • トークン、JWTなどを公開フォーラムにどのくらい表示できますか? :-)(私が助けてくれるなら、私は共有したい!)

ありがとうございました! (私が必要とするのは、デフォルトの公開鍵です。デフォルトのキーストアを使用しているのを見てください)

答えて

0

誰かが同じ問題を抱えている場合には、

2つのことは、私を助け:

  • jwt.ioに検証するには、まず、私は、次のコマンドを実行して、証明書のエンコーディングを変更するために必要な:openssl x509 -inform der -in somekey.cer -out somekey.pem
  • その後、私はスーパーテナントを使用していましたテナントキーストアの代わりにキーストアを使用します。私はこれを調べていましたが、APIM VM上のテナントキーストアは見つかりませんでした。私が持っていた:APIM炭素ポータルのようにテナント管理者に
    1. ログ
    2. ナビゲートのconfigure /キーストア
    3. sandbox1.jksと呼ばれる)テナントのキーストアがあった
    4. 、クリック上公開鍵
    5. ダウンロードsandbox1.certを保存し、上記のコマンド
    6. を使用してPEMに変換

たPEMは、これは他の人を助けRS256

希望を使用してjwt.ioとうまく働きました!

関連する問題