Dynamic fields in URL
Hello!
First of all, thank you for this product — it’s almost perfect for me. I’m currently using KeePassXC while testing the trial version of 1Password.
The Linux version works perfectly, but I need to use Windows for work. As an ABAP developer, there’s one feature I’m missing: the ability to execute SAP Logon directly from 1Password. In KeePassXC, I used a URL to run the SAP application, which dynamically inserted the username, password, and other parameters from the entry fields. With just one click, I could open any system without manually entering credentials, saving me a lot of time.
I hope I’m correct in thinking that the Windows version of 1Password supports opening URLs with custom schemes. My assumption is that the system would handle these URLs by passing them to the associated handler. This would allow me to create a protocol handler for a scheme like "sapgui://", followed by the system name and credentials. The associated executable could then decode the URL and launch SAP with the necessary parameters.
However, 1Password doesn’t currently allow me to insert dynamic parameters into the URL. Would it be possible to add this functionality to the app? Specifically, I’d like the ability to include dynamic parameters or placeholders in the URL — for example, {{ username }}. This would make it much easier to pass credentials directly into applications like SAP Logon.
Thank you!
Comments
-
Hi! The good news is that I was able to create a custom protocol handler. I entered a URL into the URL field:
sapgui:system=<system_id>&client=<client>&user=<user>&pw=<password>&
, and when I open it, it starts the SAP system. I registered a protocol handler for the "sapgui" protocol, which parses the string and then executes SAP. As you can see, the URL ends with "&". This is because 1P automatically adds its identifiers at the end of the URL, like "?bkgk...=VaTOiodd...". My parser splits the parameters at "&", so this value was automatically added to the password.It's also very important to URL encode the strings in the URL. So if your password contains special characters, you need to encode them. For example, "pass&word" should be added as
...&pw=pass%26word
.However, there's still a limitation: we can't reference a field, so I have to manually enter the username and password into the URL.
If you're interested in the protocol handler script (PowerShell), let me know, and I can upload it.
0 -
Hello @oxgl! 👋
Thank you for sharing your solution with the community! 1Password for Windows also has an auto-type feature which you mind find useful since it can fill your login credentials into other apps with you having to enter them manually:
Let me know if there's anything else that I can help you with.
-Dave
0 -
Hi @Dave_1P!
Thank you! Auto-type is another excellent feature, but I'm not using it anymore. In the browser, I'm using the 1Password extension's autofill feature, and nowadays, the only Windows application where I need to enter credentials is SAP GUI. I use the Quick Access functionality: I press the hotkey (Ctrl-Shift-Space), type in the SAP system name, press Enter, and it opens SAP with the system already logged in.
As I mentioned, I've created and registered my own custom protocol handler for the "sapgui:" scheme. The only downside is that I have to manually construct the URL in 1Password, including the (URL-encoded) username and password, and update it manually whenever the password changes. It would be a great feature if 1Password could automatically insert the (URL-encoded) username and password into the URL.
One thing I've noticed is that in Quick Access, the custom protocol works, but in the client, I can only copy the URL with this custom protocol. Could you enable the ability to open custom (non-standard HTTPS) protocol schemes directly in the client application? Or at least, please do not disable this feature in Quick Access.
Overall, I'm very satisfied with the product and have already decided to subscribe.
Keep up the good work!
oxgl
0