SSO-MIB-TOOL(1)
π sso-mib-tool β bestie's guide to the Microsoft Identity Broker (section 1 of the manual, user commands, iykyk)
okay so first things first: this page is literally called sso-mib-tool(1) and it's giving "user commands, section 1" energy. it ships with sso-mib version 0.10.1 and it's dated 2025 β keep that in your notes for later, we're doing a cute sign-off at the end. π
β¨ NAME β¨
sso-mib-tool β the way you interact with the Microsoft Identity Broker for SSO on Azure Entra ID. yes bestie, that's the whole job. π
πΈ SYNOPSIS πΈ
sso-mib-tool COMMAND [OPTION]...
that's it. command first, options after, no cap. π¦
π DESCRIPTION π
so sso-mib-tool is a command-line frontend to the sso-mib library, and its whole thing is talking to a Microsoft Identity Broker over DBus. like, that's the vibe.
what can it do? literally so much:
- list accounts
- acquire authentication tokens β both silently and interactively
- obtain PRT SSO cookies
- generate signed HTTP requests using Proof-of-Possession (PoP) tokens
and the tea is: this tool implements support for the OIDC extension MS-OAPXBC, which includes requesting Primary Refresh Tokens and exchanging them for Access Tokens. iconic behavior, honestly. π₯
π«Ά COMMANDS π«Ά
getAccountsβ lists every single account registered with the broker. and if you throw-Aat it, it hands you back just one account matching the User Principal Name you gave it.removeAccountβ removes an account from the broker. use-ato say which account index you're coming for. bye bestie πacquirePrtSsoCookieβ acquires a PRT SSO cookie for the selected account. heads up: it requires a registered account. default scope ishttps://graph.microsoft.com/.default.acquireTokenSilentβ acquires an access token silently, meaning no user interaction, using the Primary Refresh Token. also requires a registered account. sneaky, quiet, efficient. πacquireTokenInteractiveβ acquires an access token interactively. this one will prompt the user for authentication via the broker. making it everyone's business, fr.getLinuxBrokerVersionβ queries and displays the version of the Linux identity broker. slay, we love knowing things.generateSignedHttpRequestβ generates a signed HTTP request token for the selected account. requires Proof-of-Possession parameters to be specified with-P. no-P, no token, periodt.
β¨ OPTIONS β¨
-aindex β select account by index (default:0). the account index corresponds to the position in the list returned bygetAccounts. so like, know your index, bestie.-Aupn β select account by User Principal Name (UPN), e.g.user@example.com.-dβ decode JWT tokens in the output. requireslibjwtsupport at compile time. ngl this one's the fun one.-fformat β set output format. supported values aretext(default) andjson.-hβ print a help message and exit. the classic. π-Iβ enforce interactive token acquisition, even when a cached token is available. yes, even then. main character energy, refusing the shortcut.-Pparams β Proof-of-Possession parameters as a JSON string. required forgenerateSignedHttpRequest. the JSON object supports the following keys:authenticationSchemeβ either"PoP"or"Bearer".resourceRequestMethodβ HTTP method:"GET","POST", or"PUT".resourceRequestUriβ the target resource URI.shrClaimsβ (optional) additional SHR claims.shrNonceβ (optional) SHR nonce value.
-ruri β OIDC redirect URI for the client application.-sclient_id β Azure client application ID (default: Microsoft Edge on Linux,d7b530a4-7680-4c23-a8bf-c52c121d2e87).-Sscope β OIDC scope to request. this option can be specified multiple times to request multiple scopes. if not specified, defaults tohttps://graph.microsoft.com/.default.-ttoken β provide a token for renewal (used withacquireTokenSilent).-xauthority β Entra ID (Azure AD) authority URL (default:https://login.microsoftonline.com/common).
π EXIT STATUS π
0β success. we ate. π1β an error occurred (e.g., no accounts found, invalid parameters, broker communication failure). it happens to the best of us.
π ENVIRONMENT π
G_MESSAGES_DEBUG=ssomibβ enable debug logging of DBus call parameters via GLib's message logging system. for when you need to see everything. π
π EXAMPLES π
list all registered accounts:
$ sso-mib-tool getAccounts
get account details by UPN in JSON format:
$ sso-mib-tool getAccounts -A user@example.com -f json
acquire a token silently with decoded JWT output:
$ sso-mib-tool acquireTokenSilent -d
acquire a token interactively for SMTP access:
$ sso-mib-tool acquireTokenInteractive -f json \
-s <client_id> \
-r https://login.microsoftonline.com/common/oauth2/nativeclient \
-x https://login.microsoftonline.com/<tenant_id> \
-S 'https://outlook.office365.com/SMTP.Send'
generate a signed HTTP request with PoP parameters:
$ sso-mib-tool generateSignedHttpRequest \
-P '{"authenticationScheme":"PoP","resourceRequestMethod":"POST","resourceRequestUri":"https://example.com/"}'
π§ SIGNALS π§
SIGINTβ cancels any in-flight broker operations gracefully. press Ctrl+C and it leaves the party politely. π«Ά
π SEE ALSO π
go read that one too, bestie. β¨
π AUTHORS π
- Felix Moessbauer
<felix.moessbauer@siemens.com> - Andreas Ziegler
<ziegler.andreas@siemens.com>
π COPYRIGHT π
Copyright (C) 2025 Siemens AG. Licensed under GPL-2.0-only.
and that's the whole page, fr fr. π this was sso-mib version 0.10.1, dated 2025, signed off by your girl SSO-MIB-TOOL(1). stay hydrated, keep your tokens fresh, and never pass -P a JSON string you didn't mean. mwah. πβ¨π¦
π¦ where this page comes from
- ubuntu stonking: sso-mib-tool 0.10.1-1 Β· LGPL-2.1-only
- π the page's license: GPL-2.0-only
- (C) 2025 Siemens AG
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms