You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore: sync II spec to dfinity/internet-identity release-2026-08-21
Bumps .sources/internetidentity from release-2026-08-07 (c78d1b99) to
release-2026-08-21 (4c934d1f) and reruns npm run sync:ii-spec, so the
mirrored specification carries the App metadata section this PR's guide
links to.
Regenerated content:
- docs/references/internet-identity-spec.md gains the App metadata
section and its JSON Schema, and the alternative origins limit goes
from 10 to 100 in all three places it is stated (dfinity/internet-identity#4221
and #4261). Nothing else in the 18 upstream commits touches ii-spec.mdx.
- public/references/internet-identity.did picks up IdentityInfo.mcp_config
and the reworded mcp_get_config comment. No docs page documents that
surface, so no page needed updating alongside it.
- docs/references/verifiable-credentials-spec.md is unchanged between the
two tags.
With the section now mirrored, the guide's spec link gains the
#app-metadata anchor it was missing.
Copy file name to clipboardExpand all lines: docs/guides/authentication/internet-identity.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -656,7 +656,7 @@ If the document is missing, unreachable, or invalid, sign-in is unaffected: the
656
656
This metadata is exactly as trustworthy as the origin serving it, and publishing it does not verify your app's identity in any way. II therefore keeps displaying the origin alongside whatever you provide, since the origin is the value users can actually check.
657
657
:::
658
658
659
-
For the normative rules, including a JSON schema to validate your document against, see the app metadata section of the [Internet Identity specification](../../references/internet-identity-spec.md).
659
+
For the normative rules, including a JSON schema to validate your document against, see [App metadata](../../references/internet-identity-spec.md#app-metadata) in the Internet Identity specification.
InordertoallowInternetIdentitytoreadthepath`/.well-known/ii-alternative-origins`, theCORSresponseheader [`Access-Control-Allow-Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin) must be set and allow the Internet Identity origin being used, for example `https://id.ai`, `https://identity.internetcomputer.org`, or `https://identity.ic0.app`.
"description": "A short tagline shown on the sign-in screen",
346
+
"logo": "/logo.png"
347
+
}
348
+
```
349
+
350
+
InternetIdentityfetchesthisdocumentwhentheauthorizationflowstarts, fromtheorigintheapplication's identity is derived for: the `derivationOrigin` of the authorization request once it has been validated (see [Alternative frontend origins](#alternative-frontend-origins)), and the origin the request came from otherwise. An application therefore publishes the document once, on the origin its principals and its Internet Identity accounts are bound to, and all of its alternative frontend origins — which that origin has certified as its own — present the same name, description and logo, with nothing to keep in sync between them. When the document is missing or invalid, Internet Identity falls back to the curated metadata it ships for a small list of known applications (a transitional mechanism that this document supersedes), and otherwise to displaying the origin only.
351
+
352
+
Sincethefileisunderthesolecontroloftheoriginservingit, themetadataisexactlyastrustworthyasthatoriginitself: itdoesnotcertifyorverifytheapplication's identity in any way. Internet Identity therefore always displays the origin the user is signing in from alongside this metadata, as the value users can actually verify. Ordinary `https` origins on the default port are shown as their hostname (`https://example.com` as `example.com`); an origin whose scheme or port would otherwise be hidden is shown in full (for example `https://example.com:8443`), since those components distinguish origins that derive different principals.
353
+
354
+
Whenthedocumentcomesfroma`derivationOrigin`, thedisplayedoriginisonethatoriginhasitselflistedasanalternativefrontendorigin, inacertifieddocument, anditisthatorigin's principals the user receives — so the presentation still comes from the origin the sign-in is bound to, and no origin can present itself using metadata of an origin that has not vouched for it.
-Thecharactersthatmixed-directionandnon-Latinnameslegitimatelyneedareaccepted: thebidirectionalmarksU+200E, U+200FandU+061C (zero-widthhintsthatonlyaffectwhereneutralcharacterssuchaspunctuationanddigitslandatadirectionboundary), thebidirectionalisolatesU+2066–U+2069, andthezero-widthcharactersU+200B–U+200D (line-breakopportunitiesinscriptssuchasThaiandKhmer, shapinginscriptssuchasPersian, andemojisequences). Isolatesmustbe**balanced**, however: afieldmustcloseeveryisolateitopensandclosenoneitdidnotopen, sinceanunbalancedisolatewouldextendpasttheapplication's own text and reorder what Internet Identity renders around it.
-`logo`mustbeaURL (relativeURLsareresolvedagainstthedocument's origin) pointing to a raster image _on that same origin_. It must be served with one of the content types `image/png`, `image/jpeg`, `image/webp`, `image/gif` or `image/avif`, must not exceed 1 MiB, and must decode to an image of at most 4096 pixels per axis. Internet Identity downloads the logo (it is never hotlinked), so both the metadata document and the logo asset must be readable cross-origin (see the CORS note below).
365
+
-Thelogoisnotrenderedasserved: InternetIdentitydecodesit, drawsitonceintoacanvasscaledtoatmost512pixelsonitslongestside, andrendersthatre-encodingfroma`blob:`URL. WhatisdisplayedisthereforeanimageInternetIdentityproduceditself — still (ananimatedimageisflattenedtoitsfirstframe), boundedinsize, andheldinthebrowser's blob store rather than in the page'sDOMoritsJavaScriptheap. `image/svg+xml`isnotaccepted, becauseavectorimagecannotbeputthroughthatstepacrossthebrowsersInternetIdentitysupports; applicationswithavectorlogoservearasterizedcopyofithere.
"description": "URL of the raster application logo, on the same origin as this document",
398
+
"type": "string",
399
+
"minLength": 1
400
+
}
401
+
}
402
+
}
403
+
```
404
+
405
+
:::note
406
+
InordertoallowInternetIdentitytoreadthepath`/.well-known/ii-app-metadata`aswellasthelogoassetitreferences, theCORSresponseheader [`Access-Control-Allow-Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin) must be set on both responses and allow the Internet Identity origin being used, for example `https://id.ai`, `https://identity.internetcomputer.org`, or `https://identity.ic0.app`.
0 commit comments