首页 > 解决方案 > MSAL - userIdentifier 与 idToken.oid

问题描述

我正在使用 MSAL 针对 Microsoft Azure AD 验证用户,并获得了一个有效的令牌。

MSAL 库将一个对象交还给我,该User对象包含一个名为userIdentifier.

这是一个字符串,而不是 GUID。

文档说要使用一个称为oid唯一标识整个 Microsoft 身份平台的用户的字段。我在User.idToken.oid.

如文档所述,此值是 GUID。

我的问题是,这是什么User.userIdentifier,我应该使用它吗?我需要知道在数据库端存储什么以将此本地用户与 Azure AD 用户联系起来。

标签: azure-active-directorymsalmsal.js

解决方案


查看源代码(https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-core/src/Account.ts),没有userIdentifier,但是有是一个帐户标识符。可能是您的版本较旧,在这种情况下,这可能不正确。

// create accountIdentifier
const accountIdentifier: string = idToken.objectId ||  idToken.subject;

它是 oid 或 sub 声明,以具有值的为准。如果你想要 oid,你应该从 Account 的 idTokenClaims 属性中获取它。


推荐阅读