Как получить идентификатор арендатора учетной записи Azure?

201

У меня такой вопрос: возможно ли получить идентификатор клиента Azure Active Directory без использования команды powershell?

Я нашел эти два блога и с этой помощью уже смог получить идентификатор арендатора и идентификатор подписки от powershell. Это единственный способ вернуть арендатора?

Получить идентификатор клиента Windows Azure Active Directory в Windows PowerShell

Поддержка аутентификации Windows Azure AD для PowerShell

Спасибо

Энни Винсент
источник
Вы ищете ответ на другом языке программирования, или вы ищете ответ без программирования? Если первое, вам нужно быть более конкретным. Если по лестнице вы спрашиваете не на том форуме
Мэтт
4
Нашел этот веб-сайт, который выполняет свою работу: whatismytenantid.com
Жан-Франсуа Дешен,
2
Это чувство, когда 150K + люди были ввернуты MS, неспособные ясно сообщить tenantId
eddyP23

Ответы:

264

Время меняет все. Я хотел сделать то же самое недавно и придумал это:

Заметка

добавлено 18.12.2017

Как указывает shadowbq, DirectoryId и TenantId оба равны GUID, представляющему ActiveDirectory Tenant. В зависимости от контекста документация и продукты Microsoft могут использовать любой из этих терминов, что может привести к путанице.

Предположения

  • У вас есть доступ к порталу Azure

Решение

Идентификатор клиента привязан к ActiveDirectoy в Azure

  • Перейдите к панели инструментов
  • Перейдите в ActiveDirectory
  • Перейдите в Управление / Свойства
  • Скопируйте «Идентификатор каталога»

Идентификатор клиента Azure ActiveDirectory

Да, я использовал краску, не суди меня.

Кевин Р.
источник
6
Я не уверен насчет прибыли, но остальное сработало для меня! ☺
HaveSpacesuit
39
«Арендатор ID» IS «Справочник ID».
shadowbq
32
Microsoft наверняка хочет держать людей в напряжении, называя все 3 раза.
BenM
1
Что означает «перейти к ActiveDirectory»?
Тханг
1
@thang: ActiveDirectory по умолчанию прикрепляется к порталу Azure, если вы его не видите, вы можете получить его, введя «Azure Active Directory» в строке поиска в верхней части портала и выбрав запись «Azure Active Directory» в разделе «Услуги»
Кевин Р.
103

Перейдите по адресу https://login.windows.net/YOURDIRECTORYNAME.onmicrosoft.com/.well-known/openid-configuration, и вы увидите несколько URL-адресов, содержащих ваш идентификатор клиента.

BENV
источник
3
Эти идентификаторы являются идентификаторами подписки, а не идентификаторами арендаторов. Когда учетная запись имеет несколько подписок, существует несколько каталогов, а tenantId приравнивается к directoryId, указанному в ответе @KevinR ниже
Catch22
5
Вы можете иметь несколько подписок, связанных с одним клиентом / каталогом. При использовании описанного выше способа вы увидите идентификатор арендатора, а не идентификаторы подписки. Вы можете подтвердить, сравнив GUID этого метода с идентификатором каталога на портале - они будут одинаковыми.
BenV
3
супер полезно, если у вас нет доступа к
блейду
2
К вашему сведению: вы можете преобразовать Id подписки в Id арендатора, перейдя по адресу management.azure.com/subscription/… (наведите указатель мыши на полный URL-адрес) и проверив возвращаемый заголовок «WWW-Authenticate» (вы получите 401, но этот заголовок содержит URL с идентификатором арендатора). :-)
BrainSlugs83
В лазурных URL-адресах (например, на портале) вы обычно можете использовать YOURDIRECTORYNAME.onmicrosoft.com и идентификатор клиента взаимозаменяемо, поэтому, если вы знаете имя каталога, вы можете ссылаться на клиента.
ndrix
57

Моя команда очень устала от попыток найти идентификатор арендатора для наших проектов O365 и Azure. Разработчики, служба поддержки, отдел продаж, все нуждаются в этом в какой-то момент и никогда не помнят, как это сделать.

Итак, мы создали этот небольшой сайт в том же духе, что и whatismyip.com. Надеюсь, что вы найдете ее полезной!

https://www.whatismytenantid.com

Эрик Ротье
источник
48

В Azure CLI (я использую GNU / Linux):

$ azure login  # add "-e AzureChinaCloud" if you're using Azure China

Вам будет предложено войти через https://aka.ms/devicelogin или https://aka.ms/deviceloginchina.

