我有一个类似于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对象。这是设计使然吗?
答案 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。