SalesforceのJWTにユーザ情報やクライアントIDを含める方法


はじめに

 SalesforceのJWTに含められる項目は変更できないため、アクセスするユーザ情報やクライアントIDを送信する方法がないか検証しました。

JWTにユーザ情報とクライアントIDの設定

 認証プロトコルを”JWT”に選択した場合、項目は変更できないので、固定の項目の中で動的に値を変更できる件名を利用して、ユーザ情報やクライアントIDの送信を考えました。

JWT検証ポリシーのクライアントIDのチェック方法

 SalesforceのJWTの件名を利用して送信されたクライアントIDは、MuleのJWT検証ポリシーのクライアントIDチェックで下記の方法でチェックできます。

件名の数式は以下の設定です。

"{  \"UserID\" : \"" & $User.Id & "\" ,  \"ClientID\" : \"1f9fe36248a44a7dad7ac69bf9afc393\" }"

指定ログイン情報でクライアントIDを切り替える方法

 ユーザ情報に関連しない項目は動的に値を変更できないため、指定ログイン情報で変更することが可能です。

まとめ

 標準の指定ログイン情報を利用してユーザ情報やクライアントIDを送信し、MuleのJWT検証でチェックできることを確認できました。
 方法は少しトリッキーですが、標準機能の指定ログイン情報を利用してクライアントIDチェックやユーザ情報を送信ができるのはニーズが多そうですね。では、