OAuth JWT ベアラー権限許可タイプ 統合セットアップIssue JWT (JSON Web トークン) 権限許可タイプ は、ユーザーの介入を必要とせずに、ServiceNow と外部 API プロバイダーの間でサーバー API のやり取りを行う機能を提供します。 手順 システム証明書に jwt 署名キーがある jks をアップロードします。署名キー (秘密鍵と公開鍵のペア) を持つ Java キーストアは、お客様によって生成されます。 ターミナルで次のコマンドを使用して、自己署名証明書を持つ Java キーストアを生成します。keytool -genkey -alias snclient -keyalg RSA -validity 365 -keystore jwtdemo.keystore -storepass jwtdemo -keypass jwtdemo JWT 署名キーを作成し、対応する署名 jks を割り当てます必要な 要求 を使用して jwt プロバイダー を作成し、jwt 署名キーをアサインします。API の必須要求については、ベンダーに確認することをお勧めします。アプリケーションレジストリで サードパーティの OAuth プロバイダーを作成します。ServiceNow で JWT プロバイダーと署名キーを構成します。oauth エンティティプロファイル レコードを開き、jwt プロバイダーを割り当てます。Test oAuth Provider via Scripts Background var tokenRequest = new sn_auth.GlideOAuthClientRequest();tokenRequest.setGrantType("urn:ietf:params:oauth:grant-type:jwt-bearer");tokenRequest.setRequestor("someone@someemail.com");var oAuthClient = new sn_auth.GlideOAuthClient();var tokenResponse = oAuthClient.requestTokenByRequest("box_demo", tokenRequest);gs.info("Error:" + tokenResponse.getErrorMessage());var token = tokenResponse.getToken(); dumpToken(token);function dumpToken(token) { if(token) { gs.info("AccessToken:" + token.getAccessToken()); gs.info("AccessTokenExpiresIn:" + token.getExpiresIn()); }} 出力: Getting JWTProvider for jwtProviderSysId = e4967691dbf92300980c90b6db96190dAuth com.snc.platform.security.oauth.jwt.JWTProvider@1219a82Auth Cache miss, got jwtProvider from GlideRecord and put in cacheGetting JWTProviderConfig for jwtProviderId = e4967691dbf92300980c90b6db96190dAuth Cache hit. Getting JWTProviderConfiguration from cacheStarted to generate JWTAuthAdding payload claims to jwt with name = box_sub_type and value = enterpriseAuthAdding payload claims to jwt with name = aud and value = https://api.box.com/oauth2/tokenAuthAdding payload claims to jwt with name = sub and value = 120961449AuthAdding payload claims to jwt with name = iss and value = o9xqbay28g97deumamwz2s0tvtsfrusbAuthAdding claims to jwt. Header Claims = [], keyId = , issuedAt = Thu Nov 15 14:36:21 PST 2018, expiresAt = Thu Nov 15 14:37:21 PST 2018, issuer = o9xqbay28g97deumamwz2s0tvtsfrusb, notBefore = null, signingAlgorithms=RS256, jwtId=4370d0df-a37e-4c31-a667-308acb6ac9ceSuccessfully generated JWTOAUTH - OAuthHTTPRequest : Sending http request, url:https://api.box.com/oauth2/tokenOAUTH - OAuthHTTPRequest : Sending http request, body:grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer&assertion=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJodHRwczovL2FwaS5ib3guY29tL29hdXRoMi90b2tlbiIsInN1YiI6IjEyMDk2MTQ0OSIsImJveF9zdWJfdHlwZSI6ImVudGVycHJpc2UiLCJpc3MiOiJvOXhxYmF5MjhnOTdkZXVtYW13ejJzMHR2dHNmcnVzYiIsImV4cCI6MTU0MjMyMTQ0MSwiaWF0IjoxNTQyMzIxMzgxLCJqdGkiOiI0MzcwZDBkZi1hMzdlLTRjMzEtYTY2Ny0zMDhhY2I2YWM5Y2UifQ.G_D4Xbmiml7D2n2pmApXq04npyqhwJ2i78SJeg45k5f1fBBhw4oIjeHH5-En2lawByEuRWjopViM25zXs57E-4DnDzTkJvJnWiHG0oKQdZlcf9EcfWUS2z7tfIvSmI1m_JiepQoQQXWR9eVrwnR0y_-n_K6Qt3C1CUIpY3X7t23gyDEn1D2XVs-WDo_1GZ29YQnVxzQOmcPQafN5oQ8st7dJkv21o71elWU0-pn_34rbx_uJvc80uC-t8PZtNbvuFNYpXNFbu0AC5_QcJ5ZlQFwwO7RofiOSRi25Uq0SoJ_JsfBtlas3iBMFbmDd0i81g4C9ljEOrnF1dhn3ttdQ4A&client_secret=DRcW5sBRcuy4jDqryIoPB5BhCw7h1QzL&client_id=o9xqbay28g97deumamwz2s0tvtsfrusbSecurityUtils: Obfuscating Key : access_token and all its children!OAUTH - OAuthHTTPRequest : Received http response: {"access_token":"********","token_type":"bearer","expires_in":3899,"restricted_to":[]}*** Script: Error:null*** Script: AccessToken:1xyzIxLg8JhFroarvBVCa4XgghdbZ5Eo*** Script: AccessTokenExpiresIn:3899*** Script: RefreshToken:null ReleaseMadridRelated LinksOAuth 2.0 クライアントの認証および認可権限許可用の JSON Web トークン (JWT) プロファイル: https://tools.ietf.org/html/rfc7523oAuth2.0 JWT ベアラー権限許可フロー - JWT ベアラー権限許可フローを理解するには、以下の記事を使用してください https://help.salesforce.com/articleView?id=remoteaccess_oauth_jwt_flow.htm&type=5https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow