...
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
...
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
...
MPASSid:n claim rslejen 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", "mpassMunicipalityCode", "mpassSchoolCode", "mpassClassLevel", "mpassClassCode", "mpassUserRole"), query = ";objectGuiD,givenName,sn,userPrincipalName,<cryptID>,<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
...
- 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 attribuutttiattribuutti.
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" , "mpassMunicipalityCode" , "mpassSchoolCode" , "mpassClassLevel" , "mpassClassCode" , "mpassUserRole" ), query = ";objectGuiD,userPrincipalName,givenName,sn,<cryptID>,<municipalityCode>,<schoolCode>,<classLevel>,<classCode>,<userRole>;{0}" , param = c.Value);
|
Esimerkkejä erilaisista claim ruleista
...
Kuntakoodin lähettäminen kiinteänä arvona
Send mpassMunicipalityCode
=> issue(Type = "mpassMunicipalityCode" , Value = "123" );
|
Numeerisen roolitiedon muuttaminen tekstimuotoiseksi
# Haetaan käyttäjän rooli AD:n employeeType attribuutista ja lisätään (add) se käyttäjän attribuutteihin
Add Employee Type as Role
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname" , Issuer == "AD AUTHORITY" ]
=> add(store = "Active Directory" , types = ( "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" ), query = ";employeeType;{0}" , param = c.Value);
# Tutkitaan roolin arvo ja lähetetään eteenpäin (issue) arvoa vastaava tekstimuotoinen rooli
Send mpassUserRole henklökunta
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" , Value =~ "^0" ]
=> issue(Type = "mpassUserRole" , Value = "henkilökunta" );
Send mpassUserRole oppilas
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" , Value =~ "^1" ]
=> issue(Type = "mpassUserRole" , Value = "oppilas" );
Send mpassUserRole opettaja
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" , Value =~ "^2" ]
=> issue(Type = "mpassUserRole" , Value = "opettaja" );
|