【问题标题】:Connect information from Azure AD to local Ad将 Azure AD 中的信息连接到本地广告
【发布时间】:2021-12-01 15:36:17
【问题描述】:

我正在构建一个用户通过 azure (oauth) 登录的应用程序。 现在我想在本地活动目录中找到登录的用户,但是我该怎么做呢?

在 azure web admin ui 中有一个很有前途的 objectId,但我在本地 AD 中找不到任何地方。

我也不能使用 upn,因为 azure 和我本地广告上的不一样。

一定有办法,因为 aad 同步也可以跟踪更改。

这是访问令牌提供的信息:

  {
 "aud": "00000003-0000-0000-c000-000000000000",
  "iss": "https://sts.windows.net/3173e872-f73b-47d0-81c6-75e3ac726c21/",
 "iat": 1637937947,
 "nbf": 1637937947, 
 "exp": 1637943631,
  "acct": 0, 
 "acr": "1", 
 "acrs": [  
  "urn:user:registersecurityinfo"
  ],
  "aio": "ASQA2/8TAAAAha246r1Y5HNoFGcBvCtPqcvDnjil+dqoybNz9Gk57kk=", 
 "amr": [
   "pwd"
],
 "app_displayname": "myapp",
 "appid": "b958b44a-3b5c-14ac-b245-126b7524b35c",
 "appidacr": "0",
 "family_name": "Lustig",
"given_name": "Linda",
 "idtyp": "user",
 "ipaddr": "188.31.41.234",
 "name": "Linda Lustig",
 "oid": "9da1be1d-af4f-4d26-a9e7-e7e7a692471b",
  "onprem_sid": 
"S-1-5-21-4559353447-1638600113-3447510865-117118", 
 "platf": "8",
  "puid": "1003200160C8DCC6",
 "rh": "0.AXkAcuhzMTv30EeBxnXjrHJsIUu0iLlcXaxEs0dkayUks1x5AO0.",
 "scp": "openid profile email",
 "sub": "zpFbfmWNaR4YWYhWKHNEf3rVHVlavGX8DVQVQpPst_c",
"tenant_region_scope": "EU",
"tid": "3173e872-b76b-27d0-51c6-75e3ac726c21",
"unique_name": "lustig@mycompany.onmicrosoft.com",
  "upn": "lustig@mycompany.onmicrosoft.com",
  "uti": "nAcNGfeFek6iNmBwoJ9iAQ",
  "ver": "1.0",
  "xms_st": {
    "sub": "3CEB7AUcrDeE6SKT1qde_FXWVeK9ppxZB576-PaIfwY"
  },

  "xms_tcdt": 1547151622
}

【问题讨论】:

  • sAMAccountName 怎么样,它是否列出并且匹配?也可以使用 Azure 对象 id,它映射到 ldap 属性msDS-aadObjectId。 @见Attribute mapping for user accounts.
  • 不,sAMAaccoutnNames 并不总是相等的。我不知道为什么,但我有一些用户就是这种情况。我在 ldap 浏览器或广告浏览器中的属性选项卡中都看不到属性 msDS-aadObjectId。
  • @KartikBhiwapurkar-MT 对于延迟,我感到非常抱歉,但由于管理原因,我目前无法测试您的建议。我会尽快测试的。
  • 您好@Ace of Spade,如果我的回答对您有帮助,您可以接受它作为答案(单击答案旁边的复选标记将其从灰色切换为已填充。)或投票如果它对您有任何帮助。这对其他社区成员可能是有益的。谢谢。

标签: active-directory azure-active-directory


【解决方案1】:

• 每当 Azure AD Connect 运行并开始同步时,它都会检查 Active Directory 中的每个对象,并尝试匹配 Azure AD 中的现有对象。此过程使用三个属性,即 userPrincipalName(UPN)、proxyAddresses 和 sourceAnchor。因此,userPrincipalName 和 proxyAddresses 上的匹配称为软匹配,而 sourceAnchor 上的匹配称为硬匹配。另外请注意,对于 proxyAddresses 属性,AD 中的 SMTP 属性被视为主电子邮件地址并被使用。

• 因此,正如您所说,UPN 不匹配,您可以尝试将其他两个属性与本地属性匹配以查找本地用户。此外,请注意,当本地 AD 属性首次与 Azure AD 同步时,会创建 sourceAnchor 属性。之后,对于那些同步的身份,它们保持不变,以后不会更改,除非外部更改。因此,要根据 sourceAnchor 属性定位用户,您可以在 Active Directory 中定位等效属性,即与您尝试定位的身份相关的本地 AD 中的 ObjectGUID 或 ms-DS-ConsistencyGuid。

更多详细信息请参考以下链接:-

https://docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-install-existing-tenant#sync-with-existing-users-in-azure-ad

【讨论】:

  • 即使在用户同步到云端后,我也看不到名为“sourceAnchor”的属性。
  • 它在本地 AD/Azure AD Connect 中被命名为 ObjectGUID。请尝试在那里找到它。此外,还可以在 AD 中检查 ms-ds-consistencyguid 属性的 sourceAnchor,然后可以在 Azure AD 中找到相应的 proxyAddresses/UPN。此外,如果您有 sourceAnchor 属性,您将能够在 Azure AD 域服务中找到它,否则您通常无法在 Azure AD 中找到它,因为它是 AD 特定属性。
  • 我现在有点困惑,可以使用云端的 ObjectGUID 通过 ldap 查找条目吗?如果是这样,我该怎么做?
  • 软匹配是我还没检查过的。
  • 检查本地 AD 中的 ObjectGUID 以获取 Azure AD 域服务中的 sourceAnchor 属性。此外,检查在 Azure AD 中同步的 AD 中的身份的 proxyAddresses/SMTP 属性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-29
  • 1970-01-01
  • 1970-01-01
  • 2012-08-05
相关资源
最近更新 更多