前提条件AD objectGUID与Microsoft Graph中的对象ID不同

时间:2018-12-18 19:24:13

标签: active-directory azure-active-directory microsoft-graph

我有一个类似于On premise Active Directory ObjectId is different than Azure Active Directory ObjectId的问题

我们在广告中使用objectGUID来唯一标识用户和组。我们还使用id维护组成员身份。当使用Microsoft Graph查询Microsoft租户时,我们从用户或组对象中看到的onPremisesImmutableId与从本地AD获得的东西不同。这使得很难关联AAD和AD资源。

我尝试通过以下请求使用/v1.0/me?$select=id,userPrincipalName,onPremisesSecurityIdentifier,displayName,onPremisesImmutableId ,但发现该ID是我的员工ID。

objectGUID

有人知道如何在AAD世界中检索相同的onPremisesDomainName吗?通过查看User documentation,我找不到任何接近的东西。

对于Group对象,我也找不到属性@Override public HttpClientConnectionManager newConnectionManager(boolean disableSslValidation, int maxTotalConnections, int maxConnectionsPerRoute, long timeToLive, TimeUnit timeUnit, RegistryBuilder registryBuilder) { if (registryBuilder == null) { registryBuilder = RegistryBuilder.<ConnectionSocketFactory> create() .register(HTTP_SCHEME, PlainConnectionSocketFactory.INSTANCE); } SSLContext sslContext; try { //We load the keystore and define the keyalias to be used for MTLS SSLContextBuilder sslContextBuilder = new SSLContextBuilder() .setKeyStoreType("JKS") .loadKeyMaterial( keyStore.getURL(), keyStorePassword.toCharArray(), keyPassword.toCharArray(), (aliases, socket) -> keyAlias ); ,类似于User对象。这是设计使然吗?

1 个答案:

答案 0 :(得分:3)

那是写本书时的正确答案,但此后情况有所变化。 Azure AD Connect: objectGUID vs. mS-DS-ConsistencyGuid上有一篇很棒的博客文章,讨论了这一变化。具体来说:

  

在Azure AD Connect版本1.1.524.0之前,Azure AD Connect(以及Azure AD Sync和DirSync)默认为对象的objectGUID属性作为源锚。对于用户对象,Azure AD Connect版本1.1.553.0及更高版本默认为mS-DS-ConsistencyGuid,对于组和计算机对象,默认值为objectGUID

在您的情况下,听起来您的特定租户映射配置不同(即您的员工ID)。

鉴于博客文章中提出的问题,我建议您完全不要为此目的使用objectGUID。如果您要在“用户”和“组”资源上查找单个属性,建议您改用onPremisesSecurityIdentifier。这将保留来自本地AD的SID。