November 28, 2020
  • 11:10 pm Microsoft 365 – Salasanan resetointi itsepalveluna (SSPR)
  • 9:12 pm Exchange Online – Roskapostin estäminen top-level domainin (TLD) perusteella
  • 11:26 pm Windows 10 – Fiddler Web Debugger Proxyn asennus ja käyttöönotto
  • 3:00 am Microsoft 365 -käyttäjätilin kaappaamiseen reagointi – Tilanteen normalisointi
  • 12:40 am Microsoft 365 -käyttäjätilin kaappaamiseen reagointi – Tilin turvaaminen

Johdanto

Käyttäjän piilottaminen Outlookin osoitteistosta on helppoa, mutta osoitteistojen piilottaminen käyttäjiltä ei olekaan yhtä suoraviivaista. Siihen ei ole mitään suoraa sisäänrakennettua ominaisuutta Office 365 -palvelussa ja Exchange Onlinessa. Tavoitteenani on siis saada kaikki yleiset osoitteistot piilotettua tietyltä käyttäjältä, jotta hän ei voi selata organisaation henkilöstön nimiä, sähköpostiosoitteita, puhelinnumeroita yms.

Näin voidaan haluta esimerkiksi silloin, jos tehdään ulkoista organisaatiota varten Office 365 -tili, eikä haluta, että ulkoista organisaatiota edustava väki näkee turhaan liikaa tietoja omasta organisaatiosta. Jaettavaa tiliä voidaan sitten käyttää esimerkiksi yhteisiin huonekalenterivarauksiin.


Address Book Policy

Address Book Policy (ABP) mahdollistaa sen, että käyttäjiä voidaan segmentoida tiettyihin ryhmiin, joille näytetään erilaisia kustomoituja osoitelistoja.

Esimerkiksi itse tavoittelen sitä, että organisaation sisäinen henkilöstö näkee osoitelistat normaalisti kaikkine tietoineen, mutta ulkoiselle organisaatiolle jaettava Office 365 -tili näkisi omat tyhjät osoitelistansa. Tarkoituksena on siis piilottaa sisäisen henkilöstön osoitelistat tältä yhdeltä tietyltä käyttäjältä.

Tätä varten tarvitaan uusi Address Book Policy (ABP) ja Office 365 -käyttäjä, jolle se ABP-käytäntö määritetään.

Loin uuden käyttäjän kalenterivaraukset@mapy.fi Office 365 Business Essentials -lisenssillä, josta karsin käyttöoikeudet pois kaikkiin sovelluksiin ja palveluihin. Jätin oikeudet ainoastaan Exhange Online (Plan 1) ja Office for the web -sovelluksiin.

Address Book Policy muodostuu aina neljästä osasta:

  • yksilöllinen Global Address List (GAL)
  • yksilöllinen Offline Address Book (OAB)
  • yksi tai useampi yksilöllinen tavallinen osoitelista (Address List)
  • yksilöllinen huonelista (Room List)

ABP-käytäntöjen luominen PowerShellissä

ABP-sääntöihin liittyvät cmdlet-komennot edellyttävät “Address Lists” -roolin lisäämistä Exchangen rooliryhmään, johon admin-käyttäjätunnus kuuluu. Kyseistä roolia ei oletuksena ole lisätty mihinkään rooliryhmään. Itse lisäsin kyseisen roolin “Organizatio Management” -rooliryhmään navigoimalla seuraavasti:

Exchange Admin Centeristä ”Permissions” > ”Admin roles”:

Muokkasin “Organization management”-rooliryhmää ja lisäsin siihen oman hallintakäyttäjäni. Lisäksi lisäsin siihen roolin “Address Lists” ja tallensin muutokset:

Yhdistin Exchange Onlineen PowerShellillä Microsoft Exchange Online PowerShell Modulen kautta:

Connect-EXOPSSession -UserPrincipalName hallinta.kayttaja@mapy.fi

Aloitin luomalla uuden Global Address Listin (GAL):

PS C:\Users\Markus> New-GlobalAddressList -Name "ExternalUsersGAL"

Name RecipientFilter
---- ---------------
ExternalUsersGAL

Sitten loin uuden Office Address Bookin (OAB):

PS C:\Users\Markus> New-OfflineAddressBook -Name "ExternalUsersOAB" -AddressLists "\ExternalUsersGAL"


