So to complement Kuba's answer, digging in the CloudObject source code (because there's that auth dialog) you find that even they still use the BoxID system. Look at:
FileNameJoin@{ PacletFind["CloudObject"][[1]]["Location"], "Kernel", "Dialogs.m" }
where you'll find:
inptFld[dyn:Dynamic[expr_], boxid_, fldtype_, opts:OptionsPattern[]] := InputField[Dynamic[expr], fldtype, ContinuousAction -> True, System`BoxID -> boxid, ImageSize -> {Full, Automatic}, BaseStyle -> { FontFamily -> $BaseFontFamily, FontWeight -> "Regular", FontColor -> $InputTextColor, FontSize -> $InputFieldFontSize }, opts];
But apparently there is now this:
FrontEnd`MoveCursorToInputField
to be used like:
CreateDialog[ inptFld[Dynamic[a], "asd", String], NotebookDynamicExpression :> ( Refresh[ FrontEnd`MoveCursorToInputField[EvaluationNotebook[], "asd"], None] ) ]