Wie benutze ich GSS_IMPORT_NAME richtig?
Frage
Ich verwende GSS_IMPORT_NAME auf der Client-Seite mit GSS_C_NT_HOSTBASED_SERVICE, um einen Auftraggeber wie Service/Server-Host@realm zu erhalten.
Ich rufe so an,
GSS_IMPORT_NAME (Status, "Service", GSS_C_HOSTBASED_SERVICE, output_name);
Aber ich bekomme den Schulleiter wie, Service/Lokal-Maschine@realm. Aus der Mannseite habe ich gelernt, dass es intern kRB5_Sname_to_principal verwendet wird, um den Hostnamen zu erhalten, wenn NULL den Lokalhost -Namen nimmt. Meine Frage ist nun, wie übergeben Sie den richtigen Hostnamen (Server-Host) an GSS-API, um den Auftraggeber zu erstellen.
Lösung
Ich habe es übersehen. Um den Auftraggeber im Formular "Service/Server-Host@realm" zu erhalten, sollte ich anrufen
GSS_IMPORT_NAME (Status, "service@server-host", gss_c_hostbased_service, output_name);
Anstatt von
GSS_IMPORT_NAME (Status, "Service", GSS_C_HOSTBASED_SERVICE, output_name);
Wenn der Hostname fehlt, wird davon ausgegangen, dass er der lokale Hostname ist.