MPASSid lisätään ADFS:ään PowerShell komentojen avulla. Alla esimerkki Powershell-komennot, joilla MPASSid lisätään ADFS:ään. Komennoista on kaksi versiota riippuen siitä, että luetaanko MPASSid:n metadata internetin kautta vai paikallisesta kopiosta.
MPASSid:n lisääminen ADFS:ään
MPASSid:n metadata url-osoitteella
$name = "mpass-proxy"
$metadataUrl = "https://mpass-proxy.csc.fi/Shibboleth.sso/Metadata"
Add -ADFSRelyingPartyTrust -MetadataUrl $metadataUrl -Name $name -AutoUpdateEnabled $true -EncryptClaims $true -SignedSamlRequestsRequired $true -EncryptionCertificateRevocationCheck none -SigningCertificateRevocationCheck none
|
MPASSid:n metadata paikallisesti
Kopioi ensin MPASSid:n metadata ADFS-palvelimelle haluamaasi hakemistoon mpass-proxy-metadata.xml nimellä.
Päivitä alla oleviin komentoihin metadatatiedoston sijainti ja nimi, jos käytit jotain toista tiedostonimeä.
$name = "mpass-proxy"
$metadataFile = "c:\<hakemisto>\mpass-proxy-metadata.xml"
Add -ADFSRelyingPartyTrust -MetadataFile $metadataFile -Name $name -EncryptClaims $true -SignedSamlRequestsRequired $true -EncryptionCertificateRevocationCheck none -SigningCertificateRevocationCheck none
Update -AdfsRelyingPartyTrust -TargetName $name -MetadataFile $metadataFile
|
MPASSid:lle lähetettävien attribuuttien määrittely
ADFS:lle määritellään claim rulejen avulla mitä attribuutteja käyttäjästä välitetään palveluun kirjautumisen yhteydessä. Tarvittavat määritykset voi tehdä joko Powershell-komennoilla, kopioimalla ja tarvittaessa muokkaamalla tämän ohjeen esimerkki claim ruleja tai määrittämällä ne ADFS:n hallintakonsolista. Löydät tarkemmin tietoa claim ruleista tämän ohjeen Claim Rulet kohdasta.
Päivitä alla oleviin komentoihin MPASSid:lle lähetettäviä attribuutteja vastaavat AD:n attribuutit. Types kohdassa määritellään minkä tyyppisenä attribuutit lähetetään MPASSid:lle ja query kohdassa määritellään mistä AD:n attribuutista vastaava attribuutti löytyy. Types ja query kohtien attribuuttien järjestys vastaa toisiaan.
MPASSid:n claim rulejen määritys
$issuanceTransformRules = '@RuleName = "Send MPASSid Attributes"c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => issue(store = "Active Directory", types = ("mpassUserIdentity", "mpassGivenName", "mpassSurname", "mpassAccountName", "mpassCryptID", "mpassLearnerId", "mpassMunicipalityCode", "mpassSchoolCode", "mpassClassLevel", "mpassClassCode", "mpassUserRole"), query = ";objectGuiD,givenName,sn,userPrincipalName,<cryptId>,<learnerId>,<municipalityCode>,<schoolCode>,<classLevel>,<classCode>,<userRole>;{0}", param = c.Value);' ;
$issuanceAuthorizationRules = '@RuleTemplate = "AllowAllAuthzRule" => issue(Type = "http://schemas.microsoft.com/authorization/claims/permit", Value = "true");'
$name = "mpass-proxy"
Set -ADFSRelyingPartyTrust -TargetName $name -IssuanceAuthorizationRules $issuanceAuthorizationRules -IssuanceTransformRules $issuanceTransformRules
|
ADFS:n tiedot MPASSid:lle
ADFS:n tiedot pitää lisätä MPASSid:lle ennen kuin kirjautuminen toimii. Lisääminen tapahtuu ADFS:n metadatan avulla. Metadata löytyy oletuksen ADFS-palvelimelta osoitteesta https://<palvelimen_nimi>/FederationMetadata/2007-06/FederationMetadata.xml. Lähetä ADFS:n metadata osoitteeseen tuki@mpass.fi.
Claim Rulet
Alla esimerkki claim rule määrityksiä. Näitä voi kopioida ja liittää ADFS:n Relying Partyn määrityksiin ADFS:n hallintakonsolista. Määrityksiin pitää muokata mistä AD:n attribuutista MPASSid:lle lähetettävä attribuutti löytyy.
- Claim rule tekee kyselyn AD:lle ja hakee kyselyssä määritellyt attribuutit
- Types -kohdassa on määritelty minkä tyyppisinä attribuutit lähetetään MPASSid:lle ja query kohdassa on määritelty mistä AD:n attribuutista haluttu tieto löytyy.
- Types ja query kohtien järjestys vastaa toisiaan. Eli esimerkiksi mpassUserIdentity attribuutti haetaan AD:n objectGuid attribuutista.
- Voit lisätä, muuttaa ja poistaa attribuutteja tarvittessa. Jos esimerkiksi käyttäjän tiedoista AD:lla ei löydy kuntakoodia, niin poista types kohdasta "mpassMunicipalityCode" ja query kohdasta vastaava attribuutti.
Send MPASSid Attributes
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname" , Issuer == "AD AUTHORITY" ]
=> issue(store = "Active Directory" , types = ( "mpassUserIdentity" , "mpassAccountName" , "mpassGivenName" , "mpassSurname" , "mpassCryptId" , "mpassLearnerId", "mpassMunicipalityCode" , "mpassSchoolCode" , "mpassClassLevel" , "mpassClassCode" , "mpassUserRole" ), query = ";objectGuiD,userPrincipalName,givenName,sn,<cryptID>,<learnerId>,<municipalityCode>,<schoolCode>,<classLevel>,<classCode>,<userRole>;{0}" , param = c.Value);
|
Esimerkkejä erilaisista claim ruleista
Jos määrittelet MPASSid:lle lähetettäviä attribuutteja erillisillä claim ruleilla, niin varmista ettei niitä lähetä myös jossain toisessa attribuutissa.
Kuntakoodin lähettäminen kiinteänä arvona
Send mpassMunicipalityCode
=> issue(Type = "mpassMunicipalityCode" , Value = "123" );
|
Numeerisen roolitiedon muuttaminen tekstimuotoiseksi
Windows Server 2019 ADFS
Windows Server 2019 ADFS lisää oletuksena metadataansa contact personin email addressin tyhjänä elementtinä. Jotta metadatan validointi toimii, niin email address tulee olla määriteltynä.
# Tarkista ensin onko contact person:n tiedot jo annettu:
(Get-AdfsProperties).ContactPerson
# Jos edellisen komennon tuloksena EmailAddresses on tyhjä, niin tällä voit lisätä sen. Huom! tämä ylikirjoittaa mahdolliset aiemmat ContactPerson määritykset, joten kaikki tiedot tulee asettaa uudelleen.
$CP = New-AdfsContactPerson [-Company <string>] [-EmailAddress <string[]>] [-GivenName <string>] [-TelephoneNumber <string[]>] [-Surname <string>]
Set-AdfsProperties -ContactPerson $CP |