Предоставить сервисному принципалу доступ к приложению у другого арендатора - PullRequest
0 голосов
/ 04 октября 2018

У меня есть участник службы Azure AD в одном арендаторе (OneTenant), который я хотел бы предоставить доступ к приложению в другом клиенте (OtherTenant).

Участник службы в арендаторе OneTenant - это идентификатор управляемой службы для приложения логики Azure.Так что я действительно хочу вызвать API из моего приложения логики.Этот API защищен приложением Azure AD в OtherTenant.

Приложение в OtherTenant определяет ряд ролей, а у участника службы в OneTenant должна быть одна из этих ролей, чтобы он мог вызыватьAPI.

Я попытался сделать следующее:

  • установить приложение в OtherTenant на мультитенант
  • выполнил следующую команду PS, чтобы попытатьсядобавить SP к роли в приложении:

    New-AzureADServiceAppRoleAssignment `
      -ObjectId <object-id-of-sp-in-one-tenant> `
      -Id <role-id> `
      -PrincipalId <object-id-of-sp-in-one-tenant> `
      -ResourceId <app-id-in-other-tenant>
    

    (оба вошли в систему OneTenant и OtherTenant)

    Это дает ошибку, сообщающую, что либо app-id-in-other-tenant, либо object-id-of-sp-in-one-tenant не может быть найдено, в зависимости от того, где я вошел в систему.

Я также попытался создать субъект-службу в OneTenant на основе идентификатора приложения из OtherTenant.case я получаю сообщение об ошибке: Authenticating principal does not have permission to instantiate multi-tenantapplications and there is not matching Applicationin the request tenant.

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Хорошо, я наконец-то приступил к тестированию, работает ли решение , представленное Rohit Saigal.Он указывает в правильном направлении, но не завершен.

Первый шаг - создать субъект службы в OneTenant, который представляет приложение в OtherTenant.Поэтому во время входа в систему OneTenant запустите следующий сценарий:

$spInOneTenant = New-AzureADServicePrincipal -AppId <app-id-in-other-tenant>

Следующим шагом будет запуск командлета New-AzureADServiceAppRoleAssignment со следующими параметрами:

New-AzureADServiceAppRoleAssignment `
    -Id <role-id> `
    -ObjectId <object-id-of-sp-in-one-tenant> `
    -PrincipalId <object-id-of-sp-in-one-tenant> `
    -ResourceId $spInOneTenant.ObjectId

Хитростьиспользовать идентификатор объекта субъекта службы, который вы создали на предыдущем шаге, как ResourceId.

0 голосов
/ 05 октября 2018

Принимая команду как есть из вашего вопроса:

New-AzureADServiceAppRoleAssignment `
  -ObjectId <object-id-of-sp-in-one-tenant> `
  -Id <role-id> `
  -PrincipalId <object-id-of-sp-in-one-tenant> `
  -ResourceId <app-id-in-other-tenant>

Попробуйте изменить последнее значение параметра, т.е. ResourceId

В настоящее время вы передаете <app-id-in-other-tenant>

Заменитьчто с <object-id-of-API-in-other-tenant>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...