Therefore™ のカスタム JWT トークン |
Scroll |
JSON Web Token (JWT) は、JSON オブジェクトとして安全にユーザー間の情報転送を行うための、小型・埋め込み型を特徴とするオープン標準(RFC 7519)です。この情報は、電子的に署名されるため、検証・信頼することができます。JWT は、「シークレット」(HMAC アルゴリズムによる)を使用するか、RSA または ECDSAの公開/秘密鍵ペアを使用して署名することもできます。
JWT はユーザー間の秘匿性を提供するための暗号化が可能ですが、ここでは署名済トークンを重視します。署名済トークンは、内部に含まれる要求の整合性を検証します。一方、暗号化トークンはほかのユーザーからのこれらの要求を秘匿します。トークンが公開/秘密鍵ペアで署名されると、署名は秘密鍵を持つユーザーだけが、その署名をしたユーザーであることも証明します。
Therefore™ を顧客が提供する認証基盤に統合できるように、Therefore™ はカスタム JWT トークンの発行者の宣言をサポートしています。この機能を使って、顧客は JWT トークンを作成し、Therefore へユーザー認証用に送信できます。
Therefore™ は、HS256 および RS256 の署名済み JWT トークンをサポートしています。HS256 では、Therefore が接続の際にトークンを検証できるように、共有鍵は Therefore™ に保存する必要があります。RS256 では、トークンの署名に使われる証明書の公開鍵は、Therefore™ に .DER ファイルとしてアップロードする必要があります。
使用例: 顧客がすでに認証基盤を持っているか、Therefore™ Portal を顧客のポータルと統合したいと考えている場合。ユーザーがすでに顧客のポータルで認証されている場合は、Therefore™ で再び認証が求められるべきではありません。そのため、異なるアプリケーション間での SSO エクスペリエンスがあります。顧客のポータル アプリケーションはそのようなカスタム トークンを作成し、このトークンを、提供されたユーザー アカウントでユーザーが Therefore™ に自動的にログインするために使用します。追加のログインは必要ありません。
1.Therefore™ Designerでの設定: 以下の情報を各フィールドに入力する必要があります。
発行者 ID: Therefore™ に送信された JWT トークン内の 発行者 ID と一致している必要があります。 名前:UI(のみ)に任意の名前を付けることができます。 有効:カスタム発行者を有効または無効にします。 シークレット/証明書:共有鍵を定義するか、トークン検証用の .der ファイルをアップロードします。
2.共有シークレットのための Azure Key Vault の使用方法を設定します。
シークレットを Azure Key Vault に保存する場合は、以下のレジストリー キーを定義する必要があります。
HEKY_LOCAL_MACHINE\Software\Therefore\Server •KeyVaultAppId •KeyVaultAppSec •KeyVaultBaseUri
カスタム JWT トークン ペイロード { "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name": "Test AD", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress": "testad@therefore.net", "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname": "ADOS\\testad", "aud": "<CustomerId>", "nbf": 1547106872, "exp": 1547108072, "urn:oauth:scope": "therefore_user" "iss": https://testissuer.therefore.net }
aud = Therefore システムの顧客 ID iss = Therefore の設定と一致している必要のある発行者 ID urn:oauth:scope = トークンのスコープ - 値 "therefore_user" すべての利用者権限)または "therefore_read" (リードオンリー)
3.カスタム JWT トークンは、Web Client、Portal、API、WebAPI で Therefore™ のユーザー認証に使用できます。
Web Client の例: https://<server>/TWA/Client/Web/Viewer/Viewer.aspx?docno=349738&ssoToken=<token> https://<server>/TWA/Portal/Portal.aspx?qNo=123&ssoToken=<token>
API の例: string sToken = "<token>; string sNodeInternal, sNodeFriendly; TheServer s = new TheServer(); s.ConnectBearerToken(TheClientType.CustomApplication, sToken, "", "", "", true, TheConnectMode.NoLicenseMove, out sNodeInternal, out sNodeFriendly);
テスト ウォークスルー
1.テスト トークンはここで作成します:http://jwtbuilder.jamiekurtz.com/ 2.Therefore™ Solution Designerで、発行者を設定します。 3.トークンを、上記アクセス オプション(Web Client、Portal、API、Web API)のいずれかで使用します。
|
---|