着信コールの 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 abcd1234 -keypass abcd1234 ファイル名:snclient.keystore ストア ID – abcd1234キーパス – ABCD1234 キーストアパスワードを使用して、その証明書をインスタンスにインポートします。 キーストアからの証明書のエクスポート keytool -exportcert -alias snclient -keystore snclient.keystore -storepass abcd1234 -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(発行者)、サブ (件名)) が表示されます。これらの詳細については、こちらをご覧ください。 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 はここに自動入力されます。後で使用するためにこれをコピーしてください。 共有キーの下に、この証明書の作成に使用した共有コードを入力するだけです。 ステップ 3 で指定された要求値で JWT プロバイダーを更新します aud:作成されたアプリレジストリレコードのクライアント ID。 iss:作成されたアプリレジストリレコードのクライアント ID。 sub:使用するユーザーのメール ID。 次に、JWT キーモジュールに移動し、 ステップ 2 で前に作成したキーを開き、JWT マップで自動入力された子で 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 コールを送信します。 <your-instancename>/oauth_token.do 認証:なし 本文 本文:x-www-form-urlencoded client_id:アプリのクライアント ID client_secret:アプリのクライアントシークレット grant_type:urn:ietf:params:oauth:grant-type:jwt-bearer アサーション: <your jwt token value> サンプル応答: { "access_token": "wjphK8iz6_ixmYUY358QdklkIm9Ps2Nq1t1NG9CqtKMNZvWwDEAIUD5Rc8hvZZXlWXPU9IHRFIe_VCfeh_hSuQ", "scope": "useraccount", "token_type": "Bearer", "expires_in": 1799 } 同じ Manage トークンを確認できるようになりました