提供: Bright Pattern Documentation
• 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 '{"結果":"失敗"}'}