LINE WORKS Developers

コミュニティ

LINE WORKSのテクニカルエキスパート及び開発者と
コードのサンプル、リソース、Tip等を共有し問題解決への相談が可能です。

??dev_메인_타이틀_모바일_ja_JP??

問い合わせ

Server List(ID登録タイプ)の認証キーのフォーマットについて

 

ID登録タイプによるサーバーAPIのコールをテストしております。

 

以下の投稿者と同様に「認証キーがそのままでは使用できない」という問題が発生しております。 

 

https://developers.worksmobile.com/jp/community/general/151/?selectedCategory=all

[2]JWT/JWS生成ライブラリについて

 

Developers Consoleから発行されたprivate.keyをそのままJWTの署名に使用しようとすると、private.keyのフォーマットがおかしいとのエラーが出ます。

 

試しにopensslでチェックをかけてみると、

$ openssl rsa -in private.key -check
RSA key ok
4294956672:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1199:
4294956672:error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error:tasn_dec.c:765:
4294956672:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:697:Field=n, Type=RSA
4294956672:error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib:rsa_ameth.c:119: 

 

とエラーになります。

 

先の投稿者と同様に

$ openssl rsa -in private.key -text  の「-----BEGIN RSA PRIVATE KEY-----」~「-----END RSA PRIVATE KEY-----」の部分

 

または

 

$ openssl rsa -in private.key -out private.key.out

 

の結果をJWTの署名に使用すると成功します。(両者の内容は同一です)

 

認証キーのフォーマットについて何か情報があれば教えていただけますでしょうか。 

コメント4

  • 画像

    LINE WORKS 公式アカウント

    配布しているPEM形式の秘密鍵は、PKCE#8となっております。
    よってご利用のライブラリがPKCS#8には対応していない場合、形式エラーが発生いたします。

    opensslはデフォルトがPKCS#1のため下記等でPKCS#8からPKCS#1に変換され、
    ご利用のライブラリがPKCS#1は対応されているようで利用できるようになった、といった事象です。
    $ openssl rsa -in private.key -out private.key.out

    配布のままの秘密鍵を利用する場合は、PKCS#8に対応したライブラリを利用していただければと思います。
    PKCS#8非対応のライブラリを利用する場合は、対応する形式に秘密鍵を変換していたらければと思います。
    ドキュメントの記載が不十分で失礼いたしました。

    2017.12.14

    0
  • 納得しました。情報ありがとうございました。

    2017.12.14

    0
  • 画像

    LINE WORKS 公式アカウント

    弊社サービスよりダウンロードする秘密鍵の書式が誤って PKCS#1形式 (BEGIN RSA PRIVATE KEY)となっておりましたので、
    今後 PKCS#8 対応の書式(BEGIN PRIVATE KEY)へと修正いたします。失礼いたしました。

    2017.12.14

    0
  • なるほど、つかえていたライブラリというのはヘッダ・フッタを無視する仕様のものだったのでしょう。
    新たにDeveloper Consoleからダウンロードしたところ、問題なく使用できました。
    早速のご対応ありがとうございました。

    2017.12.15

    0