SOAP操作におけるユーザーフィールドアクセス権限を確認する方法Summary<!-- /*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: ; } } SOAP Webサービスを使用する際、ユーザーが特定のテーブルフィールドに対して読み取り、書き込み、作成権限を持っているかどうかを確認してください。この記事では、SOAP操作におけるフィールドレベルのアクセス権限を確認するためのスクリプトを紹介します。 SOAP Webサービス呼び出しによってレコードが作成されるにもかかわらず、ペイロードに含まれているはずのフィールドが空のままになっている場合、リクエストを送信したユーザーに、それらのフィールド値を作成または更新する権限がない可能性があります。 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: ; } } サポートされているすべてのリリース Instructions<!-- /*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: ; } } 開始前 スクリプト内の以下の値を更新してください。 2行目(user_sys_id):テスト対象ユーザーのsys_idに置き換えてください。9行目(table):アクセス権限を確認したいテーブル名に置き換えてください。 スクリプトを実行 管理者ユーザーとしてログインしてください。システム定義 > スクリプト - バックグラウンドに移動してください。以下のスクリプトをコピーして貼り付けてください。 // Impersonate user var user_sys_id = "6816f79cc0a8016401c5a33be04be441"; var my_User = gs.getUserID(); var g_sesh = GlideSession.get(); g_sesh.impersonate(user_sys_id); gs.print("Impersonating "+gs.getUser().name); //Check Access var user = gs.getSession().getUser(); var table = 'change_request'; var isStrict = GlideProperties.getBoolean('glide.soap.strict_security'); var soapSecurity = new GlideSOAPSecurity(); soapSecurity.setStrictSecurity(isStrict); var gr = new GlideRecord(table); // are we allowed to see this table's fields? var fields = []; var elems = gr.getElements(); for (var i = 0; i < elems.size(); i++) { var elem = elems.get(i); var name = '' + elem.getName(); var field = {}; gs.print('Field: '+name +' canRead: '+ soapSecurity.canRead(gr, name)+' canWrite: '+soapSecurity.canWrite(gr, name)+' canCreate: '+ soapSecurity.canCreate(gr, name)); } // end impersonation g_sesh.impersonate(my_User); gs.print("End Impersonation "+gs.getUser().name); 出力例 このスクリプトは、指定されたテーブルの各フィールドについて、読み取り、書き込み、作成の権限を表示します。 Impersonation start: Fred Luddy (fred.luddy) by: System Administrator (admin) *** Script: Impersonating fred.luddy *** Script: Field: reason canRead: true canWrite: true canCreate: true *** Script: Field: parent canRead: true canWrite: true canCreate: true *** Script: Field: watch_list canRead: true canWrite: true canCreate: true *** Script: Field: upon_reject canRead: true canWrite: true canCreate: true *** Script: Field: sys_updated_on canRead: true canWrite: false canCreate: false *** Script: Field: type canRead: true canWrite: false canCreate: false *** Script: Field: approval_history canRead: true canWrite: true canCreate: true *** Script: Field: skills canRead: true canWrite: true canCreate: true *** Script: Field: test_plan canRead: true canWrite: true canCreate: true ... ... *** Script: Field: unauthorized canRead: true canWrite: true canCreate: true *** Script: Field: risk canRead: true canWrite: true canCreate: true *** Script: Field: location canRead: true canWrite: true canCreate: true *** Script: Field: category canRead: true canWrite: true canCreate: true *** Script: Field: risk_impact_analysis canRead: true canWrite: true canCreate: true Impersonation end: Fred Luddy (fred.luddy) 結果の解釈 canWrite または canCreate が false となっているフィールドの出力結果を確認してください。これらのフィールドは、テスト対象ユーザーが SOAP 操作を通じて更新または作成することはできません。 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: ; } }