AzureDevOps — не удалось получить токен доступа после перемещения подписки в другой AD

Подписка Azure перемещена из активного каталога AD1 в активный каталог AD2. Теперь задачи начинают давать сбой, поскольку предыдущая конечная точка ARM (через Auto SPN) была создана со старыми сведениями о конечной точке. Следовательно, задачи не могут генерировать правильный токен доступа.

Сообщение об ошибке

The access token is from the wrong issuer 'https://sts.windows.net/***/'. It must match the tenant 'https://sts.windows.net/<TenantIdNew>/' associated with this subscription.
Please use the authority (URL) 'https://login.windows.net/<TenantIdNew>' to get the token. 
Note, if the subscription is transferred to another tenant there is no impact to the services, but information about new tenant could take time to propagate (up to an hour). If you just transferred your subscription and see this error message, please try back later. (CODE: 401)

Дополнительные вопросы

  1. Как узнать, какого арендатора поддерживает мой VSTS? Где я могу найти его?
  2. Как узнать, какой арендатор поддерживает мою подписку? Где я могу найти его?
  3. Можно ли повторно использовать конечные точки службы, созданные ранее (с AD1), после перехода на AD2?
  4. Можно ли обновить идентификатор арендатора (через REST API) в существующих конечных точках службы после перехода на AD2?
  5. Будут ли конечные точки службы на основе MSI нарушены или они будут доступны после перехода на AD2?

person Ajay Yadav    schedule 06.06.2019    source источник


Ответы (1)


Возможны следующие решения:

  1. Измените резервный активный каталог с помощью учетной записи AzureDevOps с AD1 на AD2.
  2. Построить доверительные отношения ч/б активный каталог AD1 и AD2.
  3. Сначала создайте SPN с помощью скрипта, а затем вручную создайте конечную точку с подробностями, предоставленными сценарием.

Ответы на дополнительные вопросы

  1. Как узнать, какого арендатора поддерживает мой VSTS? Где я могу найти его?

    Перейдите в учетную запись AzureDevOps > Организация > Azure Active Directory введите здесь описание изображения

  2. Как узнать, какой арендатор поддерживает мою подписку? Где я могу найти его?

    Перейдите на портал Azure > Подписки > выберите свою подписку > обзор введите здесь описание изображения

  3. Можно ли повторно использовать конечные точки службы, созданные ранее (с AD1), после перехода на AD2?

    Да.

    Сначала давайте разберемся, что делает конечная точка службы внутри.

    1. Creates an app in AD.
    2. Назначьте ему разрешение по подписке.


    Теперь давайте пройдемся по нашему делу,

    1. Вы создали подключение к службе с помощью AD1, это означает, что приложение AD app1 создается в активном каталоге AD1 и назначается разрешение на подписку S
    2. Вы переместили подписку S в другой активный каталог AD2, но приложение AD app1 по-прежнему находится в предыдущем активном каталоге AD1.


    Чтобы повторно использовать существующую конечную точку службы, необходимо обновить SPN Id, SPN key и tenant Id в конечной точке службы.

    В случае ручного подключения службы легко обновить через пользовательский интерфейс, но в случае автоматического потока SPN вам необходимо обновить вышеупомянутые поля через REST API.

  4. Можно ли обновить идентификатор арендатора (через REST API) в существующих конечных точках службы после перехода на AD2?

    Да.

    Получить все конечные точки

    ТИП ЗАПРОСА - ПОЛУЧИТЬ

    https://<accountName>.visualstudio.com/<ProjectName>/_apis/distributedtask/serviceendpoints?api-version=3.2-preview.1
    

    Получить конкретную конечную точку

    ТИП ЗАПРОСА - ПОЛУЧИТЬ

    https://<accountName>.visualstudio.com/<ProjectID>/_apis/distributedtask/serviceendpoints/<SERVICE_ENDPOINT_ID>?api-version=3.2-preview.1
    

    Теперь обновите tenant Id в ответ и используйте его в качестве тела в REST API конечной точки обновления.

    Обновить конечную точку

    ТИП ЗАПРОСА - ПУТ

    https://<accountName>.visualstudio.com/<ProjectID>/_apis/distributedtask/serviceendpoints/<SERVICE_ENDPOINT_ID>?api-version=3.2-preview.1
    
  5. Будут ли конечные точки службы на основе MSI нарушены или они будут доступны после перехода на AD2?

    Да, вам нужно только обновить tenant Id в сервисном подключении.

person Ajay Yadav    schedule 06.06.2019