1

我正在使用Azure的AD身份驗證的MVC應用程序。我一直在尋找最佳做法或建議的方式來「擴展」用戶配置文件數據。例如,我希望用戶有自己的存儲日期。asp.net天青活動目錄用戶配置文件數據

我已經看過這一點,但它並沒有真正回答我的問題:Active Directory User Data Storage

我找不到別的有點接近的解決辦法,所有其他的解決方案是另一種類型的身份驗證。

有一點需要注意的是,應用程序只具有對AD的讀取訪問權限,如果這對於我的要求至關重要。我希望只是創建一個使用User.Identity.GetUserId()的用戶模型(這是每一個將改變?如果它,我可以用什麼不會?)。

在此先感謝!

回答

3

我有幾個選項在這裏建議。

選項1 - 您可以使用自己的應用程序配置文件存儲來存儲目錄中不存在的屬性的其他用戶配置文件信息。基本上,當您的應用程序爲登錄用戶獲取用戶令牌(或JWT令牌)時,您會在令牌中獲得objectId(oid)聲明。這是用戶的唯一標識(跨Azure AD的所有標識)。您可以將此用作用戶個人資料商店中的密鑰,並使用此密鑰將AAD中的用戶信息基本上鍊接到應用商店中的用戶信息。

選項2 - 使用目錄模式擴展。 Azure AD(通過Graph API)允許您的應用程序聲明其他屬性以擴展客戶的Azure AD模式。在這裏,您可以使用新的dateOfBirth屬性擴展用戶實體。 (多租戶應用程序)的客戶(管理員)需要同意允許您的應用程序寫入他們的目錄,經過同意後,他們可以使用您的應用程序聲明的擴展屬性擴展其用戶實體架構。然後,您的應用程序(或者其他任何應用程序)可以讀取和寫入這個新的擴展屬性。注意:目前這些擴展屬性沒有特殊的訪問控制 - 如果用戶或應用程序有權讀取用戶實體(在這種情況下),他們將能夠讀取任何應用程序(包括您的應用程序)聲明的任何擴展屬性。
有關目錄擴展名的更多信息,請參閱https://msdn.microsoft.com/en-us/library/azure/dn720459.aspxhttp://blogs.msdn.com/b/aadgraphteam/archive/2014/03/06/extend-azure-active-directory-schema-using-graph-api-preview.aspx(儘管此博客文章中提到,架構擴展現在是Graph API 1.5版中的GA)。目錄架構擴展也可以通過Graph Client Library得到支持,您可以在github上的控制檯示例中看到這一點:https://github.com/AzureADSamples/ConsoleApp-GraphAPI-DotNet

HTHs,