提供: Bright Pattern Documentation
• 日本語

Revision as of 02:45, 23 September 2026 by BpTranslationReview (talk | contribs) (Reviewed via BpTranslationReview)

< 前へ | 次へ >
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
移動先: 案内、 検索
• English

パスワードリセット機能の使用

外部検証スクリプトの仕様

概要

パスワードリセットモジュールには、管理者が定義したスクリプトをサポートする機能が含まれており、これによりセキュリティをさらに強化することができます。APIサービスが受信したJSON本文の内容はSTDINに渡され、その結果はSTDOUTからサービスによって読み取られます。 このようにして、検証スクリプトはユーザー固有の情報を受け取り、別のデータソースからの結果と比較することができます。これにより、新しいパスワードを受け取るユーザーを正確に識別した、信頼できるソースからAPIサービスが使用されていることが保証されます。

例

以下は、パスワードリセット時に ServiceNow ユーザーを検証する PowerShell スクリプトです。このシナリオでは、ユーザーが検証され、その電話番号と社員番号がリクエストの JSON ボディを介して外部検証ツールに渡されます。値が ServiceNow への外部チェックと適合する場合、スクリプトは成功を返します。 具体的には、フィールド名と結果名が設定ツールで指定された値と適合する、有効な JSON 文字列を渡します。この例では、それらはそれぞれ「result」と「ok」です(つまり、その他の場合はすべて「失敗」とみなされます)。

$user = "sn_user"

$pass = "sn_password"

$table = "sys_user"

$instance = "https://instance.service-now.com"


$input_obj = $input | ConvertTo-Json

$username = $input_obj.request.user

$emp_num = $input_obj.emp_num

$phone = $input_obj.phone


$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $ユーザー, $pass)))

$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"

$headers.追加('Authorization',('Basic {0}' -f $base64AuthInfo))

$headers.追加('Accept','application/json')


$uri = $instance + "/api/now/table/" + $table + "?sysparm_query=ユーザー名=" + $username

$method = "GET"


$response = Invoke-WebRequest -Headers $headers -Method $method -Uri $uri -ContentType "application/json"


$result = ConvertFrom-Json -InputObject $response.content

if($emp_num -eq $result.result[0].employee_number -And $phone -eq $result.result[0].電話){ Write-Host '{"結果":"ok"}'}

else {Write-Host '{"結果":"失敗"}'}
< 前へ | 次へ >