$ azure account show
info:    Executing command account show
data:    Name                        : BizSpark Plus
data:    ID                          : aZZZZZZZ-YYYY-HHHH-GGGG-abcdef569123
data:    State                       : Enabled
data:    Tenant ID                   : 0XXXXXXX-YYYY-HHHH-GGGG-123456789123
data:    Is Default                  : true
data:    Environment                 : AzureCloud
data:    Has Certificate             : No
data:    Has Access Token            : Yes
data:    User name                   : nico@XXXXXXX.onmicrosoft.com
data:    
info:    account show command OK

или просто:

azure account show --json | jq -r '.[0].tenantId'

или новый аз:

az account show --subscription a... | jq -r '.tenantId'
az account list | jq -r '.[].tenantId'

Я надеюсь, что это помогает

nicocesar
источник
1
на самом деле, это лазурный кли .. но +1 для любого кли.
pms1969
Это также будет работать с новым azCLI, спасибо!
rsmith54
39

Идентификатор клиента также присутствует в URL-адресе консоли управления при переходе к данному экземпляру Active Directory, например:

https://manage.windowsazure.com/<morestuffhere>/ActiveDirectoryExtension/Directory/BD848865-BE84-4134-91C6-B415927B3AB1

Azure Mgmt Console Active Directory

Brett
источник
@ МДж, я тебя слышу. Я удивлен, что ты первый, кто прокомментировал мое предложение Клугея. Может быть, для остального мира очевидно, что можно извлечь идентификатор арендатора из URI.
Бретт
Не очевидно для меня. Я ожидал, что это будет показано где-то в пользовательском интерфейсе. Охота за ним в Uri или использование PowerShell, чтобы получить его после аутентификации, действительно странно. Мы хотим ограничить определенные теннанты в нашем приложении, поэтому нам нужно запросить идентификатор у владельца теннанта. Этот метод может запутать многих из них.
PilotBob
3
Мало того, что это безумие, это официально = / «Жилец идентификатор для офиса 365 арендатора отображается как часть URL» см support.office.com/en-us/article/...
Bigginn
34

Просто чтобы добавить новый метод к старому (но все еще актуальный вопрос). На новом портале, щелкнув значок справки на любом экране и выбрав « Показать диагностику », вы увидите документ JSON, содержащий всю информацию об арендаторе, включая TenantId, имя арендатора и многие другие полезные сведения.

введите описание изображения здесь

LDJ
источник
22

Этот ответ был предоставлен на веб-сайте Microsoft и обновлен 21.03.2008:

https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal

Вкратце, вот скриншоты из прохождения:

  1. Выберите Azure Active Directory.

Azure Active Directory

  1. Чтобы получить идентификатор клиента, выберите «Свойства» для своего клиента Azure AD.

Выберите Свойства

  1. Скопируйте идентификатор каталога. Это значение - ваш идентификатор арендатора.

Скопируйте идентификатор каталога, это идентификатор клиента.

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

MattMakes
источник
12

Еще один способ получить его из регистрации приложений

Azure Active Directory-> App registrations-> нажмите на приложение, и оно покажет, tenant IDкак это

введите описание изображения здесь

Гайен Сунтхара
источник
1
Я не вижу идентификатора арендатора под большинством предметов в лазури.
катится
12

Через PowerShell анонимно:

