私は単純なようなことをしようとしていますが、私は専門知識が不足しているので難しくなります。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のように見えるフィールド「公開鍵」を与えた、portecle(http://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は、RS256とHS256のいずれかを選択し、もう一方は秘密(パブリック/プライベート)を選択します。私は使用する必要があると推測しています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などを公開フォーラムにどのくらい表示できますか? :-)(私が助けてくれるなら、私は共有したい!)
ありがとうございました! (私が必要とするのは、デフォルトの公開鍵です。デフォルトのキーストアを使用しているのを見てください)