2022/07/22

SalesforceのJWSとは?注意点やサンプルもご紹介

 
  

SalesforceのJWSとは?

SalesforceのJWSとは、JSON Web Signatureの略です。 具体的に説明すると、JSON形式のメッセージをweb上で扱いやすい文字形式のエンドコードにして、電子署名したものです。

JWS(JSON Web Signature)

JWS(JSON Web Signature)は整合性を保証する2つのパーティーの間でJWTペイロードを転送するためのものです。ペイロードに署名するHMACやデジタル署名などのいくつかの方法とネットワークを介して転送するコンテンツをシリアライズするいくつかの方法を定義しているものです。 署名まで含まないものはJWT(JSON Web Token)と言いますが、最近では署名まで含めてJWTと呼ぶ人も多いので注意してください。 電子署名がされているので、メッセージに記載されている内容が正しく送られているかどうか簡単に検証できるようになっています。

よく間違われるJWTとの違いについて

似たようなものでJWT(JSON Web Token)がありますが、同じものとして表現されることもありますが厳密には違うということを以下の記事で説明していきますので理解しておきましょう。 ・JWT(JSON Web Token) JWT(JSON Web Token)は名前と値のペアである請求をJSONオブジェクトに表現する方法です。2つの間で使用または転送される一連の標準請求を定義するものです。 JWTのメッセージに含まれる内容として、発行者(Issuer)誰がこのメッセージを作成したのか。利用者(Audience)誰に対してこのメッセージが作成されたのか。主体(Subject)誰の情報についてこのメッセージに記載されているのかがあります。

SalesforceのJWSを理解しよう

この章ではJWSのコントラクタについて紹介していきます。また、JWSを使用する上で必要なクラス・インスタンス・オブジェクトについても簡単に解説してきます。 まずは、クラス・インスタンス・オブジェクトについてです。 クラスは設計図、概念と言われることがあります。インスタンスは事実、事例、物体などの意味を持つ英単語です。あらかじめ定義されたプログラムやデータ構成などをメインメモリ上に展開して処理・実行できる状態にしたものを言います。オブジェクトは概念や物体をまとめて指します。 もっとわかりやすく例えるなら、携帯を作りたい場合クラスがスマートフォン、インスタンスがiPhone、アンドロイドの実機。オブジェクトが携帯となります。 ペイロードもよく出てくる用語の一つです。ペイロードとは、パケット通信においてパケットに含まれるヘッダやトレーラなど付加的な情報を除いたデータ本体のことを言います。

SalesforceのJWSのクラスについて

JWSのクラスでは、署名済みのJWTが作成されます。 デジタル署名をJWSのデータ構成を使用してJWTに適用するメソッドが含まれます。このトークンはOAuth 2.0 JWT BearerトークンフローでOAuthアクセストークンの要求に使用できるようになっています。 JWSと似ているJWTのクラスについても理解を深めるために少し紹介します。 JWTのクラス JWTで設定されたJSON要求を生成します。結果のBase64でエンコードされたペイロードを引数として渡し、インスタンスを作成できるものです。

JWSのコンストラクタJWS(jwt、certDevName)について

SalesforceのJWSのコンストラクタJWS(jwt、certDevName)について解説していきます。 ・JWS(jwt、 certDevName) 署名(Signature) public JWS(Auth.JWT jwt、 String certDevName) パラメータ jwt 型: Auth.JWT JWTのBearerトークン内の、Auth.JWTによって生成されたJSONに要求をセットします。 certDevName 型: String Salesforceの[証明書と鍵の管理]というページでJWTのBearerトークンの署名に使用するために保存された証明書の固有の名前です。

JWSのコンストラクタJWS(payload, certDevName)について

SalesforceのJWSのコンストラクタJWS(payload, certDevName)について解説していきます。 ・JWS(payload、certDevName) 署名(Signature) public JWS(String payload, String certDevName) パラメータ payload 型: String JWTのBearerトークン内のBase64エンコードJSONの要求セット。 certDevName 型: String こちらも上記と同様の説明になりますが、Salesforceの[証明書と鍵の管理]というページでJWTのBearerトークンの署名に使用するために保存された証明書の固有の名前です。

SalesforceのJWSのコンストラクタ使用方法について

上記で紹介した、SalesforceのJWSのコンストラクタ使用方法について解説していきます。 ・JWS(jwt、 certDevName) JWS(jwt、 certDevName)とは、指定されたAuth.JWTペイロードとJWTのBearerトークン(持参人トークン、署名なしトークンとも呼ばれる)の署名に使用される証明書を使用して、JWSクラスをインスタンス化させます。 Auth.JWTのtoJSONString()メソッドを呼び出して、結果の文字列をJWTのBearerトークンのペイロードとして設定します。もしくはJWSのpayload,certDevNameを使用して直接ペイロードを指定できます。 ・JWS(payload、certDevName) JWS(payload、certDevName)とは、指定されたペイロードとJWTのBearerトークンの署名に使用される証明書を使用して、JWSクラスのインスタンスを作成するものです。 payload文字列をJWTのBearerトークンのペイロードとして設定します。もしくはAuth.JWTを使用して、ペイロードを生成する場合は、代わりにJWS(jwt、 certDevName)を使用できます。

JWSのメソッドについて

この章ではJWSのメソッドについて説明していきます。 まず、メソッドとは方法、やり方、手法などの意味を持つ英単語です。ITの分野ではオブジェクトに属する処理や操作、通信プロトコルにおける要求の種類などをメソッドと呼びます。 SalesforceのJWSのメソッドは全てインスタンスメソッドです。 ・clone() JWSオブジェクトの重複コピーを作成します。 ・getCompactSerialization() ピリオド[.]で文字を区切られ、エンコード済みのJWS署名文字列を含む連結文字列で、JWSのコンパクトな逐次化表現を返します。 署名 public Object clone() 戻り値 型:JWS 署名 public String getCompactSerialization() 戻り値 型:String SalesforceのJWSについての説明は以上です。ぜひ参考にしてみてください。

SalesforceのJWSを理解して活用しよう

今回は、SalesforceのJWS(JSON Web Signature)について紹介していきました。 JWSはJWTのペイロードを転送するためのものなので、ペイロードに署名するHMACやデジタル署名などの方法とネットワークを介して転送するコンテンツをシリアライズする方法を定義しています。 また、電子署名がされているので、メッセージに記載されている内容が正しく送られているかどうか簡単に検証できるようになっているのも便利であるといえます。 JWTと同じものと言われることもありますが、厳密には違うのでこの機会にぜひ覚えて活用してみてください。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】