Sie könnten ein Authentifizierungsschema für öffentliche Schlüssel verwenden.
Erstellen Sie ein Schlüsselpaar mit einem öffentlichen und privaten Schlüssel (mit Javas Keytool, GNU GPG oder einem ähnlichen Tool). Verwenden Sie den privaten Schlüssel, um eine Information (z. B. einen Benutzernamen) auf Anwendung A zu signieren, und erstellen Sie eine Verknüpfung zu Anwendung B, auf die von Anwendung A aus zugegriffen werden kann und die signierten Daten enthält. Anwendung B kann dann den Benutzer anmelden, nachdem er mit dem öffentlichen Schlüssel verifiziert hat, dass die Anforderung tatsächlich von Anwendung A kam (die sie haben muss, wenn sie in der Lage ist, die Zeichenfolge zu entschlüsseln).
Sie können natürlich auch ein entgegengesetztes Schlüsselpaar erstellen, um auch andersherum zu navigieren, oder Sie können einfach den öffentlichen Schlüssel verwenden und ihn geheim halten (wodurch er zu einem Shared-Secret-System wird).
Wenn der Benutzer versucht, direkt auf Anwendung B zuzugreifen, können Sie ihn auch zur Anwendung A mit einem Parameter umleiten, der besagt, dass er aus Anwendung B stammt (oder eine Referrer-Prüfung durchführt). Wenn er bereits bei Anwendung A angemeldet ist, erstellen Sie den Link mit den signierten Daten und leiten Sie ihn weiter, andernfalls zeigen Sie ihm einen Anmeldebildschirm und leiten ihn nach der Anmeldung um.
Hoffe, dass hilft!