Poradniki

Ten artykuł ma 275 słów.

Łączenie z Active Directory

Czego potrzebujesz?

  1. OU, z którego będziesz chciał(a) zaciągnąć użytkowników. W tym artykule będziemy używać “OU=My Company,DC=ad-lab-domain,DC=local”
  2. Tokenu do połączenia z okKoala. Zaloguj się na swoje konto administatora okKoala, wejdź w Ustawienia > Integracja > Token API > Pokaż.

Krok 1: Testowanie danych

Przygotuj skrypt Powershell, wstaw i uruchom poniższy kod. Uwzględnij, z jakiego OU chcesz pobrać użytkowników.

$users = Get-ADUser -Filter * -SearchBase "OU=My Company,DC=ad-lab-domain,DC=local"

foreach ($user in $users) {
    $body = @{
        "email" = $user.UserPrincipalName;
        "first_name" = $user.GivenName;
        "last_name" = $user.Surname;
    }
    $body
}

W naszym przykładzie mamy taki wynik:

Name                           Value
----                           -----
email                          john.smith@ad-lab-domain.local
last_name                      Smith
first_name                     John
email                          jane.doe@ad-lab-domain.local
last_name                      Doe
first_name                     Jane
email                          jan.kowalski@ad-lab-domain.local
last_name                      Kowalski
first_name                     Jan

Być może będziesz musiał(a) zmienić parametr, żeby np. email nie był pobierany z UPN ($user.UserPrincipalName), ale z pola email ($user.EmailAddress).

Krok 2: Utworzenia połączenia

Zmodyfikuj poniższy skrypt zgodnie z tym, co zrobiłeś/aś w poprzednim krokiem. W miejsce <TOKEN Z KOALI> wstaw swój token administratora z okKoala.

$headers = @{
    "Authorization"= "<TOKEN Z KOALI>";
}

$users = Get-ADUser -Filter * -SearchBase "OU=My Company,DC=ad-lab-domain,DC=local"

foreach ($user in $users) {
    $body = @{
        "email" = $user.UserPrincipalName;
        "first_name" = $user.GivenName;
        "last_name" = $user.Surname;
    }

    try {
        $resp = Invoke-WebRequest -Uri "https://api.okkoala.com/users" `
            -Headers $headers `
            -Method POST `
            -Body ($body|ConvertTo-Json) `
            -ContentType "application/json" `

        $resp

        If ($resp.StatusCode -gt 199 -and $resp.StatusCode -lt 300) {
            $status = "OK"
        } Else {
            $status = "Error"
        }
        Write-Host $params.email ":" $status
    } catch {
        $_.Exception
    }
}

Uruchom skrypt, użytkownicy pojawią się w panelu okKoala. Tam możesz przydzielić licencje.

(Opcjonalnie) Krok 3: Utwórz harmonogram synchronizacji

Przygotowany skrypt możesz dodać do zadań na serwerze. Postępuj zgodnie z dokumentacją Microsoft:

https://learn.microsoft.com/pl-pl/training/modules/create-manage-scheduled-jobs-use-windows-powershell/