証明書ベースの OAuth 認証の暗号化モジュールへのアクセス拒否エラーを解決する方法Issue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Microsoft Graph メールアカウントで証明書ベースの OAuth 認証を使用する場合のアクセス拒否エラーを解決します。OAuth アクセストークンに証明書を使用するように Graph (受信) タイプのメールアカウントを構成すると、手動トークンフェッチが想定どおりに機能します。ただし、トークンの有効期限が切れると、ベースシステムの [メールアクセストークンの更新 (Refresh Email Access Token)] スケジュール済みジョブはトークンの更新に失敗します。 注意:この問題は、インスタンスでユーザーが作成したスクリプト内で JWT が生成された場合にも発生する可能性があります。この記事ではメールアカウントのシナリオに焦点を当てていますが、解決策は他のケースにも適用される場合があります。続行する前に、モジュールアクセスポリシーが自動的に生成されていないことを確認するには、 この関連するナレッジ記事を確認してください。 Symptoms<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } メールリーダーを実行するたびに、システムログに次のエラーが表示されます。 「メッセージを処理できません:com.glide.notification.inbound.GraphEmailReaderException:アクセストークンを利用できません:「 メールアクセストークンの更新トランザクションのログには、次の情報が表示されます。 Started to generate JWTGetting JWTProvider for jwtProviderSysId = <JWT Provider sys ID configured in the script include>SEVERE *** ERROR *** Access Denied to cryptographic module 'global.com_snc_platform_security_oauth_glideencrypter'For guidance on this issue, please have your Security Admin refer to KB: https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB1112530WARNING *** WARNING *** Access denied to crypto moduleWARNING *** WARNING *** string may not be encrypted: Input length must be multiple of 8 when decrypting with padded cipherSEVERE *** ERROR *** Error while generating JWT token.Cannot recover keySEVERE *** ERROR *** *** Script: JWT Token is not valid. Please make sure standard claims are valid.OUTBOUND_HTTP: protocol=HTTP/1.1 response_status=401 response_time=335 request_length=142 response_length=623 app_scope=global session_id=glide.scheduler.worker.6 transaction_name="Refresh Email Access Token - system" transaction_id=<transaction_id> user_name=<the run as user> mid_server= source_table=sysauto_script source_record=<sysauto_script sys ID> system_id=<FQDN of the app node> method=POST log_level=All scheme=https hostname=login.microsoftonline.com path=/<tenant ID>/oauth2/v2.0/tokenOAuthProblemException{error='invalid_client', description='AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app '<app ID>'. ...WARNING *** WARNING *** failed to get access token from remote oauth server.*** Script: OAuth authentication failed for <JWT Provider sys ID configured in the script include> Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } サポートされているすべてのリリース Cause<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } スクリプトはキー管理フレームワーク (KMF) モジュールへのアクセスを拒否されます。通常、スクリプトインクルードとアプリケーションは事前設定されたモジュールアクセスポリシー (MAP) とともにインストールされます。または、暗号化または復号化が試行されると MAP が自動的に生成されます。 このシナリオでは、MAP は自動的に生成されませんでした。発信者の詳細 MAP (メールアクセストークンのリフレッシュスケジュール済みスクリプト実行 [sysauto_script] レコード) を手動で作成する必要があります。 Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 重要:このモジュールアクセスポリシーの作成はセキュリティ上の判断です。実装する前に、その影響とセキュリティへの影響を理解してください。 マップを作成するには: sys_kmf_crypto_caller_policyテーブルに移動します。新しい MAP を作成するには、 新規を選択します。Type を Script に設定します。スクリプトテーブル を スケジュール済みスクリプト実行 [sysauto_script] に設定します。ターゲットスクリプトの横にあるルックアップアイコンを選択し、メールアクセストークンの更新レコードを選択します。アクティブ true に設定し、結果 追跡に設定します。[保存] を選択します。 これから [メールアクセストークンの更新] ジョブを実行すると、JWT が正常に生成され、Graph API からのトークンを使用して 200 の応答が返されるはずです。 注意:GraphCertificateOAuthTemplate を複製して作成されたスクリプトインクルードに対して、より具体的な MAP を作成するだけでは不十分です。呼び出し元スクリプトの MAP が作成されるまで、アクセスは引き続き拒否されます。 Related Links<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Microsoft Azure による認証に証明書を使用するための OAuth プロファイルの設定 Password2 復号化のキー管理フレームワークのアクセス拒否エラーを解決する方法