Come posso utilizzare lo scripting di portachiavi per scrivere uno script in Applescript che recupera il login e la password di un sito web dal portachiavi login , dato l'URL del sito web?
Come posso utilizzare lo scripting di portachiavi per scrivere uno script in Applescript che recupera il login e la password di un sito web dal portachiavi login , dato l'URL del sito web?
Se conosci il nome esatto dell'elemento portachiavi, puoi utilizzare quanto segue:
tell application "Keychain Scripting" to tell keychain "login.keychain" to get {account, password} of (first Internet key whose name is "www.google.com")
Il fatto è che lo scripting di portachiavi è lento e abbastanza buggato. Ad esempio, la ricerca di un elemento portachiavi specifico nell'esempio precedente utilizzando name contains
anziché name is
non funziona. Dovresti usare un'istruzione repeat simile a ciò che @Philip ha pubblicato:
tell application "Keychain Scripting" to tell keychain "login.keychain"
repeat with x from 1 to (count every Internet key)
if name of Internet key x contains "Google" then
return {account, password} of Internet key x
end if
end repeat
end tell
Se stai bene per usare la riga di comando e vuoi solo cercare cose, preferisco usare:
security find-internet-password -g -s www.google.com
e poi grep cosa vuoi.
Lo scripting di portachiavi è abbastanza ben suddiviso in Lion, quindi lo strumento da riga di comando di sicurezza è la soluzione migliore. In alternativa, usa l'aggiunta di script di Red Sweater, che è più veloce e più facile da script rispetto ai vecchi script Accesso Portachiavi.
Blog di maglioni rossi: keychain utilizzabile per script per Lion
Il portachiavi è esposto a Applescript tramite l'applicazione Keychain Scripting . Ci sono numerosi esempi sul web, questo è l'uso più basilare:
set theShortUserName to do shell script "/usr/bin/whoami" --get the short
userid. This is how your default keychain is labled.
tell application "Keychain Scripting"
set myKeyChain to keychain theShortUserName
set theKeyList to every Internet key of myKeyChain --email keys are
normally Internet Keys
repeat with x from 1 to (length of theKeyList)
set theKey to item x of theKeyList
if the name of theKey is "name of key here" then
set thePassword to password of theKey --grab the password
set theUserID to the account of theKey --grab the userid
end if
end repeat
end tell
Leggi altre domande sui tag keychain applescript