MSAL - userIdentifier 与 idToken.oid
MSAL - userIdentifier versus idToken.oid
我正在使用 MSAL 针对 Microsoft Azure AD 验证用户并获得有效令牌。
MSAL 库返回给我一个 User
对象,其中包含一个名为 userIdentifier
的 属性。
这是字符串,不是 GUID。
文档说使用一个名为 oid
的字段来唯一标识 Microsoft Identity 平台上的用户。我在 User.idToken.oid
.
下有这个 属性
如文档所述,该值是一个 GUID。
我的问题是,这是什么 User.userIdentifier
我应该使用它吗?我需要知道在数据库端存储什么以将此本地用户绑定到 Azure AD 用户。
查看源代码(https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-core/src/Account.ts),没有userIdentifier,但是有accountIdentifier。
可能是您的版本较旧,在这种情况下,这可能不正确。
// create accountIdentifier
const accountIdentifier: string = idToken.objectId || idToken.subject;
它是 oid 或 sub 声明,取其值。
如果你想要 oid,你应该从 Account 的 idTokenClaims 属性 中获取它。
为清楚起见,建议使用 accountIdentifier
属性,因为它会 always be populated,即使在 oid
可能不可用的极端情况下也是如此:
const accountIdentifier: string = idToken.objectId || idToken.subject;
有关 GitHub 的更多信息。
我正在使用 MSAL 针对 Microsoft Azure AD 验证用户并获得有效令牌。
MSAL 库返回给我一个 User
对象,其中包含一个名为 userIdentifier
的 属性。
这是字符串,不是 GUID。
文档说使用一个名为 oid
的字段来唯一标识 Microsoft Identity 平台上的用户。我在 User.idToken.oid
.
如文档所述,该值是一个 GUID。
我的问题是,这是什么 User.userIdentifier
我应该使用它吗?我需要知道在数据库端存储什么以将此本地用户绑定到 Azure AD 用户。
查看源代码(https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-core/src/Account.ts),没有userIdentifier,但是有accountIdentifier。 可能是您的版本较旧,在这种情况下,这可能不正确。
// create accountIdentifier
const accountIdentifier: string = idToken.objectId || idToken.subject;
它是 oid 或 sub 声明,取其值。 如果你想要 oid,你应该从 Account 的 idTokenClaims 属性 中获取它。
为清楚起见,建议使用 accountIdentifier
属性,因为它会 always be populated,即使在 oid
可能不可用的极端情况下也是如此:
const accountIdentifier: string = idToken.objectId || idToken.subject;
有关 GitHub 的更多信息。