Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Copy the below PowerShell script into the text editor of your choice and save it as zipdeploy_appService.ps1.

    Code Block
    languagepowershell
    param(
        $pubProfileFilePath
        ,$zipFilePath
        ,$authority_url = $null
        ,$client_id = $null
        ,$scope = $null
        ,$api_url = $null
        ,$base_eid_url = $null
    )
    
    $ErrorActionPreference = "Stop"
    
    $pubProfile = [xml](gc $pubProfileFilePath)
    $zipPubProfile = $pubProfile.publishData.publishProfile | where { $_.publishMethod -eq "zipdeploy" }
    
    $userAgent = "powershell/1.0"
    $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $zipPubProfile.userName, $zipPubProfile.userPWD)))
    $zipdeployUrl = "https://$($zipPubProfile.publishUrl)/api/zipdeploy"
    $deploymentsUrl = "https://$($zipPubProfile.publishUrl)/api/deployments"
    
    $tempDir = [System.IO.Path]::GetTempPath() + $(New-Guid)
    $tempZipFile = $tempDir + ".zip"
    [System.IO.Directory]::CreateDirectory($tempDir) | Out-Null
    Expand-Archive -Path $zipFilePath -DestinationPath $tempDir
    
    if([System.IO.File]::Exists("$tempDir\index.html")){
        $raw = [System.IO.File]::ReadAllText("$tempDir\index.html")
        $editted = $false
    
        if($raw.Contains("#{AUTHORITY_URL}#") -and ![String]::IsNullOrWhiteSpace($authority_url)){
            $raw = $raw.Replace("#{AUTHORITY_URL}#", $authority_url)
            $editted = $true
        }
    
        if($raw.Contains("#{CLIENT_ID}#") -and ![String]::IsNullOrWhiteSpace($client_id)){
            $raw = $raw.Replace("#{CLIENT_ID}#", $client_id)
            $editted = $true
        }
        
        if($raw.Contains("#{SCOPE}#") -and ![String]::IsNullOrWhiteSpace($scope)){
            $raw = $raw.Replace("#{SCOPE}#", $scope)
            $editted = $true
        }
        
        if($raw.Contains("#{API_URL}#") -and ![String]::IsNullOrWhiteSpace($api_url)){
            $raw = $raw.Replace("#{API_URL}#", $api_url)
            $editted = $true
        }
        
        if($raw.Contains("#{BASE_EID_URL}#") -and ![String]::IsNullOrWhiteSpace($base_eid_url)){
            $raw = $raw.Replace("#{BASE_EID_URL}#", $base_eid_url)
            $editted = $true
        }
    
        if($editted -eq $true){
            [System.IO.File]::WriteAllText("$tempDir\index.html", $raw)
        }
    }
    
    Compress-Archive -Path $tempDir\* -DestinationPath $tempZipFile 
    [System.IO.Directory]::Delete($tempDir, $true)
    
    Invoke-RestMethod -Uri $zipdeployUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -UserAgent $userAgent -Method Post -InFile $tempZipFile
    [System.IO.File]::Delete($tempZipFile)
    
    Invoke-RestMethod -Uri $deploymentsUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -UserAgent $userAgent -Method Get

  2. Set Open an administrative PowerShell session.

  3. Navigate to the directory where you saved the script and execute the script, passing in the values of the following two parameters:

    $pubProfileFilePath – Enter

    pubProfilePath and zipFilePath parameters via the command line, where the value of pubProfilePath is the path to the SCIM App Service Publisher Profile Settings file you downloaded from Azure

    .$zipFilePath – Enter

    , and the value of zipFilePath is the path to the microservice ZIP file

    for the microservice

    you received from EmpowerID

    Open an administrative PowerShell session and .

    The command to execute the script should look similar to that shown in the below image.

    Image Added

The Azure AD SCIM Microservice is now published to your app service. The next step is to set permissions for the managed identity used by the App Service.

Insert excerpt
IL:External Stylesheet
IL:External Stylesheet
nopaneltrue

...