hashicorp / terraform-provider-azuread

Terraform provider for Azure Active Directory
https://registry.terraform.io/providers/hashicorp/azuread/latest/docs
Mozilla Public License 2.0
415 stars 280 forks source link

Unable to import azuread_directory_role_eligibility_schedule_request with a Global Administrator user. #1234

Open MattGarnerAWR opened 8 months ago

MattGarnerAWR commented 8 months ago

Community Note

Terraform (and AzureAD Provider) Version

Affected Resource(s)

Terraform Configuration Files

Debug Output

Error: Retrieving roleEligibilityScheduleRequest "xxxx-xxx-xxxx-xxxx-xxxxxxxxx" │ │ RoleEligibilityScheduleRequestClient.BaseClient.Get(): unexpected status 403 with OData error: UnknownError: {"errorCode":"PermissionScopeNotGranted","message":"Authorization failed due to missing permission scope │ RoleEligibilitySchedule.ReadWrite.Directory,RoleManagement.ReadWrite.Directory.","instanceAnnotations":[]} ╵

Panic Output

Expected Behavior

Normally, I can use my account that is Global Administrator to import AzureAD resources into state.

Actual Behavior

Errored with missing API permissions.

Steps to Reproduce

  1. terraform import

Important Factoids

References

SebRosander commented 1 month ago

I'm running into a similar issues when creating the azuread_directory_role_eligibility_schedule_request from scratch.

resource "azuread_directory_role" "internal_it_helpdesk_admin" {
  display_name = "Helpdesk Administrator"
}

resource "azuread_directory_role_eligibility_schedule_request" "internal_it_helpdesk_admin" {
  role_definition_id = azuread_directory_role.internal_it_helpdesk_admin.template_id
  principal_id       = azuread_group.internal_it_operator.object_id
  directory_scope_id = "/"
  justification      = "Internal-IT"
}

Running the operation as Global Admin.

mhosker commented 2 weeks ago

I'm running into a similar issues when creating the azuread_directory_role_eligibility_schedule_request from scratch.

resource "azuread_directory_role" "internal_it_helpdesk_admin" {
  display_name = "Helpdesk Administrator"
}

resource "azuread_directory_role_eligibility_schedule_request" "internal_it_helpdesk_admin" {
  role_definition_id = azuread_directory_role.internal_it_helpdesk_admin.template_id
  principal_id       = azuread_group.internal_it_operator.object_id
  directory_scope_id = "/"
  justification      = "Internal-IT"
}

Running the operation as Global Admin.

I am also experiencing this! Did you manage to find a solution @SebRosander ?

So far the only possible avenue I am seeing is running the Terraform via a service principal with those permissions delegated... which I'm not keen on for other reasons...

MattGarnerAWR commented 2 weeks ago

@mhosker - I've seen on other issues it's all related to AzureCLI and the only work around right now is to use a Service Principal instead.