3.1.1.11.2.4 GetConstructedClaims
-
procedure GetConstructedClaims ( pADPrincipal : ADDRESS OF DSNAME, principalClass : ObjectClass, pConstructedClaims : ADDRESS OF CLAIMS_ARRAY)
This procedure is a helper routine that computes constructed claims (section 3.1.1.11.1.3) for a given principal from Active Directory by using the Claims Dictionary (section 3.1.1.11.1.2).
pADPrincipal: The principal whose Active Directory claims are to be retrieved.
principalClass: The object class of the principal.
pConstructedClaims: The address of a CLAIMS_ARRAY (section 2.2.18.6) structure that is used for the output constructed claims.
Return Values: This procedure does not return a value.
Logical Processing:
-
bIssueClaim : boolean; claim: CLAIM_ENTRY; claimConfigContainer : DSName; bIssueClaim := FALSE; claim := null; pConstructedClaims^ := null; claimConfigContainer := DescendantObject( ConfigNC(), "CN=Claim Types, CN=Claims Configuration, CN=Services"); /* Constructed claims use the CLAIMS_SOURCE_TYPE_AD source type. */ pConstructedClaims^.usClaimsSourceType := CLAIMS_SOURCE_TYPE_AD; for (each x in children claimConfigContainer) if (x!msDS-ClaimSourceType = "Constructed" && x!msDS-ClaimTypeAppliesToClass in principalClass && ValidateClaimDefinition(x)) bIssueClaim := TRUE; endif if (bIssueClaim) /* Currently only the AuthenticationSilo claim is supported */ if (x.Name = "ad://ext/AuthenticationSilo") claim := GetAuthSiloClaim(pADPrincipal) if (claim != null) pConstructedClaims^.ClaimEntries.Add(claim); pConstructedClaims^.ulClaimsCount := pConstructedClaims^.ulClaimsCount + 1; endif endif endif endfor return;