modules/azure-identity/azure-id-lifecycle/main.tf (43 lines of code) (raw):
terraform {
required_providers {
azuread = {
source = "hashicorp/azuread"
# version = "~> 2.48.0" # -- for module local run -- uncomment
}
}
}
# -- for module local run -- uncomment start
# provider "azuread" {
# }
# -- uncomment end
data "azuread_service_principal" "sso_app" {
object_id = var.az_ad_app_object_id
}
# 3. Create OCI application on Azure AD
resource "azuread_synchronization_secret" "provision_secret" {
service_principal_id = data.azuread_service_principal.sso_app.id
credential {
key = "BaseAddress"
value = var.oci_domain_identity_admin_url
}
credential {
key = "SecretToken"
value = var.oci_confidential_app_secret_token
}
}
resource "azuread_synchronization_job" "provision_job" {
service_principal_id = data.azuread_service_principal.sso_app.id
template_id = "oracleIDCS"
enabled = true
}
# 5. Additional configuration for federated users #########
locals {
sso_service_principal_id = data.azuread_service_principal.sso_app.id
# extracting <job_id> from value "<principal_id>/job/<job_id>"
sso_provision_job_id = split("/", azuread_synchronization_job.provision_job.id)[2]
}
# # # # Step 5 mapping changes # # # #
resource "terraform_data" "azad_sync_job_schema_modify" {
depends_on = [
azuread_synchronization_job.provision_job
]
provisioner "local-exec" {
working_dir = path.module
command = "pip3 install -r scripts/requirements.txt"
}
provisioner "local-exec" {
working_dir = path.module
command = "python3 scripts/azad_sync_job_schema_modify.py -sp '${local.sso_service_principal_id}' -pj '${local.sso_provision_job_id}' "
}
}