Mobile Flows
Flow (with IDP list in web browser)
- DiGA-Appinitiates auth flow via OpenID Connect- Authorization Codeagainst azuma mimoto. This opens a web browser and displays the list of available IDPs.
- User selects an IDP and clicks on 'login', which opens the IDP-App. This is our mock application (which is configured with Deep Link: https://mimoto-gematik-mock.azuma-health.tech/idp/par)
- User clicks on 'login' in IDP-App, which opens the requested redirect url (in our example: https://mimoto-example-app.azuma-health.tech/app/ce), which in turn opens theDiGA-App
- The Deep Link UrlinDiGA-Appopens the exchange activity, which exchanges the received code via azuma mimoto for a new code, which can be used to finalize the process. The actual API uses the original received redirect url and returns a valid redirect url, as expected by AppAuth to continue the process.
- DiGA-Appuses the returned redirect url to finalize the auth flow via AppAuth by exchanging the received codes for- Access Tokenand- ID Token.
- At this point, you could exchange Access TokenandID Tokenfor your own tokens/session/....
See for more details about the exchange API.
Flow (native IDP list)
- DiGA-Appretrieves the list of available IDPs and displays them natively. See for the idp-API.
- Once the user selects the target IDP, DiGA-Appinitiates auth flow via OpenID ConnectAuthorization Codeagainst azuma mimoto for the selected IDP.
- azuma mimoto returns an URL, that needs to be opened in the platform. This opens the authenticator app of the selected IDP if installed. If not installed, the IDP landing page will be opened in the default browser.
- User clicks on 'login' in IDP-App, which opens the requested redirect url (in our example: https://mimoto-example-app.azuma-health.tech/app/ce), which in turn opens theDiGA-App(as it is aDeep Link Url(Android App Link / iOS Universal Link) for that app)
- The Deep Link Urlcontains code and state that need to be send to azuma mimoto to exchange for a new code that can be used to finalize the flow started in step 2. See for more details about the exchange API.
- Once the exchange call is completed, DiGA-Appcan finalize the flow and retrieveAccess TokenandID Token, where onlyID Tokenis currently relevant.
- At this point, you could exchange Access TokenandID Tokenfor your own tokens/session/....
Alternative Flow
If you have a full backend integration against azuma mimoto, which you can start OpenID Connect Authorization Code against, you can
- initiate the flow against your own backend
- exchange code via your own backend (which in turn exchanges with azuma mimoto)