Configure an ID.me application in the developer portal with the Attribute Exchange policy for the specific group type (military, veteran, first responder, student, or low-income); each group type requires a separate policy scope.
Initiate the OIDC flow with scope openid and the specific community scope (e.g., military, veteran); the user completes group verification on ID.me's hosted interface.
On callback, exchange the authorization code for tokens; call the userinfo endpoint with the access token to retrieve the group claim, which returns the verified affiliation and the verification method used.
Map the group attribute to your benefit eligibility logic: a truthy group claim confirms the user belongs to the asserted community; a missing or false claim indicates verification was not completed or group membership was not established.
Cache the group verification result with an expiry aligned to ID.me's verification validity period (typically one year for document-based verifications); trigger re-verification on expiry rather than storing the claim indefinitely.
Handle partial verification: a user may successfully authenticate (openid scope claims present) but fail community verification (group claim absent); display a clear message that benefit access requires completed group verification.
Known gotchas
ID.me community verification and identity verification (IAL2-equivalent) are separate products with separate scopes and policies; requesting only a community scope does not guarantee that the underlying identity has been proofed to IAL2 level.
Group verification evidence types differ by community: military verification can use DMDC database lookup, .mil email, or DEERS matching, while student verification may use institutional email or NSLDS; the verification method affects the reliability of the resulting claim.
ID.me enforces rate limits on the token and userinfo endpoints; high-throughput applications should implement token caching using the refresh token rather than forcing re-authentication on every session.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp