Как получить идентификатор арендатора учетной записи 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-адресов, содержащих ваш идентификатор клиента.


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'

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


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


@ МДж, я тебя слышу. Я удивлен, что ты первый, кто прокомментировал мое предложение Клугея. Может быть, для остального мира очевидно, что можно извлечь идентификатор арендатора из URI.
Бретт

Не очевидно для меня. Я ожидал, что это будет показано где-то в пользовательском интерфейсе. Охота за ним в Uri или использование PowerShell, чтобы получить его после аутентификации, действительно странно. Мы хотим ограничить определенные теннанты в нашем приложении, поэтому нам нужно запросить идентификатор у владельца теннанта. Этот метод может запутать многих из них.
PilotBob

3
Мало того, что это безумие, это официально = / «Жилец идентификатор для офиса 365 арендатора отображается как часть URL» см support.office.com/en-us/article/...
Bigginn

34

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

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


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. Скопируйте идентификатор каталога. Это значение - ваш идентификатор арендатора.

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

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


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]

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 чтобы показать заголовок ответа.


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 .



3

В PowerShell:

Add-AzureRmAccount #if not already logged in 
Get-AzureRmSubscription -SubscriptionName <SubscriptionName> | Select-Object -Property TenantId

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


2

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

az account list

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


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;
}

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/


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"
}

Это создаст новый sp .
Робиньо
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.