and verified based on a proprietary spec • Hard to maintain and extend ◦ E.g. apply security best practices • Long expiration and ultimate permission • Issued and verified by legacy monolith service. ◦ This service is shared and any developer can make changes to it
/ OIDC based spec • Wide adopted specs make it easier to maintain and handle extra requirements • More control on expiration and permission setting • Completely owned by IDP team
Also considered for native app but postponed 2021 Migrated access token for native app 2023 2018 Started developing authorization server Initial purpose is for 3rd parties authorization
Solutions for various request patterns • Specifications ◦ OAuth 2.0 for Native Apps ◦ OpenID Connect Native SSO for Mobile Apps 1.0 ◦ OAuth 2.0 Token Exchange ◦ Implementing App-to-App Authorisation in OAuth2/OpenID Connect ◦ OAuth 2.0 Security Best Current Practice ◦ …
without re-login Migration stories Support webview with better token management Authentication session should be alive if users keep using the app 02 03 01
token ◦ Directly exchanging old token to new token is one option • Already logged in users are able to do SSO to other apps/webs ◦ Need to create and store auth session to browser in Mercari app beforehand • Asking users to re-login inside in-app browser is not acceptable ◦ Users are already logged into native side ◦ Need to inherit the auth session
browser, so open every web page by external browser is basically feasible • But using webview is still preferred in some cases ◦ Better UI/UX (e.g. customizable header/footer) ◦ Easier for information sharing between native and web
use the app for a period of time ◦ Can be controlled by refresh token and authentication session expiry ◦ Those expiry can’t be very long • But if users keep using the app, the authentication should be kept alive ◦ Be able to do SSO to other webs/apps ◦ Authentication session needs to be extended Requirements
app has been migrated to new one in recent app versions • For iOS, final milestone was released. ◦ You can try Sign in with Passkeys! • Android final milestone will be released soon.
that prevented by old spec • The token issuing and verification is independent from an old monolith • Token expiration and permission were set more properly • Authentication sessions is shared, reduced the number of re-login failed error • Easier to improve or extend authentication feature