Получая все каталоги B2B, пользователь является членом
Поскольку в GA у нас есть функция B2B Azure AD, мне интересно, как использовать B2B в мультитенантных приложениях. В частности, как получить список каталогов, членом которых является пользователь? Например, портал Azure делает это, вызывая https://portal.azure.com/AzureHubs/api/tenants/List
, Microsoft My Apps звонит https://account.activedirectory.windowsazure.com/responsive/multidirectoryinfo
чтобы получить информацию - есть ли публичная конечная точка для этого?
Вариант использования - включить взаимодействие B2B через мультитенантное приложение, которое предоставляется в каталоге каждого пользователя, чтобы у них были свои экземпляры, но нет способа централизованно извлекать информацию о каталогах пользователя.
Простой обходной путь - опросить всех арендаторов, которым предоставлено приложение для имени пользователя UPN, и, если он найден, отобразить его в списке, но представьте, что существуют сотни арендаторов... Я считаю, что это очень важно для разработчиков приложений, которые хочу использовать функции B2B в мультитенантных приложениях.
Обновление. Похоже, что есть способ сделать это путем доступа к API управления службами Azure, однако этот API и метод недокументированы, и я полагаю, что если возникнут какие-либо проблемы, Microsoft скажет, что это не поддерживаемый сценарий.
Обновление 2: я написал статью обо всей установке, включая пример проекта о том, как использовать это в сценарии, его можно найти здесь https://hajekj.net/2017/07/24/creating-a- многопользовательские-приложения-которые-опора-b2b-пользователи /
1 ответ
Существует публично документированный API-интерфейс управления Azure, который позволяет вам сделать это: https://docs.microsoft.com/en-us/rest/api/resources/tenants
GET https://management.azure.com/tenants?api-version=2016-06-01 HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz...
...
Тело ответа выглядит примерно так:
{
"value" : [{
"id" : "/tenants/d765d508-7139-4851-b9c5-74d6dbb1edf0",
"tenantId" : "d765d508-7139-4851-b9c5-74d6dbb1edf0"
}, {
"id" : "/tenants/845415f3-7a05-45c2-8376-ee67080661e2",
"tenantId" : "845415f3-7a05-45c2-8376-ee67080661e2"
}, {
"id" : "/tenants/97bcb93f-8dee-48ed-afa3-356ba40f3a61",
"tenantId" : "97bcb93f-8dee-48ed-afa3-356ba40f3a61"
}
]
}
Ресурс, для которого вам нужно получить токен доступа, https://management.azure.com/
(с косой чертой!).