Bagikan melalui


Menyebarkan aplikasi web dalam alur pengembangan dan mengonfigurasi autentikasi App Service

Artikel ini menjelaskan cara menyiapkan alur di Azure Pipelines untuk membangun dan menyebarkan aplikasi web ke Azure dan mengaktifkan autentikasi bawaan Azure App Service.

Anda akan mempelajari cara:

  • Mengonfigurasi sumber daya Azure menggunakan skrip di Azure Pipelines
  • Membangun aplikasi web dan menyebarkan ke App Service menggunakan Azure Pipelines
  • Membuat pendaftaran aplikasi Microsoft Entra di Azure Pipelines
  • Mengonfigurasi autentikasi bawaan App Service di Azure Pipelines.

Prasyarat

Membuat sampel aplikasi web ASP.NET Core

Buat aplikasi sampel dan dorong ke repositori GitHub Anda.

Membuat dan mengkloning repo di GitHub

Buat repositori baru di GitHub, tentukan nama seperti "PipelinesTest". Atur ke Privat dan tambahkan file .gitignore dengan .getignore template: VisualStudio.

Buka jendela terminal dan ubah direktori kerja saat ini ke lokasi tempat Anda menginginkan direktori kloning:

cd c:\temp\

Masukkan perintah berikut untuk mengkloning repositori:

git clone https://github.com/YOUR-USERNAME/PipelinesTest
cd PipelinesTest

Buat aplikasi web ASP.NET Core

  1. Buka jendela terminal pada komputer Anda ke direktori kerja. Buat aplikasi web ASP.NET Core baru menggunakan perintah webapp baru dotnet , lalu ubah direktori menjadi aplikasi yang baru dibuat.

    dotnet new webapp -n PipelinesTest --framework net7.0
    cd PipelinesTest
    dotnet new sln
    dotnet sln add .
    
  2. Dari sesi terminal yang sama, jalankan aplikasi secara lokal menggunakan perintah dotnet run.

    dotnet run --urls=https://localhost:5001/
    
  3. Untuk memverifikasi bahwa aplikasi web berjalan, buka browser web dan navigasikan ke aplikasi di https://localhost:5001.

Anda melihat templat aplikasi web ASP.NET Core ditampilkan di dalam halaman tersebut.

Cuplikan layar yang memperlihatkan aplikasi web berjalan secara lokal.

Masukkan CTRL-C di baris perintah untuk berhenti menjalankan aplikasi web.

Dorong sampel ke GitHub

Terapkan perubahan Anda dan dorong ke GitHub:

git add .
git commit -m "Initial check-in"
git push origin main

Menyiapkan lingkungan Azure DevOps Anda