(Invoke-WebRequest https://login.windows.net/YOURDIRECTORYNAME.onmicrosoft.com/.well-known/openid-configuration|ConvertFrom-Json).token_endpoint.Split('/')[3]
user5347643
источник
1
Он искал способ сделать это без использования встроенных команд - к счастью, это демонстрирует, как это сделать на любом языке ... отличный.
BrainSlugs83
5

Вы можете выполнить простой вызов curl, чтобы получить идентификатор клиента подписки Azure без какой-либо аутентификации.

сделайте вызов:

https://management.azure.com/subscriptions/{subscription-id}?api-version=2015-01-01

Запрос не выполняется, но вы сможете получить идентификатор арендатора из заголовка ответа. Идентификатор клиента присутствует в строке, за которой следует "WWW-Authenticate: Bearer authorization_uri =" https://login.windows.net/ "

Вы можете использовать, curl -v чтобы показать заголовок ответа.

nwarriorch
источник
5

На данный момент (07/06/2018) простым подходом будет запуск показа учетной записи Az в облачной оболочке Azure (требуется учетная запись хранения) на портале Azure .

--- Команда ---

az account show

--- Вывод команды ---

{
  "environmentName": "AzureCloud",
  "id": "{Subscription Id (GUID)}",
  "isDefault": true,
  "name": "{Subscription Name}",
  "state": "Enabled",
  "tenantId": "{Tenant Id (GUID)}",
  "user": {
    "cloudShellID": true,
    "name": "{User email}",
    "type": "user"
  }
}

Дополнительные сведения о облачной оболочке Azure см. По адресу https://docs.microsoft.com/en-us/azure/cloud-shell/overview .

Эвандро Паула
источник
4

Используйте Azure CLI

az account get-access-token --query tenant --output tsv
Фил Столлери
источник
1
Это именно то, что спрашивающий не просит
Джим Ахо
3

В PowerShell:

Add-AzureRmAccount #if not already logged in 
Get-AzureRmSubscription -SubscriptionName <SubscriptionName> | Select-Object -Property TenantId
LucasM
источник
3

Если вы установили Azure CLI 2.0 на своем компьютере, вы сможете получить список подписки, к которой вы принадлежите, с помощью следующей команды:

az login

если вы хотите видеть в качестве выходной таблицы, вы можете просто использовать

az account get-access-token --query tenant --output tsv

или вы можете использовать Rest API

https://docs.microsoft.com/en-us/rest/api/resources/tenants/list

Sajeetharan
источник
2

Если у вас есть установка Azure CLI, вы можете запустить команду ниже,

az account list

или найти его на ~/.azure/credentials

barryku
источник
1

С Java:

public static String GetSubscriptionTenantId (String subscriptionId) throws ClientProtocolException, IOException
{
    String tenantId = null;
    String url = "https://management.azure.com/subscriptions/" + subscriptionId + "?api-version=2016-01-01";

    HttpClient client = HttpClientBuilder.create().build();
    HttpGet request = new HttpGet(url);
    HttpResponse response = client.execute(request);

    Header[] headers = response.getAllHeaders();
    for (Header header : headers)
    {
        if (header.getName().equals("WWW-Authenticate"))
        {
            // split by '"' to get the URL, split the URL by '/' to get the ID
            tenantId = header.getValue().split("\"")[1].split("/")[3];
        }
    }

    return tenantId;
}
bviktor
источник
1

По словам Microsoft:

Найдите ваш tenantID: ваш tenantId можно узнать, открыв следующий документ metadata.xml: https://login.microsoft.com/GraphDir1.onmicrosoft.com/FederationMetadata/2007-06/FederationMetadata.xml - замените «graphDir1.onMicrosoft. com ", со значением домена вашего арендатора (любой домен, который принадлежит арендатору, будет работать). TenantId - это guid, который является частью URL-адреса sts, возвращаемого в sts-URL первого узла XML («EntityDescriptor»): например, « https://sts.windows.net/ ».

Ссылка:

https://azure.microsoft.com/en-us/resources/samples/active-directory-dotnet-graphapi-web/

DMCC
источник
0

Вы также можете получить идентификатор арендатора, фактически все детали подписки, войдя в url resources.azure.com

ВИДЖАЙ РААВИ
источник
0

Простой способ получить tenantID - это

Connect-MsolService -cred $ LiveCred # войти в систему арендатора

(Get-MSOLCompanyInformation) .objectid.guid #get tenantID

Петр Вогль
источник
0

Для AAD-B2C это довольно просто. Из портала Azure, с которым связан каталог B2C, перейдите в каталог B2C (я добавил «Azure AD B2C» в левое меню моего портала). В каталоге B2C нажмите «Пункт меню каталога Потоки пользователей (политики)». На панели политик щелкните одну из ранее добавленных политик, чтобы выбрать ее. Она должна открыть панель для политики. Нажмите «Свойства». В следующем Панель - это раздел «Параметры совместимости токенов» со свойством «Эмитент». Ваш GUID клиента AAD-B2C содержится в URL-адресе.

Ларри Олтман
источник
-2
xxx@Azure:~$ az ad sp create-for-rbac
Retrying role assignment creation: 1/36
{
  "appId": "401143c2-95ef-4792-9900-23e07f7801e7",
  "displayName": "azure-cli-2018-07-10-20-31-57",
  "name": "http://azure-cli-2018-07-10-20-31-57",
  "password": "a0471d14-9300-4177-ab08-5c45adb3476b",
  "tenant": "e569f29e-b008-4cea-b6f0-48fa8532d64a"
}
user3290431
источник
Это создаст новый sp .
Робиньо