Creé una aplicación MVC y estoy tratando de agregar usuarios a la aplicación.
La validación del usuario debe realizarse a través de Azure AD para el que se utiliza Graph API.
Los usuarios internos presentados en Azure AD se agregan correctamente.
Los usuarios externos también se presentan en Azure AD pero me sale el error
Usuario no presente en AD
He intentado aplicar todos los filtros pero sigo teniendo el mismo problema.
Código utilizado:
var authProvider = await GetAuthProvider(); GraphServiceClient graphClient = new GraphServiceClient(authProvider); var user = await graphClient.Users[email].Request().GetAsync(); return true;donde correo electrónico es la cadena de correo electrónico que se pasa desde la aplicación. El código funciona bien para usuarios internos pero no para usuarios externos.
El problema es que está utilizando la propiedad de mail pero debe usar userPrincipalName
mail tiene un formulario como este
AdeleVance@adatum.com pero userPrincipalName para usuario externo tiene una forma diferente
AdeleVance_adatum.com#EXT#@contoso.com AdeleVance_adatum.com#EXT#@contoso.onmicrosoft.com Para consultar a un usuario externo mediante userPrincipalName , codifique el carácter hash (#). Reemplace el símbolo # con %23.
AdeleVance_adatum.com%23EXT%23@contoso.com Pero graphClient debería codificar el carácter hash automáticamente.
Recursos: