我们已将Office 365与Office 365集成到我们的系统中并遇到问题。当用户尝试从学校域名注册时,我们只能创建一个帐户。来自一个域的所有帐户都具有相同的帐户ID,我们无法区分它们。例如,我们会收到alice@sample.com和bob@sample.com电子邮件地址的相同帐户ID。我们目前遇到的一个大问题是,在alice@sample.com注册并创建帐户后,当bob@sample.com尝试注册时,他将登录到Alice的帐户。我们用于Microsoft SSO的机制与Google,Edmodo或其他SSO提供商的机制完全相同。我们如何解决这个问题?
我们正在使用oAuth2。对于同一域的所有电子邮件地址,我们会收到相同的officeID。
$jsonResponse = oAuthService::getTokenFromAuthCode($auth_code, $redirectUri);
$jsonAccessTokenPayload = json_decode($decodedAccessTokenPayload, true);
$officeId = $jsonAccessTokenPayload[‘tid’];
答案 0 :(得分:3)
tid
是租户ID。对于同一Azure AD租户中的不同用户,它应该是相同的。
您可能希望使用oid
值(对象ID)。这对于租户中的每个用户来说都是唯一且不可变的。
您可以将两者结合起来获取租户标识符以及用户的对象ID。
所有JWT令牌和声明值都在this page上解释。