Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeDNN Open Source...DNN Open Source...Provider and Extension ForumsProvider and Extension ForumsAuthenticationAuthenticationWhat gets updated during DNN-AD login synchronizationWhat gets updated during DNN-AD login synchronization
Previous
 
Next
New Post
9/12/2008 8:39 AM
 

Before I start using the AD provider, I would like to know exactly what data gets updated during DNN-AD login synchronization, and what AD objects map to what DNN objects. This is what I am guessing the mapping is:

DNN user account --------------- AD user account
DNN user profile properties ---- AD user attributes
DNN roles ------------------------ AD security groups

So, what of the above data gets synchronized, and in which directions, and when does it happen? For example:

AD users that are not found in DNN get created in DNN user database on login (pretty sure about this one)
Do updates to basic AD user account properties (e.g. first name) get replicated in the DNN user record? What about if the user record is updated in DNN - does it update the AD record? When does this happen (on login/logout/record update)?
Do updates to AD user attributes (e.g. address) get replicated in the DNN user profile properties? What about if the user profile records are updated in DNN - does they update the AD records? When does this happen (on login/logout/record update)?
Likewise for AD group membership and DNN role membership

And lastly, do the DNN roles you want to sync with AD have to already be created in DNN? It looks like the matching criteria is DNN Role Name = AD Pre-Windows 2000 group name. Is that right? If a new role were created in DNN would that create an AD group?

Many thanks

 
New Post
9/12/2008 11:05 AM
 

The AD Provider is a one way provider. It only reads from the AD it does not write to it.

All updates to the DNN account from the AD happen on manual login or, if you're using automatic login, when IIS Windows Authentication decides it's time to verify the user account (it's a random time) or the authentication cookie has expired (about an hour).

You're correct that the DNN Role has to match the Pre-Windows 2000 group name.

 
New Post
9/12/2008 3:11 PM
 

OK thanks, that clears up part of it. Could you clarify the following also?

Do AD user attributes sync with DNN user profile properties? Is there a fixed list which sync, or is it any that find a match by name?

 
New Post
9/12/2008 5:54 PM
 

I'll have to take a look at the source code to get the full list and I don't have a version handy at the moment. However it covers the most common ones (Firstname, Lastname, Address, phone, email, etc).

 
New Post
9/14/2008 2:37 PM
 

Here's the procedure that's used when a user account is updated.

Private Sub FillUserInfo(ByVal UserEntry As DirectoryEntry, ByVal UserInfo As UserInfo)

            With UserInfo
                .IsSuperUser = False
                .Username = UserInfo.Username
                .Membership.Approved = True
                .Membership.LastLoginDate = Date.Now
                If Not (Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_EMAIL).Value) = "") Then
                    .Email = Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_EMAIL).Value)
                End If
                If .Email = "" Then
                    .Email = Utilities.TrimUserDomainName(UserInfo.Username) & _adsiConfig.DefaultEmailDomain
                End If
                If Not (Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_CNAME).Value.ToString) = "") Then
                    .CName = Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_CNAME).Value.ToString)
                End If
                If Not (Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_DISPLAYNAME).Value) = "") Then
                    .DisplayName = Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_DISPLAYNAME).Value)
                End If
                If .DisplayName = "" Then
                    .DisplayName = .CName
                End If
                If Not (Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_DISTINGUISHEDNAME).Value.ToString) = "") Then
                    .DistinguishedName = Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_DISTINGUISHEDNAME).Value.ToString)
                End If
                If Not (Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_ACCOUNTNAME).Value.ToString) = "") Then
                    .sAMAccountName = Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_ACCOUNTNAME).Value.ToString)
                End If
                If Not (Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_CNAME).Value) = "") Then
                    .Profile.FirstName = Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_FIRSTNAME).Value)
                End If
                If Not (Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_LASTNAME).Value) = "") Then
                    .Profile.LastName = Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_LASTNAME).Value)
                End If
                If Not (Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_STREET).Value) = "") Then
                    .Profile.Street = Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_STREET).Value)
                End If
                If Not (Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_CITY).Value) = "") Then
                    .Profile.City = Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_CITY).Value)
                End If
                If Not (Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_REGION).Value) = "") Then
                    .Profile.Region = Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_REGION).Value)
                End If
                If Not (Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_POSTALCODE).Value) = "") Then
                    .Profile.PostalCode = Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_POSTALCODE).Value)
                End If
                If Not (Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_COUNTRY).Value) = "") Then
                    .Profile.Country = Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_COUNTRY).Value)
                End If
                If Not (Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_TELEPHONE).Value) = "") Then
                    .Profile.Telephone = Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_TELEPHONE).Value)
                End If
                If Not (Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_FAX).Value) = "") Then
                    .Profile.Fax = Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_FAX).Value)
                End If
                If Not (Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_CELL).Value) = "") Then
                    .Profile.Cell = Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_CELL).Value)
                End If
                If Not (Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_WEBSITE).Value) = "") Then
                    .Profile.Website = Utilities.CheckNullString(UserEntry.Properties(Configuration.ADSI_WEBSITE).Value)
                End If
                .AuthenticationExists = True
                ' obtain firstname from username if admin has not enter enough user info
                If .Profile.FirstName.Length = 0 Then
                    .Profile.FirstName = Utilities.TrimUserDomainName(UserInfo.Username)
                End If
            End With
        End Sub



 

 
Previous
 
Next
HomeHomeDNN Open Source...DNN Open Source...Provider and Extension ForumsProvider and Extension ForumsAuthenticationAuthenticationWhat gets updated during DNN-AD login synchronizationWhat gets updated during DNN-AD login synchronization


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out