СОЗДАНИЕ ГРУППЫ AAD С ПОМОЩЬЮ AZ DEVOPS

Приветствую моих коллег — сторонников и специалистов в области технологий.

В этой сессии я продемонстрирую, как создать группу Azure Active Directory (AAD) с помощью Azure DevOps.

ВАЖНОЕ ПРИМЕЧАНИЕ:-
Мы можем создать одну или несколько групп AAD с одинаковым именем. Уникальным идентификатором для группы AAD является ID объекта.
ПРИМЕР ИСПОЛЬЗОВАНИЯ:-
Инженер Cloud Engineer НЕ имеет доступа к Azure Active Directory для создания группы (групп).
Облачный инженер НЕ МОЖЕТ ЭЛЕВАТИРОВАТЬ права с помощью PIM (Privileged Identity Management) для создания группы (групп) AAD.
ЦЕЛЬ АВТОМАТИЗАЦИИ:-
Проверить, существует ли группа AAD. Если да, то Pipeline будет FAIL.
Если вышеуказанная проверка выполнена УСПЕШНО, Pipeline создаст группу в Azure Active Directory.
ВАЖНОЕ ПРИМЕЧАНИЕ:-

Конвейер YAML тестируется только на WINDOWS BUILD AGENT!!!

ТРЕБОВАНИЯ:-
  1. Подписка на Azure.
  2. Организация и проект Azure DevOps.
  3. Принципал службы либо назначен глобальным администратором, либо назначена роль Privileged Identity Management (PIM) Azure AD, либо требуются права Microsoft Graph API (Directory.ReadWrite.All: чтение и запись данных каталога).
  4. Подключение службы Azure Resource Manager Service в Azure DevOps.
РЕПОЗИТОРИЙ КОДА:-

arindam0310018 / 26-Aug-2022-DevOps__Create-AAD-Group

26-Aug-2022-DevOps__Create-AAD-Group

Посмотреть на GitHub
КАК ВЫГЛЯДИТ МОЙ КОД: —
ФРАГМЕНТ КОДА ТРУБОПРОВОДА:-
AZURE DEVOPS YAML PIPELINE (azure-pipelines-add-single-aad-group-v1.0.yml):-
trigger:
  none

######################
#DECLARE PARAMETERS:-
######################
parameters:
- name: SubscriptionID
  displayName: Subscription ID Details Follow Below:-
  type: string
  default: 210e66cb-55cf-424e-8daa-6cad804ab604
  values:
  - 210e66cb-55cf-424e-8daa-6cad804ab604

- name: AADGRPNAME
  displayName: Please Provide the AAD Group Name:-
  type: object
  default: 

######################
#DECLARE VARIABLES:-
######################
variables:
  ServiceConnection: amcloud-cicd-service-connection
  BuildAgent: windows-latest

#########################
# Declare Build Agents:-
#########################
pool:
  vmImage: $(BuildAgent)

###################
# Declare Stages:-
###################

stages:

- stage: CREATE_SINGLE_AAD_GROUP 
  jobs:
  - job: CREATE_SINGLE_AAD_GROUP 
    displayName: CREATE SINGLE AAD GROUP
    steps:
    - task: AzureCLI@2
      displayName: VALIDATE AND CREATE AAD GROUP
      inputs:
        azureSubscription: $(ServiceConnection)
        scriptType: ps
        scriptLocation: inlineScript
        inlineScript: |
          az --version
          az account set --subscription ${{ parameters.SubscriptionID }}
          az account show
          $name = az ad group show --group ${{ parameters.AADGRPNAME }} --query "displayName" -o tsv
          if ($name -eq "${{ parameters.AADGRPNAME }}") {
          echo "################################################################################################"
          echo "Azure AD Group ${{ parameters.AADGRPNAME }} EXISTS and hence Cannot Proceed with Creation!!!"
          echo "################################################################################################"
          exit 1
          }
          else {
          echo "############################################################################"
          echo "THE ABOVE WARNING IS A STANDARD MESSAGE WHEN AAD GROUP DOES NOT EXISTS!!!"
          echo "AAD GROUP BY THE NAME ${{ parameters.AADGRPNAME }} WILL BE CREATED"
          echo "############################################################################"
          az ad group create --display-name ${{ parameters.AADGRPNAME }} --mail-nickname ${{ parameters.AADGRPNAME }}   
          echo "##################################################################"
          echo "Azure AD Group ${{ parameters.AADGRPNAME }} created successfully!!!"
          echo "##################################################################"
          }

Вход в полноэкранный режим Выход из полноэкранного режима

Теперь позвольте мне объяснить каждую часть YAML Pipeline для лучшего понимания.

ЧАСТЬ #1:-
НИЖЕ СЛЕДУЕТ ФРАГМЕНТ КОДА ПЕРЕМЕННЫХ ВРЕМЕНИ ВЫПОЛНЕНИЯ КОНВЕЙЕРА:-
######################
#DECLARE PARAMETERS:-
######################
parameters:
- name: SubscriptionID
  displayName: Subscription ID Details Follow Below:-
  type: string
  default: 210e66cb-55cf-424e-8daa-6cad804ab604
  values:
  - 210e66cb-55cf-424e-8daa-6cad804ab604

- name: AADGRPNAME
  displayName: Please Provide the AAD Group Name:-
  type: object
  default: 

Войти в полноэкранный режим Выйти из полноэкранного режима
ЧАСТЬ #2:-
НИЖЕ СЛЕДУЕТ СНИППЕТ КОДА ПЕРЕМЕННЫХ КОНВЕЙЕРА:-
######################
#DECLARE VARIABLES:-
######################
variables:
  ServiceConnection: amcloud-cicd-service-connection
  BuildAgent: windows-latest

Вход в полноэкранный режим Выйти из полноэкранного режима
ПРИМЕЧАНИЕ:-
Пожалуйста, измените значения переменных соответствующим образом.
Весь конвейер YAML строится с использованием параметров и переменных времени выполнения. Никакие значения не закодированы.
ЧАСТЬ #3:-
НИЖЕ СЛЕДУЮТ УСЛОВИЯ И ЛОГИКА, ОПРЕДЕЛЕННЫЕ В КОНВЕЙЕРЕ (КАК УКАЗАНО ВЫШЕ В «ЦЕЛИ АВТОМАТИЗАЦИИ»):-
inlineScript: |
          az --version
          az account set --subscription ${{ parameters.SubscriptionID }}
          az account show
          $name = az ad group show --group ${{ parameters.AADGRPNAME }} --query "displayName" -o tsv
          if ($name -eq "${{ parameters.AADGRPNAME }}") {
          echo "################################################################################################"
          echo "Azure AD Group ${{ parameters.AADGRPNAME }} EXISTS and hence Cannot Proceed with Creation!!!"
          echo "################################################################################################"
          exit 1
          }
          else {
          echo "############################################################################"
          echo "THE ABOVE WARNING IS A STANDARD MESSAGE WHEN AAD GROUP DOES NOT EXISTS!!!"
          echo "AAD GROUP BY THE NAME ${{ parameters.AADGRPNAME }} WILL BE CREATED"
          echo "############################################################################"
          az ad group create --display-name ${{ parameters.AADGRPNAME }} --mail-nickname ${{ parameters.AADGRPNAME }}   
          echo "##################################################################"
          echo "Azure AD Group ${{ parameters.AADGRPNAME }} created successfully!!!"
          echo "##################################################################"
          }

Вход в полноэкранный режим Выйти из полноэкранного режима

ТЕПЕРЬ ПРИШЛО ВРЕМЯ ТЕСТИРОВАНИЯ!!!…..

ТЕСТОВЫЕ СЛУЧАИ:-
ТЕСТОВЫЙ СЛУЧАЙ #1: ГРУППА AAD СУЩЕСТВУЕТ:-
ЖЕЛАЕМЫЙ РЕЗУЛЬТАТ: КОНВЕЙЕР НЕ РАБОТАЕТ, УТВЕРЖДАЯ, ЧТО УПОМЯНУТАЯ ГРУППА AAD СУЩЕСТВУЕТ.
ГРУППА AAD СУЩЕСТВУЕТ:-
ЗНАЧЕНИЕ ПЕРЕМЕННЫХ ВРЕМЕНИ ВЫПОЛНЕНИЯ ТРУБОПРОВОДА:-
СБОЙ ТРУБОПРОВОДА:-
ТЕСТОВЫЙ ПРИМЕР #2: ГРУППА AAD НЕ СУЩЕСТВУЕТ:-
ЖЕЛАЕМЫЙ РЕЗУЛЬТАТ: PIPELINE EXECUTED SUCCESSFULLY CREATING THE AAD GROUP.
КОНВЕЙЕР ВЫПОЛНЕН УСПЕШНО:-

Надеюсь, вам понравилась сессия!!!

Оставайтесь в безопасности | Продолжайте учиться | Распространяйте знания

Оцените статью
devanswers.ru
Добавить комментарий