Microsoft身分識別平臺 UserInfo 端點 - Microsoft identity platform

分类: 365beat怎么下载 发布时间: 2025-09-01 20:49:49
作者: admin 阅读: 9885 | 点赞: 480
Microsoft身分識別平臺 UserInfo 端點 - Microsoft identity platform

作為 OpenID Connect (OIDC) 標準的一部分, UserInfo 端點 會傳回已驗證使用者的相關信息。

尋找 .well-known 組態端點

您可以在 讀取 userinfo_endpoint OpenID 組態檔的 https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration欄位,以程式設計方式找到 UserInfo 端點。 不建議在應用程式中硬式編碼 UserInfo 端點。 請改用 OIDC 組態檔,在運行時間尋找端點。

UserInfo 端點通常由 OIDC 相容的連結庫 自動呼叫,以取得使用者的相關信息。 從 OIDC 標準中識別的宣告清單中,Microsoft身分識別平臺會在可用且同意時產生名稱宣告、主體宣告和電子郵件。

請考慮改用標識碼令牌

標識元令牌中的資訊是UserInfo端點上可用資訊的超集。 因為您可以同時取得標識元令牌來呼叫 UserInfo 端點,因此建議您從令牌取得用戶的資訊,而不是呼叫 UserInfo 端點。 使用標識元令牌,而不是呼叫UserInfo端點,可消除最多兩個網路要求,以減少應用程式中的延遲。

如果您需要更多有關使用者的詳細數據,例如管理員或職稱,請呼叫 Microsoft Graph /user API。 您也可以使用 選擇性宣告 ,在您的標識碼和存取令牌中包含其他用戶資訊。

呼叫使用者資訊端點

UserInfo 是由 Microsoft Graph 所裝載的標準 OAuth 持有人令牌 API。 呼叫 UserInfo 端點,因為您會使用應用程式在要求存取 Microsoft Graph 時收到的存取令牌,呼叫任何 Microsoft Graph API。 UserInfo 端點會傳回 JSON 回應,其中包含有關使用者的宣告。

權限

使用下列 OIDC 許可權 來呼叫 UserInfo API。 宣告 openid 是必要的,且 profile 和 email 範圍可確保回應中會提供其他資訊。

許可權類型

權限

已委派 (工作或學校帳戶)

openid(必要),, profileemail

已委派(個人 Microsoft 帳戶)

openid(必要),, profileemail

應用程式

不適用

小提示

在瀏覽器中複製此 URL,以取得 UserInfo 端點和 識別元令牌的存取令牌。 將用戶端識別碼和重新導向 URI 取代為來自應用程式註冊的值。

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=&response_type=token+id_token&redirect_uri=&scope=user.read+openid+profile+email&response_mode=fragment&state=12345&nonce=678910

您可以使用下一節查詢中傳回的存取令牌。

Microsoft Graph 會使用特殊的令牌發行模式,可能會影響應用程式讀取或驗證它的能力。 如同任何其他Microsoft Graph 令牌,您在這裡收到的令牌可能不是 JWT,而且您的應用程式應該將其視為不透明。 如果您登入Microsoft帳戶使用者,則會是加密的令牌格式。 不過,這些因素都不會影響您的應用程式在對UserInfo端點的要求中使用存取令牌的能力。

呼叫 API

UserInfo API 同時支援 GET 和 POST 要求。

GET or POST /oidc/userinfo HTTP/1.1

Host: graph.microsoft.com

Authorization: Bearer eyJ0eXAiOiJKV1QiLCJub25jZSI6Il…

UserInfo 回應

{

"sub": "OLu859SGc2Sr9ZsqbkG-QbeLgJlb41KcdiPoLYNpSFA",

"name": "Mikah Ollenburg", // all names require the “profile” scope.

"family_name": " Ollenburg",

"given_name": "Mikah",

"picture": "https://graph.microsoft.com/v1.0/me/photo/$value",

"email": "mikoll@contoso.com" // requires the “email” scope.

}

回應中顯示的宣告都是 UserInfo 端點可以傳回的宣告。 這些值與 標識元令牌中包含的值相同。

UserInfo 端點上的注意事項和注意事項

您無法新增或自訂 UserInfo 端點所傳回的資訊。

若要在驗證和授權期間自定義身分識別平台傳回的資訊,請使用 宣告對應 和 選擇性宣告 來修改安全性令牌組態。

後續步驟

檢閱標識碼令牌的內容。

使用選擇性宣告自定義標識碼令牌的內容。

使用 OAuth 2 通訊協定要求存取令牌和標識碼令牌。