Получить идентификатор организации или домен из Azure AD Graph

Мы разрабатываем мультитенантную интеграцию SSO с Office 365 с использованием новой реализации OpenID.

Как только токен доступа будет получен, мы вызываем https://graph.windows.net/me?api-version=1.21-preview, чтобы получить информацию о профиле пользователя, которая дает что-то вроде приведенного ниже — отлично.

{
    "odata.metadata": "https:\/\/graph.windows.net\/myorganization\/$metadata#directoryObjects\/Microsoft.WindowsAzure.ActiveDirectory.User\/@Element",
    "odata.type": "Microsoft.WindowsAzure.ActiveDirectory.User",
    "objectType": "User",
    "objectId": "GUID",
    "accountEnabled": true,
    "assignedLicenses": [

    ],
    "assignedPlans": [

    ],
    "city": null,
    "country": null,
    "department": null,
    "dirSyncEnabled": null,
    "displayName": "Tester A",
    "facsimileTelephoneNumber": null,
    "givenName": "Test",
    "immutableId": null,
    "jobTitle": null,
    "lastDirSyncTime": null,
    "mail": null,
    "mailNickname": "tester-a",
    "mobile": null,
    "otherMails": [

    ],
    "passwordPolicies": "None",
    "passwordProfile": null,
    "physicalDeliveryOfficeName": null,
    "postalCode": null,
    "preferredLanguage": null,
    "provisionedPlans": [

    ],
    "provisioningErrors": [

    ],
    "proxyAddresses": [

    ],
    "state": null,
    "streetAddress": null,
    "surname": "A",
    "telephoneNumber": null,
    "usageLocation": null,
    "userPrincipalName": "[email protected]",
    "userType": "Member"
}

Однако, похоже, он не возвращает никакого идентификатора или конкретного домена для организации, кроме домена, содержащегося в поле userPrincipalName. Есть ли лучший способ идентифицировать организацию (учитывая, что организация может обновить test.onmicrosoft.com до личного домена test.microsoft.com)?


person Jamie    schedule 25.06.2014    source источник


Ответы (1)


Конечно. Используйте API tenantDetails (https://graph.windows.net/{tenantDomain}/tenantDetails?api-version ={версия}), чтобы получить отображаемое имя каталога и всех подтвержденных доменов, связанных с ним. Задокументировано здесь: http://msdn.microsoft.com/en-us/library/azure/hh974467.aspx.

Ниже приведен урезанный вывод для моего арендатора.

Надеюсь это поможет.

  {
"odata.metadata": "https://graph.windows.net/dushyantgill.com/$metadata#directoryObjects/Microsoft.WindowsAzure.ActiveDirectory.TenantDetail",
"value": [
  {
    "odata.type": "Microsoft.WindowsAzure.ActiveDirectory.TenantDetail",
    "objectType": "Company",
    "objectId": "62e173e9-301e-423e-bcd4-29121ec1aa24",
    "assignedPlans": [
      {
        "assignedTimestamp": "2013-09-17T01:01:58Z",
        "capabilityStatus": "Enabled",
        "service": "SharePoint",
        "servicePlanId": "a1f3d0a8-84c0-4ae0-bae4-685917b8ab48"
      } [SNIP]
    ],
    "city": "Redmond",
    "companyLastDirSyncTime": "2014-04-20T17:42:58Z",
    "country": null,
    "countryLetterCode": "US",
    "dirSyncEnabled": true,
    "displayName": "dushyantgill",
    "marketingNotificationEmails": [],
    "postalCode": "98052",
    "preferredLanguage": "en",
    "provisionedPlans": [
      {
        "capabilityStatus": "Enabled",
        "provisioningStatus": "Success",
        "service": "exchange"
      }[SNIP]
    ],
    "provisioningErrors": [],
    "state": "WA",
    "street": "[SNIP]",
    "technicalNotificationMails": [
      "[SNIP]"
    ],
    "telephoneNumber": null,
    "tenantType": null,
    "verifiedDomains": [
      {
        "capabilities": "Email, OfficeCommunicationsOnline",
        "default": false,
        "id": "0005000080186A52",
        "initial": false,
        "name": "dushyantgill.mail.onmicrosoft.com",
        "type": "Managed"
      },
      {
        "capabilities": "Email, OfficeCommunicationsOnline",
        "default": false,
        "id": "00057FFE803C0EDA",
        "initial": false,
        "name": "dushyantgill.org",
        "type": "Federated"
      },
      {
        "capabilities": "Email, OfficeCommunicationsOnline",
        "default": true,
        "id": "00053FFF80232F54",
        "initial": false,
        "name": "dushyantgill.com",
        "type": "Managed"
      }[SNIP]
    ]
  }
]

}

person Dushyant Gill    schedule 26.06.2014
comment
Это работает для моего сценария с использованием псевдонима myorganization в качестве домена клиента. - person Jamie; 27.06.2014