JWT 認証

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  埋め込まれた Web ページソリューション > 認証 >

JWT 認証

埋め込まれた Web ページソリューションの認証は、 JSON Web Tokens (JWT、奨励される発音: 「jot」) を使用して行うこともできます。 基本的には、 JWT 認証は、 MobileTogether Server 認証システム外で処理されます。 認証されたユーザーは、 MobileTogether Server の Web ページにパスされる JWT と共に発行されます。また、ユーザーを検索するために解析され、 JWT が有効な場合、 JWT 内でユーザーのために指定されている埋め込まれたソリューションとサーバー間の通信が実行されます。

 

下の図は、JWT 認証の仕組みを示しています。

Click to expand/collapse

 

以下の点に注意してください:

 

認証サーバーとアプリケーション (www) サーバーを分ける必要はありません。
埋め込まれた Web ページソリューションと認証システムが使用されるシナリオでは、実行者がどのように定義するかを決定することができます
(ユーザーの認証に成功し) JWT が作成されると、ユーザーを指定するパラメータが定義されます。MobileTogether Server 上で構成されるユーザーにユーザーが対応するように指定されると、このユーザーのために構成されたパーミッションによりサーバーへのアクセスが決定されます。他のユーザーは構成されたユーザーのリストに自動的にインポートされます。しかしながら、このユーザーのパーミッションは、MobileTogether Server 上で構成されます。
実行者は MobileTogether Server 設定内に、共有される秘密、または、公開キーを入力します。認証サーバー上に JWT を生成するため、実行者が使用する文字の文字列と共有する秘密は同じです。 JWT を暗号化するために使用された秘密キーに公開キーは対応します。
JWT は IFrame にパスされ、ソリューションの MobileTogether Server への最初の呼び出しと共にパスされます。
MobileTogether Server では、共有される秘密、または、MobileTogether Server 設定内の公開キーが使用され、受信された JWT を検証するために使用されます。
JWT が検証されると、埋め込まれた IFrame と MobileTogether Server のソリューションの間に認証された通信セッションがセットアップされます。
セッションのためのユーザーは、JWT 内で指定されたユーザーです。

 

JWT とは?

JSON オブジェクトを構成する JWT は要求 (JSON プロパティ–値ペア) のペアです。これは3つの部分から構成されます:

 

ヘッダー: 2つのプロパティにより構成されています: { "alg": "HS256", "typ": "JWT" }. alg は、JWT を暗号化するために使用されるアルゴリズムです。
ペイロード: 送信されるデータはここに保存され、JSON プロパティ–値ペアとしてこのデータは保管されます。
署名: ヘッダー内で指定されるアルゴリズムを使用して暗号化することにより作成されます: (i)  base64Url-encoded ヘッダー、(ii) base64Url-encoded ペイロード (iii) 秘密 (または、秘密キー):

HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret|privateKey)

 

最終の JWT は3つの部分から構成されます。それぞれは base64Url-encoded で、点により区切られています。次を参照してください: openid.netjwt.io Web サイト。

 

対称キーと非対称キー

対称キー (共有された秘密) 、または、非対称キー (秘密–公開ペアの秘密キー)を使用することにより JWT は暗号化されます。

 

対称キー:(JWT が作成されると) 同じキー が両方の暗号化、および、暗号化解除に使用されます (MobileTogether Server はキーを使用して JWT を検証します)。共有される秘密として知られる対象キーは、 MobileTogether Server 内の設定として保管されています。対象キーと作業するための詳細に関しては、次を参照してください: 対称キー: 共有される秘密
非対称キー: 暗号化 (秘密キー) 、および、暗号化解除 (公開キー)のために異なるキーが使用されています。 JWT を検証できるように公開キー は、 MobileTogether Server 内の設定として保管されています。 JWT のために非対称暗号化を使用するための詳細は、次を参照してください: 非対称キー: 公開キー

 

JWT を試す

JWT を以下のように試すことができます:

 

1.ジェレミー クルツのオンライン JWT ビルダー で自身の JWT を作成します。概要に関しては次を参照してください: 対称キー: 共有される秘密
2.jwt.io  Web サイトで、以下のようにキーを検証します: (i) 暗号化されたペイン内に暗号化された JWT を入力します。 (ii) 署名の検証ペインに、 JWT を作成する際に使用した秘密を入力します。 Web サイトのデバッガーは署名が検証されたことを通知します。

 

サンプル JWT 認証 も参照してください。

 

 


(C) 2019 Altova GmbH