着信コールの JWT トークンを取得するための実用ガイドSummary<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } この KB では、JWT トークンを使用して着信コールのインスタンスを設定する方法を示します。 Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Rome 以降 Instructions<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 外部クライアント用の OAuth JWT API エンドポイントを使用してアプリケーションレジストリを作成するには、大きく分けて 4 つのステップがあります。 Java キーストアを作成してインスタンスにアップロードJWT 署名キーの構成JWT 署名キーを使用した JWT プロバイダーの作成OAuth プロバイダーに接続し、OAUTH アプリレジストリを作成 ステップ 1:Java キーストアを作成してインスタンスにアップロード 次の keytool コマンドを使用して JKS ファイルを作成します。 keytool -genkey -alias snclient -keyalg RSA -validity 365 -keystore snclient.keystore -storepass 1234 -keypass 1234 -keypass 1234 ファイル名:snclient.keystore ストア ID – abcd1234キーパス - ABCD1234 キーストアパスワードを使用して、その証明書をインスタンスにインポートします。 キーストアから証明書をエクスポートする keytool -exportcert -alias snclient -keystore snclient.keystore -storepass -file1234 -file snclient.cer 同じフォルダーに snclient.cer という名前の cer ファイルが作成されます。 PEM 形式の場合は、次を使用できます。 openssl x509 -inform der -in snclient.cer -out certificate.pem certificate.pem を使用して、インスタンスに新しいレコードを作成します。 ステップ -2:JWT 署名キーを構成 次に、[システム OAUTH] の下の [JWT キー] に移動し、新しいレコードを作成して、次のように作成した同じキーストアレコードを使用します。 注意:署名キーストア には、選択したキーストア形式 (Java KeyStore または BCFKS KeyStore) でサポートされている証明書タイプのみが表示されます。 今のところ、キー ID を無視し、キー ID なしでレコードを作成できます。これについてはすぐに説明します。 ステップ -3:JWT 署名キーを使用して JWT プロバイダーを作成 次に、JWT プロバイダーに移動し、上記のレコードをプロバイダーの署名構成として使用してレコードを作成します。以下の画像を参照してください。 このレコードを作成すると、作成された上記の3つの標準的な請求、つまりaud(対象者)、iss(発行者)、sub(件名)が表示されます。これらの詳細については、こちらをご覧ください。 https://jwt.io/introduction https://auth0.com/docs/secure/tokens/json-web-tokens/json-web-token-claims 現時点では、要求値は空のままにします。これについては次のステップで説明します。 ステップ -4:OAuth プロバイダーに接続し、OAUTH アプリレジストリを作成 次に、OAUTH> アプリケーションレジストリで、「外部クライアント用の OAuth JWT API エンドポイントの作成」タイプの新しいアプリレジストリを作成します。 注:必ず [ユーザー] フィールドに入力してください (デフォルトではメールになります)。これは、プラットフォームがここで定義したフィールドを使用してユーザーを認識するため重要です。 [JWT 検証者マップ] の下の関連リストで、次の操作を行います。 [システム証明書] 列で PEM 証明書を選択して JWT 検証者マップを作成します。kid はここに自動入力されることに注意してください。これをコピーしてさらに使用します。 次に、共有キーの下に、この証明書の作成に使用したsharediッドを入力します。 ステップ 3 で指定された要求値で JWT プロバイダーを更新します。 aud:作成されたアプリレジストリレコードの clientId iss:作成したアプリレジストリレコードの ClientId sub:使用するユーザーのメール ID 次に、JWT キーモジュールに移動し、前に ステップ 2 で作成したキーを開き、JWT マップで自動入力された kid で kID を更新します。 これでセットアップが完了したら、JWT トークンの作成に進み、それを使用してアクセストークンをさらに生成します。 var jwtAPI = new sn_auth.GlideJWTAPI();var headerJSON = { "kid": "<ID generated in step-4>" };var header = JSON.stringify(headerJSON); var payloadJSON = { "aud": "{cleint-id}", "iss": "{client-id}", "sub": "{email of the user for which the token needs to be assocaited to}" };var payload = JSON.stringify(payloadJSON); var jwtProviderSysId = " <sys id of the JWT provider record>";var jwt = jwtAPI.generateJWT(jwtProviderSysId, header, payload); gs.info("JWT:" + jwt); 結果の例: スクリプトから生成された JWT トークンをコピーします。 ここで JWT トークンを確認してください。 https://jwt.io/署名が有効で検証されたら、次の手順に進みます。注意:singnatureを検証するには、ステップ1のcertificate.pemファイル内の値を使用する必要があります。 POSTMAN を使用したトークンのテスト: 次の URL に POST コールを送信します。 /oauth_token.do 認証:なし 本文 本文内:x-www-form-urlencoded client_id:アプリのクライアント ID client_secret:アプリのクライアントシークレット grant_type:urn:ietf:params:oauth:grant-type:jwt-bearer アサーション: 応答例: { "access_token": "wjphK8iz6_ixmYUY358QdklkIm9Ps2Nq1t1NG9CqtKMNZvWwDEAIUD5Rc8hvZZXlWXPU9IHRFIe_VCfeh_hSuQ", "scope": "useraccount", "token_type": "Bearer", "expires_in": 1799 } これで、同じトークンの管理を確認できるようになりました