Commit 5d30739
Handle openid-vc urls in webview, Fixes AB#3535641 (#3013)
**Context** : Total loss recovery is a feature introduced by VID team to
recover an account. This feature will be triggered from inside of a
webview when the user clicks on "Recover your account" link. After this
a 3P identity verifier will verify the user and provide a credential.
Once a credential is available, a specific redirect URI is triggered
**openid-vc://**? request_uri=https://verifier.example.com/request/123,
which will invoke wallet library in Authenticator app --- All this is
functionality not connected to broker except the fact that the URLs are
all being loaded in our webview.
**What is openid-vc** ? : The openid-vc:// scheme is part of the
OpenID4VC family of specifications, which includes:
OpenID4VCI (Verifiable Credential Issuance) — how a wallet receives
credentials from an issuer
OpenID4VP (Verifiable Presentations) — how a wallet presents credentials
to a verifier
**Problem** : When a web page loaded in the authentication WebView
navigates to an openid-vc:// URI (used by OpenID Verifiable Credentials
flows), the WebView cannot handle this non-HTTP custom scheme natively.
The navigation fails, blocking the VC issuance/presentation flow.
**Solution** : Intercept **openid-vc://** navigations in
AzureActiveDirectoryWebViewClient.handleUrl() and delegate them to the
Android system so a registered wallet app can handle the request.
Fixes
[AB#3535641](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3535641)
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>1 parent de46f30 commit 5d30739
6 files changed
Lines changed: 107 additions & 0 deletions
File tree
- common4j/src/main/com/microsoft/identity/common/java/opentelemetry
- common/src
- main/java/com/microsoft/identity/common
- adal/internal
- internal/ui/webview
- test/java/com/microsoft/identity/common/internal/ui/webview
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| |||
Lines changed: 7 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1312 | 1312 | | |
1313 | 1313 | | |
1314 | 1314 | | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
1315 | 1322 | | |
1316 | 1323 | | |
1317 | 1324 | | |
| |||
Lines changed: 53 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
338 | 338 | | |
339 | 339 | | |
340 | 340 | | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
341 | 345 | | |
342 | 346 | | |
343 | 347 | | |
| |||
496 | 500 | | |
497 | 501 | | |
498 | 502 | | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
499 | 515 | | |
500 | 516 | | |
501 | 517 | | |
| |||
901 | 917 | | |
902 | 918 | | |
903 | 919 | | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
904 | 957 | | |
905 | 958 | | |
906 | 959 | | |
| |||
Lines changed: 40 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
126 | 126 | | |
127 | 127 | | |
128 | 128 | | |
| 129 | + | |
| 130 | + | |
129 | 131 | | |
130 | 132 | | |
131 | 133 | | |
| |||
190 | 192 | | |
191 | 193 | | |
192 | 194 | | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
193 | 233 | | |
194 | 234 | | |
195 | 235 | | |
| |||
Lines changed: 5 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
607 | 607 | | |
608 | 608 | | |
609 | 609 | | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
610 | 615 | | |
611 | 616 | | |
612 | 617 | | |
| |||
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| 74 | + | |
74 | 75 | | |
75 | 76 | | |
76 | 77 | | |
| |||
0 commit comments