RunspaceId : ea775c48-7776-47a3-82c2-d1fa411e40de
GeneratingMailbox :
AddressLists : {\ExternalUsersGAL}
Versions : {Version4}
IsDefault : False
PublicFolderDatabase :
PublicFolderDistributionEnabled : False
GlobalWebDistributionEnabled : True
WebDistributionEnabled : True
ShadowMailboxDistributionEnabled : False
UseE14SortOrder : False
UseE14SortOrderOrdinal : False
UseOrdinalSortedMultivaluedProperties : True
LastTouchedTime :
LastRequestedTime :
LastFailedTime :
LastNumberOfRecords :
HttpHomeMdbLastProcessedBucket : 1000
LastGeneratingData :
MaxBinaryPropertySize : 32768
MaxMultivaluedBinaryPropertySize : 65536
MaxStringPropertySize : 3400
MaxMultivaluedStringPropertySize : 65536
ConfiguredAttributes : {}
DiffRetentionPeriod : 30
Schedule : {su.5.00-su.5.15, ma.5.00-ma.5.15, ti.5.00-ti.5.15, ke.5.00-ke.5.15...}
FullOabDownloadPreventionThreshold : 0
ZipOabFilesBeforeUploading : False
VirtualDirectories : {}
ExchangeVersion : 0.20 (15.0.0.0)
AdminDisplayName :
Name : ExternalUsersOAB
DistinguishedName : CN=ExternalUsersOAB,CN=Offline Address Lists,CN=Address Lists Container,CN=C
onfiguration,CN=mapyfi.onmicrosoft.com,CN=ConfigurationUnits,DC=EURPR05A009,
DC=PROD,DC=OUTLOOK,DC=COM
Identity : \ExternalUsersOAB
ObjectCategory : EURPR05A009.PROD.OUTLOOK.COM/Configuration/Schema/ms-Exch-OAB
ObjectClass : {top, msExchOAB}
WhenChanged : 30.11.2019 16.04.28
WhenCreated : 30.11.2019 16.04.28
WhenChangedUTC : 30.11.2019 14.04.28
WhenCreatedUTC : 30.11.2019 14.04.28
ExchangeObjectId : 5b3b302b-e365-4c3a-be39-b662296eae6e
OrganizationId : EURPR05A009.PROD.OUTLOOK.COM/Microsoft Exchange Hosted Organizations/mapyfi.
onmicrosoft.com - EURPR05A009.PROD.OUTLOOK.COM/ConfigurationUnits/mapyfi.onm
icrosoft.com/Configuration
Id : \ExternalUsersOAB
Guid : 5b3b302b-e365-4c3a-be39-b662296eae6e
OriginatingServer : VI1PR05A009DC06.EURPR05A009.PROD.OUTLOOK.COM
IsValid : True
ObjectState : Unchanged

Seuraavaksi loin uuden tavallisen osoitelistan:

PS C:\Users\Markus> New-AddressList -Name "ExternalUsersAddressList"

Name DisplayName RecipientFilter
---- ----------- ---------------
ExternalUsersAddressList ExternalUsersAddressList

Sitten loin uuden huonelistan:

PS C:\Users\Markus> New-DistributionGroup -Name "ExternalUsersRoomList" -RoomList
New! Office 365 Groups are the next generation of distribution lists.
Groups give teams shared tools for collaborating using email, files, a calendar, and more.
You can start right away using the New-UnifiedGroup cmdlet.

Name DisplayName GroupType PrimarySmtpAddress
---- ----------- --------- ------------------
ExternalUsersRoomList ExternalUsersRoomList Universal ExternalUsersRoomList@mapyfi.onmicrosoft.com

Seuraavaksi kokeilin luoda ABP-säännön komennolla:

PS C:\Users\Markus> New-AddressBookPolicy -Name "ExternalUsersABP" -GlobalAddressList "\ExternalUsersGAL" -OfflineAddressBook "\ExternalUsersOAB" -RoomList "\ExternalUsersRoomList" -AddressLists "\ExternalUsersAddressList"

All room list "\ExternalUsersRoomList" was not found. Please make sure you typed the identity correctly.
+ CategoryInfo : NotSpecified: (:) [New-AddressBookPolicy], ManagementObjectNotFoundException
+ FullyQualifiedErrorId : [Server=AM0PR0502MB3601,RequestId=dfdc2252-1ff5-476e-b8c5-c4e11003d5c5,TimeStamp=30.1
1.2019 14.06.35] [FailureCategory=Cmdlet-ManagementObjectNotFoundException] 379B0544,Microsoft.Exchange.Managem
ent.SystemConfigurationTasks.NewAddressBookPolicy
+ PSComputerName : outlook.office365.com

Jostain syystä huonelistaa ei löydy, vaikka se on kyllä olemassa.

EDIT (12.12.2019): Huonelista olisi pitänyt luoda tavallisena osoitelistana, johon kuuluu vain huoneresursseja. Se ei ole huoneista koostuva jakelulista! Katso: https://docs.microsoft.com/en-us/exchange/address-books/address-book-policies/address-book-policies, jossa määritellään seuraavasti:

One room list. Note that this room list is a custom address list that specifies rooms (contains the filter RecipientDisplayType -eq 'ConferenceRoomMailbox'). It’s not a room finder that you create with the RoomList switch on the New-DistributionGroup or Set-DistributionGroup cmdlet.

Lopulta kokeilin luoda ABP-säännön määrittelemättä huonelistaa ollenkaan. Tällöin minua pyydettiin kuitenkin määrittämään huonelista, joten annoin sen arvoksi “All rooms“, mikä mahdollistaa toki sen, että ABP-käytäntö sallii kaikkien huoneiden näkymisen käyttäjälle, jolle käyntäntö määritetään. Omassa tapauksessani se on jopa suotuisaa, joten en lähtenyt tutkimaan tarkemmin, miksi huonelista ei kelpaa.

