NameIdentifier vs ObjectIdentifier
У меня есть многопользовательское приложение ASP.NET, использующее OpenIdConnect и Azure AD в качестве поставщика удостоверений для Office 365. Когда пользователь проходит проверку подлинности, я получаю свои претензии вClaimsPrincipal.Current
.
Я хотел идентифицировать пользователя и сохранить эту ссылку в моей базе данных. Я спросилэтот вопрос, Ответили, что
При попытке однозначно идентифицировать пользователя [NameIdentifier] должен быть вашим выбором.
Но похоже, чтоNameIdentifier
Запрос,http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
зависит от приложения. Если я создам другое приложение в Azure AD, тоNameIdentifier
не будет одинаковым для того жереальный Пользователь Office365. Помните, что нам, возможно, придется создать еще один манифест Azure AD (поскольку нам могут потребоваться другие области), и мы сможем найти тех же конечных пользователей.
Между тем я заметил еще одно утверждение:ObjectIdentifier
http://schemas.microsoft.com/identity/claims/objectidentifier
Кажется, чтоObjectIdentifier
, одинаково для всех приложений, защищенных Azure AD, для данного пользователя Office 365.
Вы можете точно объяснить разницу между этими двумя утверждениями? И что более важно, можете ли вы подтвердить, чтоObjectIdentifier
может использоваться в качестве «универсального» идентификатора пользователя в любой подписке Office 365.