Я создал две директории на портале Azure AD. В одном каталоге я зарегистрировал клиентское приложение и получил делегированные разрешения
- User.Read
- Directory.AccessAsUser.All
- Directory.Read.All
Я также сделал его Multitenant для любого каталога Azure AD, чтобы использовать это приложение.
После успешного входа в систему я вызываю API (https://graph.microsoft.com/v1.0/me/memberOf) для получения информации о группах пользователя. Это работает только для пользователей в каталоге, где зарегистрировано приложение. Я получаю все подробности, такие как displayName et c для пользователя в каталоге, где зарегистрировано приложение.
Когда я вхожу через пользователя, принадлежащего другому арендатору (каталогу), вход в систему успешен, но я не получаю полные данные группы в ответе API (см. Ниже). Я получаю правильный идентификатор объекта (группы) обратно, но не другие детали.
Кажется, это проблема, связанная с разрешениями, которую я не могу выяснить. Кто-нибудь, пожалуйста, предложите.
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#directoryObjects",
"value": [
{
"@odata.type": "#microsoft.graph.group",
"id": "8bcd8779-8a74-4db7-83f0-8a5c5d076540",
"deletedDateTime": null,
"classification": null,
"createdDateTime": null,
"creationOptions": [],
"description": null,
"displayName": null,
"groupTypes": [],
"isAssignableToRole": null,
"mail": null,
"mailEnabled": null,
"mailNickname": null,
"onPremisesDomainName": null,
"onPremisesLastSyncDateTime": null,
"onPremisesNetBiosName": null,
"onPremisesSamAccountName": null,
"onPremisesSecurityIdentifier": null,
"onPremisesSyncEnabled": null,
"preferredDataLocation": null,
"proxyAddresses": [],
"renewedDateTime": null,
"resourceBehaviorOptions": [],
"resourceProvisioningOptions": [],
"securityEnabled": null,
"securityIdentifier": null,
"visibility": null,
"onPremisesProvisioningErrors": []
}
]
}
Я использую реализацию Spring Security oauth2 с этими свойствами конфигурации (id, секретная маска)
azure:
activedirectory:
tenant-id: 66aeb78f-7a26-46c9-99ab-460c6309b21e
active-directory-groups: Users
client:
client-id: 9618ac61-43ab-4c97-a9f1-769c91f48e08
client-secret: DxndD0cBezR-AnrGuCH@?b1NpwtFj?47
accessTokenUri: https://login.microsoftonline.com/common/oauth2/v2.0/token
userAuthorizationUri: https://login.microsoftonline.com/common/oauth2/v2.0/authorize?prompt=select_account
scope: user.read
resource:
userInfoUri: https://graph.microsoft.com/v1.0/me