この設定を自分のウェブサイトでまだテストしていません。その前に、手順を手動で確認しようとしています。
以前参照されたフォーラム投稿より:
\u003e 以下の設定の場合:
Discourse ドメイン:http://discuss.example.com
DiscourseConnect URL:http://www.example.com/discourse/sso
DiscourseConnect シークレット:d836444a9e4084d5b224a60c208dce14
\u003eユーザーのログイン試行
\u003e* ノンスが生成されます:cb68251eefb5211e58c00ff1395f0c0b
\u003e* 生ペイロードが生成されます:nonce=cb68251eefb5211e58c00ff1395f0c0b
\u003e* ペイロードが Base64 エンコードされます:bm9uY2U9Y2I2ODI1MWVlZmI1MjExZTU4YzAwZmYxMzk1ZjBjMGI=\\n
\u003e* ペイロードが URL エンコードされます:bm9uY2U9Y2I2ODI1MWVlZmI1MjExZTU4YzAwZmYxMzk1ZjBjMGI%3D%0A
\u003e* Base64 エンコードされたペイロードに対して HMAC-SHA256 が生成されます:2828aa29899722b35a2f191d34ef9b3ce695e0e6eeec47deb46d588d70c7cb56
ここで、私が得た答えが異なります。以前提案された HMAC エンコーダーを、Base64 エンコードされたが URL エンコードされていないペイロードに対して使用したところ、2828aa29899722b35a2f191d34ef9b3ce695e0e6eeec47deb46d588d70c7cb56 ではなく d26d5adf900de48890a0c3dcdeec108acd91b44a4b76c90c59955a5ba7b957f7 が得られました。また、URL エンコードされたペイロードに対して使用した場合は、46e749cd26dcabc84eed323ff31f830da674dc87c77a2fcb1b296f76402ea900 となりました。
ただし、チュートリアルの後半、新しいペイロードの作成段階では:
\u003e 署名なしペイロードが生成されます:
nonce=cb68251eefb5211e58c00ff1395f0c0b\u0026name=sam\u0026username=samsam\u0026email=test%40test.com\u0026external_id=hello123\u0026require_activation=true
(順序は問われません。値は URL エンコードされています)
\u003e ペイロードが Base64 エンコードされます
bm9uY2U9Y2I2ODI1MWVlZmI1MjExZTU4YzAwZmYxMzk1ZjBjMGImbmFtZT1zYW0mdXNlcm5hbWU9c2Ftc2FtJmVtYWlsPXRlc3QlNDB0ZXN0LmNvbSZleHRlcm5hbF9pZD1oZWxsbzEyMyZyZXF1aXJlX2FjdGl2YXRpb249dHJ1ZQ==
\u003e ペイロードが URL エンコードされます
bm9uY2U9Y2I2ODI1MWVlZmI1MjExZTU4YzAwZmYxMzk1ZjBjMGImbmFtZT1zYW0mdXNlcm5hbWU9c2Ftc2FtJmVtYWlsPXRlc3QlNDB0ZXN0LmNvbSZleHRlcm5hbF9pZD1oZWxsbzEyMyZyZXF1aXJlX2FjdGl2YXRpb249dHJ1ZQ%3D%3D
\u003e Base64 エンコードされたペイロードに署名が付けられます
3d7e5ac755a87ae3ccf90272644ed2207984db03cf020377c8b92ff51be3abc3
この署名は、Base64 エンコードされたが URL エンコードされていないペイロードをハッシュすることで生成されるため、なぜ最初のペイロードでは機能しないのか少し不安に思っています。