Masuk ke organisasi Azure DevOps Anda (https://dev.azure.com/{yourorganization}).

Buat proyek baru:

  1. Pilih Proyek baru.
  2. Masukkan Nama proyek, seperti "PipelinesTest".
  3. Pilih Visibilitas privat .
  4. Pilih Buat.

Membuat alur baru

Setelah proyek dibuat, tambahkan alur:

  1. Di panel navigasi kiri, pilih Alur-Alur>, lalu pilih Buat Alur.
  2. Pilih GitHub YAML.
  3. Pada tab Sambungkan , pilih GitHub YAML. Jika diminta, masukkan kredensial GitHub Anda.
  4. Saat daftar repositori muncul, pilih repositori Anda PipelinesTest .
  5. Anda mungkin diarahkan ke GitHub untuk menginstal aplikasi Azure Pipelines. Jika demikian, pilih Setujui & instal.
  6. Di Konfigurasikan alur Anda, pilih alur Starter.
  7. Sebuah pipeline baru dengan konfigurasi dasar muncul. Konfigurasi default menggunakan agen yang dihosting Microsoft.
  8. Saat Anda siap, pilih Simpan dan jalankan. Untuk menerapkan perubahan Anda ke GitHub dan memulai alur, pilih Terapkan langsung ke cabang utama dan pilih Simpan dan jalankan untuk kedua kalinya. Jika diminta untuk memberikan izin dengan pesan seperti Alur ini memerlukan izin untuk mengakses sumber daya sebelum eksekusi ini dapat dilanjutkan, pilih Tampilkan dan ikuti perintah untuk mengizinkan akses.

Tambahkan tahap build dan tugas build ke dalam alur kerja Anda

Setelah memiliki alur yang berfungsi, Anda dapat menambahkan tahap build dan membangun tugas untuk membangun aplikasi web.

Perbarui azure-pipelines.yml dan ganti konfigurasi alur dasar dengan yang berikut ini:

trigger:
- main

stages:
- stage: Build
  jobs: 
  - job: Build

    pool:
      vmImage: 'windows-latest'

    variables:
      solution: '**/*.sln'
      buildPlatform: 'Any CPU'      
      buildConfiguration: 'Release'      

    steps:
    - task: NuGetToolInstaller@1

    - task: NuGetCommand@2
      inputs:
        restoreSolution: '$(solution)'

    - task: VSBuild@1
      inputs:
        solution: '$(solution)'
        msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
        platform: '$(buildPlatform)'
        configuration: '$(buildConfiguration)'
        
    - task: PublishBuildArtifacts@1
      inputs:
        PathtoPublish: '$(Build.ArtifactStagingDirectory)'
        ArtifactName: 'drop'
        publishLocation: 'Container'

Simpan perubahan Anda dan jalankan pipeline.

Tahap Build didefinisikan untuk membangun aplikasi web. Di bawah bagian steps, Anda akan melihat berbagai tugas untuk membangun aplikasi web dan menerbitkan file hasil ke alur kerja.

Membuat koneksi layanan

Tambahkan koneksi layanan sehingga alur Anda dapat menyambungkan dan menyebarkan sumber daya ke Azure:

  1. Pilih Pengaturan proyek.
  2. Di panel navigasi kiri, pilih Koneksi layanan lalu Buat koneksi layanan.
  3. Pilih Azure Resource Manager lalu Berikutnya.
  4. Pilih Prinsipal Layanan (otomatis), dan kemudian Berikutnya.
  5. Pilih Langganan untuk tingkat cakupan dan pilih langganan Azure Anda. Masukkan nama koneksi layanan seperti "PipelinesTestServiceConnection" dan pilih Berikutnya. Nama koneksi layanan digunakan dalam langkah-langkah berikut.

Aplikasi juga dibuat di penyewa Microsoft Entra Anda yang menyediakan identitas untuk pipeline tersebut. Anda memerlukan nama tampilan pendaftaran aplikasi di langkah selanjutnya. Untuk menemukan nama tampilan:

  1. Masuk ke pusat admin Microsoft Entra setidaknya sebagai Pengembang Aplikasi.
  2. Telusuri pendaftaranAplikasi>Entra ID>Semua aplikasi.
  3. Temukan nama tampilan pendaftaran aplikasi, yang berbentuk {organization}-{project}-{guid}.

Berikan izin koneksi layanan untuk mengakses alur:

  1. Di panel navigasi kiri, pilih Pengaturan proyek lalu Koneksi layanan.
  2. Pilih koneksi layanan PipelinesTestServiceConnection , lalu Elipsis, lalu Keamanan dari menu drop-down.
  3. Di bagian Izin pipeline, pilih Tambahkan pipeline dan pilih koneksi layanan PipelinesTest dari daftar.

Menambahkan grup variabel

Tahap DeployAzureResources yang Anda buat di bagian berikutnya menggunakan beberapa nilai untuk membuat dan menyebarkan sumber daya ke Azure:

  • ID penyewa Microsoft Entra (temukan di pusat admin Microsoft Entra).
  • Wilayah, atau lokasi, tempat sumber daya disebarkan.
  • Nama grup sumber daya.
  • Nama paket layanan App Service.
  • Nama aplikasi web.
  • Nama koneksi layanan yang digunakan untuk menyambungkan alur ke Azure. Dalam alur, nilai ini digunakan untuk langganan Azure.

Buat grup variabel dan tambahkan nilai untuk digunakan sebagai variabel dalam alur.

Pilih Pustaka di panel navigasi kiri dan buat Kelompok Variabel baru. Beri nama "AzureResourcesVariableGroup".

Tambahkan variabel dan nilai berikut:

Nama variabel Contoh nilai
TEMPAT centralus
TENANTID {tenant-id}
RESOURCEGROUPNAME pipelinetestgroup
SVCPLANNAME rencana uji jalur
WEBAPPNAMETEST pipelinetestwebapp
AZURESUBSCRIPTION PipelinesTestServiceConnection

Pilih Simpan.

Berikan izin alur untuk mengakses grup variabel. Di halaman grup variabel, pilih Izin alur, tambahkan alur Anda, lalu tutup jendela.

Perbarui azure-pipelines.yml dan tambahkan grup variabel ke alur.

variables: 
- group: AzureResourcesVariableGroup
   
trigger:
- main

stages:
- stage: Build
  jobs: 
  - job: Build

    pool:
      vmImage: 'windows-latest'
  

Simpan perubahan Anda dan jalankan pipeline.

Menyebarkan sumber daya Azure

Selanjutnya, tambahkan tahap ke pipeline yang menyebarkan sumber daya Azure. Alur menggunakan skrip sebaris untuk membuat instans App Service. Pada langkah berikutnya, skrip inline membuat pendaftaran aplikasi Microsoft Entra untuk mengotentikasi Layanan Aplikasi. Skrip bash Azure CLI digunakan karena Azure Resource Manager (dan tugas Azure Pipelines) tidak dapat membuat pendaftaran aplikasi.

Skrip sebaris dijalankan dalam konteks alur kerja, tetapkan peran Application.Administrator ke aplikasi agar skrip dapat membuat pendaftaran aplikasi.

  1. Masuk ke pusat admin Microsoft Entra.
  2. Telusuri ke Entra ID>Peran & admin.
  3. Pilih Administrator Aplikasi dari daftar peran bawaan lalu Tambahkan penugasan.
  4. Cari pendaftaran aplikasi pipeline berdasarkan nama tampilan.
  5. Pilih pendaftaran aplikasi dari daftar dan pilih Tambahkan.

Perbarui azure-pipelines.yml untuk menambahkan skrip sebaris, yang membuat grup sumber daya di Azure, membuat paket App Service, dan membuat instans App Service.

variables: 
- group: AzureResourcesVariableGroup
   
trigger:
- main

stages:
- stage: Build
  jobs: 
  - job: Build

    pool:
      vmImage: 'windows-latest'

    variables:
      solution: '**/*.sln'
      buildPlatform: 'Any CPU'
      buildConfiguration: 'Release'      

    steps:
    - task: NuGetToolInstaller@1

    - task: NuGetCommand@2
      inputs:
        restoreSolution: '$(solution)'

    - task: VSBuild@1
      inputs:
        solution: '$(solution)'
        msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
        platform: '$(buildPlatform)'
        configuration: '$(buildConfiguration)'
        
    - task: PublishBuildArtifacts@1
      inputs:
        PathtoPublish: '$(Build.ArtifactStagingDirectory)'
        ArtifactName: 'drop'
        publishLocation: 'Container'  
    
- stage: DeployAzureResources
  displayName: 'Deploy resources to Azure'
  dependsOn: Build
  condition: |
    succeeded()    
  jobs: 
  - job: DeployAzureResources
    pool: 
      vmImage: 'windows-latest'
    steps:
      - task: AzureCLI@2
        inputs:
          azureSubscription: $(AZURESUBSCRIPTION)
          scriptType: 'bash'
          scriptLocation: 'inlineScript'
          inlineScript: |
            # Create a resource group
            az group create --location $LOCATION --name $RESOURCEGROUPNAME
            echo "Created resource group $RESOURCEGROUPNAME"    

            # Create App Service plan
            az appservice plan create -g $RESOURCEGROUPNAME -n $SVCPLANNAME --sku FREE
            echo "Created App Service plan $SVCPLANNAME"
            
            ### Create Test resources
            # create and configure an Azure App Service web app
            az webapp create -g $RESOURCEGROUPNAME -p $SVCPLANNAME -n $WEBAPPNAMETEST -r "dotnet:7"
                        
        name: DeploymentScript

Simpan perubahan Anda dan jalankan pipeline. Di portal Microsoft Azure, buka Grup sumber daya dan verifikasi bahwa grup sumber daya baru dan instans App Service dibuat.

Menyebarkan aplikasi web ke App Service

Sekarang setelah alur Anda sudah membuat sumber daya di Azure, terdapat tahap untuk dilangsungkan penyebaran aplikasi web ke App Service.

Perbarui azure-pipelines.yml untuk menambahkan tahap penyebaran.

variables: 
- group: AzureResourcesVariableGroup
   
trigger:
- main

stages:
- stage: Build
  jobs: 
  - job: Build

    pool:
      vmImage: 'windows-latest'

    variables:
      solution: '**/*.sln'
      buildPlatform: 'Any CPU'
      buildConfiguration: 'Release'      

    steps:
    - task: NuGetToolInstaller@1

    - task: NuGetCommand@2
      inputs:
        restoreSolution: '$(solution)'

    - task: VSBuild@1
      inputs:
        solution: '$(solution)'
        msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
        platform: '$(buildPlatform)'
        configuration: '$(buildConfiguration)'
        
    - task: PublishBuildArtifacts@1
      inputs:
        PathtoPublish: '$(Build.ArtifactStagingDirectory)'
        ArtifactName: 'drop'
        publishLocation: 'Container'  
    
- stage: DeployAzureResources
  displayName: 'Deploy resources to Azure'
  dependsOn: Build
  condition: |
    succeeded()    
  jobs: 
  - job: DeployAzureResources
    pool: 
      vmImage: 'windows-latest'
    steps:
      - task: AzureCLI@2
        inputs:
          azureSubscription: $(AZURESUBSCRIPTION)
          scriptType: 'bash'
          scriptLocation: 'inlineScript'
          inlineScript: |
            # Create a resource group
            az group create --location $LOCATION --name $RESOURCEGROUPNAME
            echo "Created resource group $RESOURCEGROUPNAME"    

            # Create App Service plan
            az appservice plan create -g $RESOURCEGROUPNAME -n $SVCPLANNAME --sku FREE
            echo "Created App Service plan $SVCPLANNAME"
            
            ### Create Test resources
            # create and configure an Azure App Service web app
            az webapp create -g $RESOURCEGROUPNAME -p $SVCPLANNAME -n $WEBAPPNAMETEST -r "dotnet:7"
            
        name: DeploymentScript

- stage: DeployWebApp
  displayName: 'Deploy the web app'
  dependsOn: DeployAzureResources
  condition: |
    succeeded()    
  
  jobs: 
  - job: DeployWebApp
    displayName: 'Deploy Web App'
    pool: 
      vmImage: 'windows-latest'
    
    steps:
      
    - task: DownloadBuildArtifacts@0
      inputs:
        buildType: 'current'
        downloadType: 'single'
        artifactName: 'drop'
        downloadPath: '$(System.DefaultWorkingDirectory)'
    - task: AzureRmWebAppDeployment@4
      inputs:
        ConnectionType: 'AzureRM'
        azureSubscription: $(AZURESUBSCRIPTION)
        appType: 'webApp'
        WebAppName: '$(WEBAPPNAMETEST)'
        packageForLinux: '$(System.DefaultWorkingDirectory)/**/*.zip'

Simpan perubahan Anda dan jalankan alur.

Tahap DeployWebApp didefinisikan dengan beberapa tugas:

Silakan lihat situs web yang telah dideploy di App Service. Navigasi ke App Service Anda dan pilih domain Default instans: https://pipelinetestwebapp.azurewebsites.net.

Cuplikan layar yang memperlihatkan URL domain default.

Pipelinetestwebapp telah berhasil disebarkan ke App Service.

Cuplikan layar yang memperlihatkan aplikasi web yang berjalan di Azure.

Mengonfigurasi autentikasi layanan aplikasi

Sekarang setelah alur menyebarkan aplikasi web ke App Service, Anda dapat mengonfigurasi autentikasi bawaan App Service. Ubah skrip sebaris dalam DeployAzureResources menjadi:

  1. Buat pendaftaran aplikasi Microsoft Entra sebagai identitas untuk aplikasi web Anda. Untuk membuat pendaftaran aplikasi, perwakilan layanan untuk menjalankan alur memerlukan peran Administrator Aplikasi dalam direktori.
  2. Dapatkan rahasia dari aplikasi.
  3. Konfigurasikan pengaturan rahasia untuk aplikasi web App Service.
  4. Konfigurasikan URI pengalihan, URI halaman beranda, dan pengaturan penerbit untuk aplikasi web App Service.
  5. Konfigurasikan pengaturan lain di aplikasi web.
variables: 
- group: AzureResourcesVariableGroup
   
trigger:
- main

stages:
- stage: Build
  jobs: 
  - job: Build

    pool:
      vmImage: 'windows-latest'

    variables:
      solution: '**/*.sln'
      buildPlatform: 'Any CPU'
      buildConfiguration: 'Release'      

    steps:
    - task: NuGetToolInstaller@1

    - task: NuGetCommand@2
      inputs:
        restoreSolution: '$(solution)'

    - task: VSBuild@1
      inputs:
        solution: '$(solution)'
        msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
        platform: '$(buildPlatform)'
        configuration: '$(buildConfiguration)'
        
    - task: PublishBuildArtifacts@1
      inputs:
        PathtoPublish: '$(Build.ArtifactStagingDirectory)'
        ArtifactName: 'drop'
        publishLocation: 'Container'  
    
- stage: DeployAzureResources
  displayName: 'Deploy resources to Azure'
  dependsOn: Build
  condition: |
    succeeded()    
  jobs: 
  - job: DeployAzureResources
    pool: 
      vmImage: 'windows-latest'
    steps:
      - task: AzureCLI@2
        inputs:
          azureSubscription: $(AZURESUBSCRIPTION)
          scriptType: 'bash'
          scriptLocation: 'inlineScript'
          inlineScript: |
            # Create a resource group
            az group create --location $LOCATION --name $RESOURCEGROUPNAME
            echo "Created resource group $RESOURCEGROUPNAME"    

            # Create App Service plan
            az appservice plan create -g $RESOURCEGROUPNAME -n $SVCPLANNAME --sku FREE
            echo "Created App Service plan $SVCPLANNAME"
            
            ### Create Test resources
            # create and configure an Azure App Service web app
            az webapp create -g $RESOURCEGROUPNAME -p $SVCPLANNAME -n $WEBAPPNAMETEST -r "dotnet:7"

            redirectUriTest="https://$WEBAPPNAMETEST.azurewebsites.net/.auth/login/aad/callback"
            homePageUrlTest="https://$WEBAPPNAMETEST.azurewebsites.net"
            issuerTest="https://sts.windows.net/$TENANTID"
            
            # Required resource access.  Access Microsoft Graph with delegated User.Read permissions.
            cat > manifest.json << EOF
            [
                {
                    "resourceAppId": "00000003-0000-0000-c000-000000000000",
                    "resourceAccess": [
                        {
                            "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
                            "type": "Scope"
                        }
                    ]
                }
            ]
            EOF
            
            # Create app registration for App Service authentication
            appIdTest=$(az ad app create --display-name $WEBAPPNAMETEST --sign-in-audience AzureADMyOrg --enable-id-token-issuance true --query appId --output tsv)
            echo "Created app registration $appIdTest"

            # Set identifier URI, homepage, redirect URI, and resource access
            az ad app update --id $appIdTest --identifier-uris api://$appIdTest --web-redirect-uris $redirectUriTest  --web-home-page-url $homePageUrlTest --required-resource-accesses @manifest.json
            echo "Updated app $appIdTest"

            # Get secret from the app for App Service authentication
            secretTest=$(az ad app credential reset --id $appIdTest --query password --output tsv)
            echo "Added secret to app $appIdTest"

            az config set extension.use_dynamic_install=yes_without_prompt
            az extension add --name authV2                      

            az webapp config appsettings set --name $WEBAPPNAMETEST --resource-group $RESOURCEGROUPNAME --slot-settings MICROSOFT_PROVIDER_AUTHENTICATION_SECRET=$secretTest
            echo "Updated settings for web app $WEBAPPNAMETEST"

            az webapp auth microsoft update --name $WEBAPPNAMETEST --resource-group $RESOURCEGROUPNAME --client-id $appIdTest --secret-setting MICROSOFT_PROVIDER_AUTHENTICATION_SECRET --allowed-audiences $redirectUriTest  --issuer $issuerTest
            echo "Updated authentication settings for $WEBAPPNAMETEST"
            
        name: DeploymentScript

- stage: DeployWebApp
  displayName: 'Deploy the web app'
  dependsOn: DeployAzureResources
  condition: |
    succeeded()    
  
  jobs: 
  - job: DeployWebApp
    displayName: 'Depoy Web App'
    pool: 
      vmImage: 'windows-latest'
    
    steps:
      
    - task: DownloadBuildArtifacts@0
      inputs:
        buildType: 'current'
        downloadType: 'single'
        artifactName: 'drop'
        downloadPath: '$(System.DefaultWorkingDirectory)'
    - task: AzureRmWebAppDeployment@4
      inputs:
        ConnectionType: 'AzureRM'
        azureSubscription: $(AZURESUBSCRIPTION)
        appType: 'webApp'
        WebAppName: '$(WEBAPPNAMETEST)'
        packageForLinux: '$(System.DefaultWorkingDirectory)/**/*.zip'

Simpan perubahan Anda dan jalankan alur.

Memverifikasi akses terbatas ke aplikasi web

Untuk memverifikasi bahwa akses ke aplikasi Anda terbatas pada pengguna di organisasi Anda, navigasikan ke App Service Anda dan pilih domain Default instans: https://pipelinetestwebapp.azurewebsites.net.

Anda akan diarahkan ke halaman masuk yang aman, memverifikasi bahwa pengguna yang tidak diautentikasi tidak diizinkan mengakses situs. Masuk sebagai pengguna di organisasi Anda untuk mendapatkan akses ke situs.

Anda juga dapat memulai browser baru dan mencoba masuk dengan menggunakan akun pribadi untuk memverifikasi bahwa pengguna di luar organisasi tidak memiliki akses.

Membersihkan sumber daya

Bersihkan sumber daya Azure dan lingkungan Azure DevOps sehingga Anda tidak dikenakan biaya untuk sumber daya setelah selesai.

Menghapus grup sumber daya

Pilih Grup sumber daya dari menu dan pilih grup sumber daya yang berisi aplikasi web yang Anda sebarkan.

Pilih Hapus grup sumber daya untuk menghapus grup sumber daya dan semua sumber daya.

Menonaktifkan alur atau menghapus proyek Azure DevOps

Anda membuat proyek yang menunjuk ke repositori GitHub. Alur dipicu untuk berjalan setiap kali Anda mendorong perubahan ke repositori GitHub Anda, menggunakan menit build gratis atau sumber daya Anda.

Opsi 1: Nonaktifkan alur Anda

Pilih opsi ini jika Anda ingin menyimpan proyek dan alur build Anda untuk referensi di masa mendatang. Anda dapat mengaktifkan kembali alur Anda nanti jika perlu.

  1. Di proyek Azure DevOps Anda, pilih Alur lalu pilih alur Anda.
  2. Pilih tombol elipsis di ujung kanan, lalu pilih pengaturan .
  3. Pilih Dinonaktifkan, lalu pilih Simpan. Alur Anda tidak akan lagi memproses permintaan menjalankan baru.

Opsi 2: Hapus proyek Anda

Pilih opsi ini jika Anda tidak memerlukan proyek DevOps untuk referensi di masa mendatang. Ini menghapus proyek Azure DevOps Anda.

  1. Navigasikan ke proyek Azure DevOps Anda.
  2. Pilih Pengaturan proyek di sudut kiri bawah.
  3. Di bawah Gambaran Umum, gulir ke bawah ke bagian bawah halaman lalu pilih Hapus.
  4. Ketik nama proyek Anda di kotak teks, lalu pilih Hapus.

Menghapus pendaftaran aplikasi di ID Microsoft Entra

Di pusat admin Microsoft Entra, pilihPendaftaran> Aplikasi Id Entra>Semua aplikasi.

Pilih aplikasi untuk pipeline, nama tampilan memiliki format {organization}-{project}-{guid}, dan hapus.

Pilih aplikasi untuk aplikasi web, pipelinetestwebapp, dan hapus.

Langkah selanjutnya

Pelajari selengkapnya tentang: