ProHoster > Блог > Nchịkwa > Mepụta ndị ọrụ Google site na PowerShell site na API
Mepụta ndị ọrụ Google site na PowerShell site na API
Ndewo!
Edemede a ga-akọwa mmejuputa mmekọrịta PowerShell na Google API iji megharịa ndị ọrụ G Suite.
Anyị na-eji ọtụtụ ọrụ ime na igwe ojii gafee nzukọ a. Maka ọtụtụ akụkụ, ikike n'ime ha na-agbadata na Google ma ọ bụ Active Directory, n'etiti nke anyị enweghị ike idowe oyiri; ya mere, mgbe onye ọrụ ọhụrụ hapụrụ, ịkwesịrị ịmepụta / mee ka akaụntụ dị na sistemụ abụọ a. Iji megharịa usoro ahụ, anyị kpebiri ide edemede na-anakọta ozi ma ziga ya na ọrụ abụọ ahụ.
Ikike
Mgbe ị na-edepụta ihe achọrọ, anyị kpebiri iji ezigbo ndị nchịkwa mmadụ maka ikike; nke a na-eme ka nyocha nke omume dị mfe ma ọ bụrụ na enwere nnukwu mgbanwe mberede ma ọ bụ kpachapụrụ anya.
Google API na-eji OAuth 2.0 protocol maka nyocha na ikike. Jiri ikpe na nkọwa zuru ezu nwere ike ịhụ ebe a: Iji OAuth 2.0 nweta Google API.
Ahọọrọ m edemede nke ejiri maka ikike na ngwa desktọpụ. Enwekwara nhọrọ iji akaụntụ ọrụ, nke na-adịghị achọ mmegharị na-enweghị isi n'aka onye ọrụ.
Foto dị n'okpuru bụ nkọwa nhazi nke ọnọdụ ahọpụtara site na ibe Google.
Nke mbụ, anyị na-eziga onye ọrụ na ibe nyocha akaụntụ Google, na-akọwapụta paramita GET:
ngwa id
mpaghara ngwa chọrọ ịnweta
adreesị nke a ga-ebugharị onye ọrụ ahụ mgbe emechara usoro ahụ
ụzọ anyị ga-esi melite token
Koodu nchekwa
Usoro nnyefe koodu nkwenye
Mgbe emechara ikike, a ga-atụgharị onye ọrụ ahụ gaa na ibe akọwapụtara na arịrịọ mbụ, yana njehie ma ọ bụ koodu ikike gafere site na paramita GET.
Ngwa (edemede) ga-achọ ịnata paramita ndị a ma, ọ bụrụ na enwetara koodu ahụ, rịọ arịrịọ ndị a iji nweta akara ngosi
Ọ bụrụ na arịrịọ ahụ ziri ezi, Google API ga-alaghachi:
Nweta akara nke anyị nwere ike iji rịọ arịrịọ
Oge nkwado nke akara ngosi a
Achọrọ ume ọhụrụ ka ịweghachi token Access.
Mbụ ị ga-aga na Google API console: nzere - Google API Console, họrọ ngwa achọrọ na na ngalaba nzere mepụta ihe njirimara OAuth nke ndị ahịa. N'ebe ahụ (ma ọ bụ mgbe e mesịrị, na njirimara nke njirimara emepụtara) ịkwesịrị ịkọwapụta adreesị nke ekwere redirection. N'ọnọdụ anyị, ndị a ga-abụ ọtụtụ ntinye localhost nwere ọdụ ụgbọ mmiri dị iche iche (lee n'okpuru).
Iji mee ka ọ dịkwuo mfe ịgụ algọridim edemede, ị nwere ike igosipụta nzọụkwụ mbụ na ọrụ dị iche nke ga-eweghachite Access na nweta ume ọhụrụ maka ngwa ahụ:
Anyị na-edobe ID onye ahịa na nzuzo nke ndị ahịa enwetara na njirimara njirimara ndị ahịa OAuth, yana koodu nkwenye bụ eriri mkpụrụedemede 43 ruo 128 nke a ga-emerịrị site na mkpụrụedemede edobereghị: [AZ] / [az] / [0-9] / "-" / "." / "_" / "~".
A ga-ebunye koodu a ọzọ. Ọ na-ewepụ adịghị ike nke onye na-awakpo nwere ike igbochi nzaghachi eweghachiri dị ka redirect mgbe ikike onye ọrụ gasịrị.
Ị nwere ike izipu nkwenye koodu na arịrịọ dị ugbu a na ederede doro anya (nke na-eme ka ọ bụrụ ihe efu - nke a bụ naanị maka usoro na-akwadoghị SHA256), ma ọ bụ site na ịmepụta hash site na iji SHA256 algọridim, nke a ga-etinyerịrị na BASE64Url (iche. site na Base64 site na mkpụrụedemede tebụl abụọ) na iwepu njedebe akara agwa: =.
Ọzọ, anyị kwesịrị ịmalite ige http na igwe mpaghara iji nweta nzaghachi mgbe ikike, nke a ga-eweghachi dị ka redirect.
A na-arụ ọrụ nchịkwa na ihe nkesa pụrụ iche, anyị enweghị ike iwepụ ohere na ọtụtụ ndị nchịkwa ga-agba ọsọ edemede ahụ n'otu oge ahụ, ya mere ọ ga-ahọrọ ọdụ ụgbọ mmiri maka onye ọrụ ugbu a, mana m kpọmkwem ọdụ ụgbọ mmiri ndị a kpọpụtara n'ihi na a ga-atụkwasịrịrị ha dịka ntụkwasị obi na njikwa API.
access_type=anọghị n'ịntanetị pụtara na ngwa ahụ nwere ike imelite token kubie ume n'onwe ya na-enweghị mmekọrịta onye ọrụ na ihe nchọgharị ahụ, nzaghachi_type=koodu na-esetịpụ usoro ka a ga-esi weghachi koodu ahụ (ntụaka maka usoro ikike ochie, mgbe onye ọrụ depụtaghachiri koodu site na ihe nchọgharị n'ime edemede), oghere na-egosi oke na ụdị nnweta. A ga-ekewarịrị ha site na oghere ma ọ bụ %20 (dị ka URL Encoding si dị). Enwere ike ịhụ ndepụta mpaghara ohere nwere ụdị ebe a: Oke OAuth 2.0 maka Google API.
Mgbe ị nwetachara koodu ikike, ngwa ahụ ga-eweghachite ozi dị nso na ihe nchọgharị ahụ, kwụsị ige ntị na ọdụ ụgbọ mmiri wee ziga arịrịọ POST iji nweta akara ngosi ahụ. Anyị na-egosi n'ime ya ID na nzuzo akọwapụtara na mbụ sitere na API console, adreesị nke a ga-atụgharị onye ọrụ na Grant_type dịka nkọwapụta protocol siri dị.
Na nzaghachi, anyị ga-enweta akara Access, oge nkwado ya n'ime sekọnd, yana akara ume ọhụrụ, nke anyị nwere ike imelite akara Access.
Ngwa ahụ ga-echekwa akara ngosi na ebe nchekwa nwere ogologo ndụ, yabụ ruo mgbe anyị kagburu ohere enwetara, ngwa ahụ agaghị eweghachi akara ngosi ume ọhụrụ. Na njedebe, agbakwunyere m arịrịọ ka ịkagbu akara ahụ; ọ bụrụ na emezughị ngwa ahụ nke ọma ma weghachighị akara ume ọhụrụ ahụ, ọ ga-amalite usoro ahụ ọzọ (anyị weere na ọ dịghị mma ịchekwa akara ngosi na mpaghara na njedebe, anyị na-eme ya). 'Achọghị iji cryptography mee ka ihe mgbagwoju anya ma ọ bụ mepee ihe nchọgharị ugboro ugboro).
Dịka ị chọpụtala, mgbe ị na-akagbu akara, a na-eji Invoke-WebRequest. N'adịghị ka Invoke-RestMethod, ọ naghị eweghachi data enwetara n'ụdị enwere ike iji wee gosi ọkwa arịrịọ a.
Na-esote, edemede ahụ na-arịọ gị ka ịbanye aha mbụ na aha ikpeazụ nke onye ọrụ, na-emepụta nbanye + email.
Arịrịọ
Arịrịọ ọzọ ga-abụ - nke mbụ, ịkwesịrị ịlele ma onye ọrụ nwere otu nbanye adịlarị iji nweta mkpebi maka imepụta nke ọhụrụ ma ọ bụ mee ka nke dị ugbu a nwee ike.
Ekpebiri m itinye arịrịọ niile n'ụdị otu ọrụ yana nhọrọ, na-eji mgba ọkụ:
Na arịrịọ ọ bụla, ịkwesịrị izipu nkụnye eji isi mee ikike nwere ụdị akara yana akara nnweta n'onwe ya. Ka ọ dị ugbu a, ụdị token na-abụ mgbe niile. N'ihi na anyị kwesịrị ịlele na token ahụ akwụsịbeghị ma melite ya mgbe otu awa gachara site na oge ewepụtara ya, akọwapụtaara m arịrịọ maka ọrụ ọzọ na-eweghachi akara Access. Otu mpempe koodu ahụ dị na mmalite nke edemede mgbe ị na-anata akara nnweta mbụ:
Arịrịọ ajụjụ email:$ ga-ajụ API ka ọ chọọ onye ọrụ nwere ozi-e ahụ kpọmkwem, gụnyere utu aha. Ị nwekwara ike iji wildcard: =,:, :{PREFIX}*.
Iji nweta data, jiri usoro arịrịọ GET, tinye data (ịmepụta akaụntụ ma ọ bụ tinye onye otu n'otu) - POST, imelite data dị - PUT, hichapụ ndekọ (dịka ọmụmaatụ, onye otu sitere na otu) - HIchapụ.
Edemede a ga-ajụkwa maka nọmba ekwentị (ụdọ na-akwadoghị) yana maka itinye n'ime otu nkesa mpaghara. Ọ na-ekpebi ngalaba nhazi nke onye ọrụ kwesịrị ịnwe dabere na Active Directory OU ahọpụtara wee wepụta paswọọdụ:
do {
$phone = Read-Host "Телефон в формате +7хххххххх"
} while (-not $phone)
do {
$moscow = Read-Host "В Московский офис? (y/n) "
} while (-not (($moscow -eq 'y') -or ($moscow -eq 'n')))
$orgunit = '/'
if ($OU -like "*OU=Delivery,OU=Users,OU=ROOT,DC=rocket,DC=local") {
Write-host "Будет создана в /Team delivery"
$orgunit = "/Team delivery"
}
$Password = -join ( 48..57 + 65..90 + 97..122 | Get-Random -Count 12 | % {[char]$_})+"*Ba"
Ma mgbe ahụ ọ malitere ịchịkwa akaụntụ ahụ:
$query = @{
email = $email
givenName = $firstname
familyName = $lastname
password = $password
phone = $phone
orgunit = $orgunit
}
if ($GMailExist) {
Write-Host "Запускаем изменение аккаунта" -f mag
(GoogleQuery 'UpdateAccount' $query) | fl
write-host "Не забудь проверить группы у включенного $Username в Google."
} else {
Write-Host "Запускаем создание аккаунта" -f mag
(GoogleQuery 'CreateAccount' $query) | fl
}
if ($moscow -eq "y"){
write-host "Добавляем в группу moscowoffice"
$query = @{
groupkey = '[email protected]'
email = $email
}
(GoogleQuery 'AddMember' $query) | fl
}
Ọrụ maka imelite na ịmepụta akaụntụ nwere syntax yiri ya; ọ bụghị mpaghara niile agbakwunyere ka achọrọ; na ngalaba nwere nọmba ekwentị, ịkwesịrị ịkọwapụta usoro nwere ike ịnwe ihe ruru otu ndekọ na ọnụọgụ na ụdị ya.
Ka ị ghara ịnata njehie mgbe ị na-agbakwunye onye ọrụ na otu, anyị nwere ike buru ụzọ lelee ma ọ bụlarị onye otu a site n'inweta ndepụta nke ndị otu ma ọ bụ ihe mejupụtara n'aka onye ọrụ n'onwe ya.
Ịjụ ajụjụ gbasara otu onye ọrụ agaghị abụ ugboro ugboro ma ọ ga-egosi naanị otu onye. Gụnyere onye ọrụ n'ime otu nne na nna nwerelarị otu ụmụaka nke onye ọrụ so na ya ga-aga nke ọma.
nkwubi
Naanị ihe fọdụrụ bụ izipu onye ọrụ paswọọdụ maka akaụntụ ọhụrụ ahụ. Anyị na-eme nke a site na SMS, na-eziga ozi izugbe na ntuziaka na nbanye na email nkeonwe, nke, yana nọmba ekwentị, nyere site na ngalaba ọrụ. Dị ka ihe ọzọ, ị nwere ike ichekwa ego na zipu paswọọdụ gị na nzuzo telegram nkata, nke nwekwara ike na-atụle nke abụọ ihe (MacBooks ga-abụ ihe dị iche).
Daalụ maka ịgụ akwụkwọ ruo ọgwụgwụ. Obi ga-adị m ụtọ ịhụ aro maka imeziwanye ụdị edemede edemede ma chọọ ka ị nweta mperi ole na ole mgbe ị na-ede edemede =)
Ndepụta njikọ ndị nwere ike ịba uru na isiokwu ma ọ bụ zaa ajụjụ naanị: