Link the Entra ids on a PC to the Azure portal
All checks were successful
CI / naming (push) Successful in 4s
CI / frontend (push) Successful in 12s
CI / migrations-mysql (push) Successful in 41s
CI / backend (push) Successful in 4m23s

The Entra Device Info card showed two GUIDs and nothing to do with them.
Copying one into the portal by hand is the kind of errand a detail page exists
to remove.

Each link sits BESIDE the id it is built from rather than in a row at the top
of the card, because the pairing is counterintuitive: the DEVICE id opens
Intune and the OBJECT id opens Entra. A separate action row would have to
re-label which is which, and would still leave the reader matching them up.

BOTH URLS ARE SETTINGS WITH AN EMPTY DEFAULT, and that is the whole design.
The host is a tenant fact, not a product one - this site is on the US
Government cloud, portal.azure.us, where a commercial-cloud default would send
people to a page that does not exist. Microsoft also moves these blade paths,
and a site that hits that can fix it by editing a setting rather than waiting
for a release. Empty means no link and the id still renders as text, so a site
that configures nothing is unchanged. The example values live in each
setting's description, per cloud.

Same shape as the ServiceNow URL templates already in integrations, down to
the {token} placeholder, so there is one idiom for "deep link into a system we
do not own" rather than two.

Scope: product
This commit is contained in:
cproudlock
2026-08-31 16:23:58 -04:00
parent 259fe0de8f
commit 1bf4efa9e1
3 changed files with 104 additions and 2 deletions

View File

@@ -1085,6 +1085,35 @@ def build_default_settings():
'category': 'integrations',
'description': 'ServiceNow global-search URL template. {ticket} is the ticket number.'
},
{
# ADR-015-OK: the DEFAULT is empty, so no cloud is assumed. Which
# Azure portal a site uses is a tenant fact, not a product one -
# this site is on the US Government cloud (portal.azure.us), and a
# commercial-cloud default would be silently wrong for it. The link
# simply does not render until a site fills these in.
'key': 'entra_device_url',
'value': '',
'valuetype': 'string',
'category': 'integrations',
'description': (
'Entra device properties URL template. {objectid} is the '
'device object id. Example (US Gov): https://portal.azure.us/'
'?feature.msaljs=false#view/Microsoft_AAD_Devices/'
'DeviceDetailsMenuBlade/~/Properties/objectId/{objectid}/deviceId/'
)
},
{
'key': 'intune_device_url',
'value': '',
'valuetype': 'string',
'category': 'integrations',
'description': (
'Intune device URL template. {deviceid} is the Entra device '
'id. Example (US Gov): https://portal.azure.us/'
'?feature.msaljs=false#view/Microsoft_Intune_Devices/'
'DeviceSettingsMenuBlade/~/overview/aadDeviceId/{deviceid}'
)
},
{
'key': 'servicenow_ticket_prefixes',
'value': 'GEINC,GECHG,GERIT,GESCT',