以下の手順でJSON Web Token(JWT)/RSAトークンを生成します:
1. ターミナルより以下2つのコマンドを実行しRSAキーペアを生成します(図1)
openssl genrsa -out mykey.pem 4096
openssl rsa -in mykey.pem -pubout -out pubkey.pem
図1 RSAキーペアコマンド
2. パブリックキーをPODにインポートするためService Accountを作成し(または既存のService Accountを利用し)現在のパブリックキーを新たに生成したpemの値をReplaceボタンで反映させます(図2および3)。
図2 現在のパブリックキー
図3 Replaceボタン
3. 次のリンクにあるjwt-helperを用い署名付きJWTを作成します
https://filevault.symphony.com/index.php/s/BisoLiomZWLrijW
パスワードは「Symphony@123」です。
4. jwt-helper.jar、pem、pubkey.pemを同じフォルダー内に置きます(図4)
図4 RSAフォルダー
5. 次のコマンドをBash/Terminal/LinuxベースのOSで実行しJWTトークンを取得します(図5および6)
java -jar jwt-helper.jar -user AlexBotRSA -key mykey.pem
図5 コマンド
上記コマンドの「AlexBotRSA」はステップ2でpemの値を反映させたService Accountのusernameであり、mykey.pemはステップ1で作成したpemキーです。
図6 JWTトークン
6. JWTトークン取得から5分以内に以下のエンドポイントを利用しsesssionTokenおよびkeyManagerTokenを作成します:
Postmanで作成する場合:
Header: Content-Type
Value: application/json
sessionToken: (ポート指定不要)
https://podname.symphony.com/login/pubkey/authenticate
上記URLの「podname」をお客様のpodnameと置き換えてください
{
"token": "eyJhbGciOiJSUzUxMiJ9.eyJzdWIiOiJBbGV4Qm90UlNBIiwiZXhwIjoxNTMxODIxMDQ0fQ.PzsEdray7qMtJCAm0ywfsn9I639ZI4AZ0UNJD4zAnYn9s6NqmA30KT33RRI1AvQOjpEhRG45OKgbBHfpA0vyBhkP5zr_JeG-pr2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxpYjvg9Z7PPxY3Gu8kJQsV1k26wcUunFULs1rQCtUDuFFfBRdruIQLyKV3INmL2E0_m5WLzYmdiAlFvOFrZDtuadvWQCB3IYwM8qpXywcrN8-zDyHnOqC2CvhdhFkS_cz6IecvD1py4RB5gtjYlHFWfe6rm-zEbCGpBYpD_77DiFGXnpI-8nMBg1Tr1onDXHMN9Wkp3brQ_oXLLWQcduur3EL5N8a3MWfviS5kKh4QI7w0Y_Q6beP5u9PywAOLuKL2RaUXBC7N7BV3jSxurzaTWaBWmjN-DgweqHcTbxcdTnNxbseSeP569JL8NR2xz99l5M7uH1P72jlW9_ad-CZqKHTleG5_E4ncHJW7Y3TJosmEWeolMSxr-xkgmIkVw4kEcBiYFoc77ezIgQrMzu8AbI_4jv8"
}
実行後以下の様なレスポンスがかえって参ります:
{
"token": "eyJhbGciOiJSUzUxMiJ9.eyJzdWIiOiJBbGV4Qm90UlNBIiwiaXNzIjoic3ltcGhvbnkiLCJzZXNzaW9uSWQiOiJlYWExZTkzMzFlNGI1ZTUzODI1MDZjNzI3YjkxMTUyZGRjZDY3OTljNzM5MmI3YjIwOTQyNDE0NTZkODc1MDEwOxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGEH3hd-LZv2uly_IKXxdS8uR6a4c3H7Gp7muw3487RRplIPOvsQsv6jd488UP_YbQOs6O__WP1HW7vMxO6RwTW9vRaH3qbrB97JsfFGX090mzbcvjhxBoqW_y37yTr9at7fJinIaC6qKfwicfrSdBrFJHuf9_ZxOdk9PoAQSO-bylRZBsIk4chUvgOBKDgbYaGvlIIzsyYl9XOkr3OWVELS2XXIWejaErKvvri3GYECCUYb4Ptf_1lLqxgkgM2MrUrmY0uR448zhMH2i2BrDK_kOeMvDitS3lNoSjPoApM915GQ",
"name": "sessionToken"
}
keyManagerToken: (ポート指定不要)
https://podname.symphony.com/relay/pubkey/authenticate
上記URLの「podname」をお客様のpodnameと置き換えてください
{
"token": "eyJhbGciOiJSUzUxMiJ9.eyJzdWIiOiJBbGV4Qm90UlNBIiwiZXhwIjoxNTMxODIxMDQ0fQ.PzsEdray7qMtJCAm0ywfsn9I639ZI4AZ0UNJD4zAnYn9s6NqmA30KT33RRI1AvQOjpEhRG45OKgbBHfpA0vyBhkP5zr_JeG-pr2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxpYjvg9Z7PPxY3Gu8kJQsV1k26wcUunFULs1rQCtUDuFFfBRdruIQLyKV3INmL2E0_m5WLzYmdiAlFvOFrZDtuadvWQCB3IYwM8qpXywcrN8-zDyHnOqC2CvhdhFkS_cz6IecvD1py4RB5gtjYlHFWfe6rm-zEbCGpBYpD_77DiFGXnpI-8nMBg1Tr1onDXHMN9Wkp3brQ_oXLLWQcduur3EL5N8a3MWfviS5kKh4QI7w0Y_Q6beP5u9PywAOLuKL2RaUXBC7N7BV3jSxurzaTWaBWmjN-DgweqHcTbxcdTnNxbseSeP569JL8NR2xz99l5M7uH1P72jlW9_ad-CZqKHTleG5_E4ncHJW7Y3TJosmEWeolMSxr-xkgmIkVw4kEcBiYFoc77ezIgQrMzu8AbI_4jv8"
}
実行後以下の様なレスポンスがかえって参ります:
{
"token": '01003fffe37203f4f3b88d9f9a8d73a5b412c9e132f9e34e5f647f841fd66330a5e4807af937b7e3e655ac08449ad86cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx6c9023d00193d0db3434235a19f372a0ceff90078daa521896825bd47649ef63e888d603d9e7fd5e96379c2b447a74e139d7c7e0cd8b7d8e05bcf6ebd271bc04aea52373f2924127af3432e74b1b2c4f89081cd979833ea62215f8',
"name": "keyManagerToken"
}
Curlで作成する場合:
RSA Session Token:
curl 'https://podname.symphony.com/login/pubkey/authenticate' -X POST -H 'Content-Type: application/json' -d '{"token": "ステップ5にて取得したJWTトークンを入力"}'
URLの「podname」をお客様のpodnameと置き換えてください
RSA KM Token:
curl 'https://podname-km.symphony.com/relay/pubkey/authenticate' -X POST -H 'Content-Type: application/json' -d '{"token": "ステップ5にて取得したJWTトークンを入力"}'
URLの「podname」をお客様のpodnameと置き換えてください
JCurlで作成する場合:
以下のURLをご参照ください
https://github.com/symphonyoss/JCurl
RSA Session Token:
java -jar jcurl.jar -d '{"token": "your JWT-Helper generated token"}' https://podname.symphony.com/login/pubkey/authenticate
jcurl.jarにダウンロードされたバージョンを入力ください(例:jcurl-0.9.16.jar)
URLの「podname」をお客様のpodnameと置き換えてください
RSA KM Token:
java -jar jcurl.jar -d '{"token": "your JWT-Helper generated token"}' https://podname-km.symphony.com/relay/pubkey/authenticate
jcurl.jarにダウンロードされたバージョンを入力ください(例:jcurl-0.9.16.jar)
URLの「podname」をお客様のpodnameと置き換えてください
トークンの確認作業(任意)
以下のURLにアクセスいただき
https://jwt.io/
ステップ5で取得されたJWTトークンをEncoded入力スペースに貼り付けます。
Decoded下にあるVERIFY SIGNATUREのpublic key fieldにpubkey.pem、private key fieldにmykey.pem内容を貼り付け複合化された内容を確認できます。
トークンのテスト(任意):
以下のEchoエンドポイントを参照
https://YOUR_POD_SUBDOMAIN.symphony.com/agent/v1/util/echo
上記URLの「YOUR_POD_SUBDOMAIN」をお客様のpodnameと置き換えてください
ステップ6で取得したRSA sessionAuth および RSA Keyauth トークンを用いることにより{'message': 'Hello World'}の返答を確認できれば成功です。
お客様の設定によりこちらの記事の内容が当てはまらない場合がございます。
その場合お客様内シンフォニーアドミニストレーターまたはIT部署様にお問い合わせください。