PS C:\Users\Markus> New-AddressBookPolicy -Name "ExternalUsersABP" -GlobalAddressList "\ExternalUsersGAL" -OfflineAddressBook "\ExternalUsersOAB" -AddressLists "\ExternalUsersAddressList"

cmdlet New-AddressBookPolicy at command pipeline position 1
Supply values for the following parameters:
RoomList: All rooms

Name GlobalAddressList AddressLists OfflineAddressBook RoomList
---- ----------------- ------------ ------------------ --------
ExternalUsersABP \ExternalUsersGAL {\ExternalUsersAddressList} \ExternalUsersOAB \All Rooms

Tarkistin, että ABP varmasi luotiin:

PS C:\Users\Markus> Get-AddressBookPolicy -Identity "ExternalUsersABP"

Name GlobalAddressList AddressLists OfflineAddressBook RoomList
---- ----------------- ------------ ------------------ --------
ExternalUsersABP \ExternalUsersGAL {\ExternalUsersAddressList} \ExternalUsersOAB \All Rooms

PS C:\Users\Markus> Get-AddressBookPolicy -Identity ExternalUsersABP | Format-List


RunspaceId : 95d0bf8c-82a6-4289-be31-40c6a2c26e0f
MembershipFilter :
RecipientFilter :
PendingChanges : False
IBPolicyState : Inactive
IsVisibilityBlocked : False
IsCommunicationBlocked : False
AddressLists : {\ExternalUsersAddressList}
GlobalAddressList : \ExternalUsersGAL
RoomList : \All Rooms
OfflineAddressBook : \ExternalUsersOAB
IsInformationBarrierPolicy : False
InformationBarrierSegment :
DisplayName :
IsDefault : False
AdminDisplayName :
ExchangeVersion : 0.10 (14.0.100.0)
Name : ExternalUsersABP
DistinguishedName : CN=ExternalUsersABP,CN=AddressBook Mailbox Policies,CN=Configuration,CN=mapyfi.onmicros
oft.com,CN=ConfigurationUnits,DC=EURPR05A009,DC=PROD,DC=OUTLOOK,DC=COM
Identity : ExternalUsersABP
ObjectCategory : EURPR05A009.PROD.OUTLOOK.COM/Configuration/Schema/ms-Exch-Address-Book-Mailbox-Policy
ObjectClass : {top, msExchRecipientTemplate, msExchAddressBookMailboxPolicy}
WhenChanged : 30.11.2019 16.25.04
WhenCreated : 30.11.2019 16.25.04
WhenChangedUTC : 30.11.2019 14.25.04
WhenCreatedUTC : 30.11.2019 14.25.04
ExchangeObjectId : 3f8d4d5f-68e9-4c3a-8c8a-3af1659901e7
OrganizationId : EURPR05A009.PROD.OUTLOOK.COM/Microsoft Exchange Hosted Organizations/mapyfi.onmicrosoft
.com - EURPR05A009.PROD.OUTLOOK.COM/ConfigurationUnits/mapyfi.onmicrosoft.com/Configura
tion
Id : ExternalUsersABP
Guid : 3f8d4d5f-68e9-4c3a-8c8a-3af1659901e7
OriginatingServer : VI1PR05A009DC06.EURPR05A009.PROD.OUTLOOK.COM
IsValid : True
ObjectState : Unchanged

PS C:\Users\Markus>

Sitten kokeilin määrittää ABP:n halutulle käyttäjälle:

Set-MailBox -Identity kalenterivaraukset@mapy.fi -AddressBookPolicy ExternalUsersABP

Lisäsin käyttäjätilin Outlook-työpöytäsovellukseeni ja kävin katsomassa, miltä osoitteisto näyttää kyseiselle käyttäjälle:

Kuvasta havaitaan, että kalenterivaraukset@mapy.fi näkee huomattavasti vähemmän kuin esimerkiksi ihan ylimpänä näkyvä sähköpostitili samasta toimialueesta. Molemmat tilit näkevät nyt oman osoitteistonsa. Jos esimerkiksi avaan “Yleinen osoitteisto” -listan kalenterivaraukset@mapy.fi -tilillä, niin listalta ei löydy ketään. Ainoa lista, jossa on sisältöä on “All rooms” -huonelista.

Sama on havaittavissa Outlook Web -sovelluksen kautta, jossa hakemisto on jostain syystä vielä tyhjempi:

HUOM! ABP muutos voi tulla todella hitaasti voimaan. Kannattaa odottaa ainakin pari tuntia, ennen kuin tietää, mitkä osoitelistat oikeasti näkyvät käyttäjälle.


TÄTÄ DOKUMENTTIA SAA KOPIOIDA JA MUOKATA GNU GENERAL PUBLIC LICENSE (VERSIO 3 TAI UUDEMPI) MUKAISESTI. HTTP://WWW.GNU.ORG/LICENSES/GPL.HTML
MARKUS PYHÄRANTA
Markus Pyhäranta

RELATED ARTICLES
LEAVE A COMMENT