Gerir o Azure AD B2C com o Microsoft Graph
O Microsoft Graph permite que você gerencie recursos em seu diretório do Azure AD B2C. As seguintes operações da API do Microsoft Graph têm suporte para o gerenciamento de recursos do Azure AD B2C, incluindo usuários, provedores de identidade, fluxos de usuários, políticas personalizadas e chaves de política. Cada link nas seções a seguir tem como destino a página correspondente dentro da referência da API do Microsoft Graph para essa operação.
Nota
Você também pode criar programaticamente um diretório B2C do Azure AD, juntamente com o recurso do Azure correspondente vinculado a uma assinatura do Azure. Essa funcionalidade não é exposta por meio da API do Microsoft Graph, mas por meio da API REST do Azure. Para obter mais informações, consulte Locatários B2C - Criar.
Assista a este vídeo para saber mais sobre a migração de usuários do Azure AD B2C usando a API do Microsoft Graph.
Pré-requisitos
- Para usar a API do MS Graph e interagir com recursos em seu locatário do Azure AD B2C, você precisa de um registro de aplicativo que conceda as permissões para fazer isso. Siga as etapas no artigo Registrar um aplicativo do Microsoft Graph para criar um registro de aplicativo que seu aplicativo de gerenciamento possa usar.
Gestão de utilizadores
Nota
Atualmente, o Azure AD B2C não oferece suporte a recursos avançados de consulta em objetos de diretório. Isso significa que não há suporte para parâmetros de consulta , e Não (), Não é igual a $count
() e Termina com (endsWith
not
ne
) operadores no $filter
parâmetro de consulta. $search
Para obter mais informações, consulte parâmetros de consulta no Microsoft Graph e recursos avançados de consulta no Microsoft Graph.
- Lista de utilizadores
- Criar um usuário consumidor
- Obter um utilizador
- Atualizar um utilizador
- Eliminar um utilizador
Gestão do número de telefone do utilizador
Um número de telefone que pode ser usado por um usuário para entrar usando SMS ou chamadas de voz ou autenticação multifator. Para obter mais informações, consulte API de métodos de autenticação do Microsoft Entra.
Observe que a operação de lista retorna apenas números de telefone habilitados. O seguinte número de telefone deve ser habilitado para uso com as operações de lista.
Nota
Um número de telefone representado corretamente é armazenado com um espaço entre o código do país e o número de telefone. Atualmente, o serviço Azure AD B2C não adiciona esse espaço por padrão.
Endereço de e-mail de redefinição de senha de autoatendimento
Um endereço de e-mail que pode ser usado por uma conta de login de nome de usuário para redefinir a senha. Para obter mais informações, consulte API de métodos de autenticação do Microsoft Entra.
Método de autenticação de token OATH de software
Um token OATH de software é um gerador de números baseado em software que usa o padrão OATH time-based one-time password (TOTP) para autenticação multifator por meio de um aplicativo autenticador. Use a API do Microsoft Graph para gerenciar um token OATH de software registrado para um usuário:
Fornecedores de identidade
Gerencie os provedores de identidade disponíveis para seus fluxos de usuário em seu locatário do Azure AD B2C.
- Listar provedores de identidade disponíveis no locatário do Azure AD B2C
- Listar provedores de identidade configurados no locatário do Azure AD B2C
- Criar um provedor de identidade
- Obter um provedor de identidade
- Atualizar provedor de identidade
- Excluir um provedor de identidade
Fluxo de usuários (beta)
Configure políticas pré-criadas para inscrição, entrada, inscrição e entrada combinadas, redefinição de senha e atualização de perfil.
- Listar fluxos de usuários
- Criar um fluxo de usuário
- Obter um fluxo de usuários
- Excluir um fluxo de usuário
Métodos de autenticação de fluxo de usuário (beta)
Escolha um mecanismo para permitir que os utilizadores se registem através de contas locais. As contas locais são as contas em que o Azure AD B2C faz a declaração de identidade. Para obter mais informações, consulte b2cAuthenticationMethodsPolicy tipo de recurso.
Políticas personalizadas (beta)
As operações a seguir permitem que você gerencie suas políticas da Estrutura de Confiança do Azure AD B2C, conhecidas como políticas personalizadas.
- Listar todas as políticas de estrutura de confiança configuradas em um locatário
- Criar política de estrutura de confiança
- Ler propriedades de uma política de estrutura de confiança existente
- Atualize ou crie uma política de estrutura de confiança.
- Excluir uma política de estrutura de confiança existente
Chaves de política (beta)
O Identity Experience Framework armazena os segredos referenciados em uma política personalizada para estabelecer confiança entre os componentes. Estes segredos podem ser chaves/valores simétricos ou assimétricos. No portal do Azure, essas entidades são mostradas como chaves de política.
O recurso de nível superior para chaves de política na API do Microsoft Graph é o Conjunto de Chaves do Trusted Framework. Cada conjunto de chaves contém pelo menos uma chave. Para criar uma chave, primeiro crie um conjunto de chaves vazio e, em seguida, gere uma chave no conjunto de chaves. Você pode criar um segredo manual, carregar um certificado ou uma chave PKCS12. A chave pode ser um segredo gerado, uma cadeia de caracteres (como o segredo do aplicativo do Facebook) ou um certificado que você carregar. Se um conjunto de chaves tiver várias chaves, apenas uma delas estará ativa.
Conjunto de chaves de política do Trust Framework
- Listar os conjuntos de chaves da estrutura de confiança
- Criar conjuntos de chaves de estrutura de confiança
- Obter um conjunto de chaves
- Atualizar conjuntos de chaves de uma estrutura de confiança
- Excluir conjuntos de chaves de uma estrutura de confiança
Chave de política do Quadro de Confiança
- Obter chave ativa no momento no conjunto de chaves
- Gerar uma chave no conjunto de chaves
- Carregar um segredo baseado em cadeia de caracteres
- Carregar um certificado X.509
- Carregar um certificado de formato PKCS12
Aplicações
- Listar aplicações
- Criar uma aplicação
- Atualizar aplicativo
- Criar servicePrincipal
- Criar oauth2Permission Grant
- Excluir aplicativo
Propriedades de extensão de aplicativo (extensão de diretório)
As propriedades de extensão de aplicativo também são conhecidas como extensões de diretório ou Microsoft Entra. Para gerenciá-los no Azure AD B2C, use o tipo de recurso identityUserFlowAttribute e seus métodos associados.
- Criar atributo de fluxo de usuário
- Listar atributos de fluxo de usuário
- Obter um atributo de fluxo de usuário
- Atualizar um atributo de fluxo de usuário
- Excluir um atributo de fluxo de usuário
Você pode armazenar até 100 valores de extensão de diretório por usuário. Para gerenciar as propriedades de extensão de diretório para um usuário, use as seguintes APIs de usuário no Microsoft Graph.
- Atualizar usuário: para gravar ou remover o valor da propriedade de extensão de diretório do objeto de usuário.
- Obter um usuário: para recuperar o valor da extensão de diretório para o usuário. A propriedade será retornada por padrão através do ponto de extremidade, mas somente através
$select
dobeta
v1.0
ponto de extremidade.
Para fluxos de usuário, essas propriedades de extensão são gerenciadas usando o portal do Azure. Para políticas personalizadas, o Azure AD B2C cria a propriedade para você, na primeira vez que a política grava um valor na propriedade de extensão.
Nota
No Microsoft Entra ID, as extensões de diretório são gerenciadas por meio do tipo de recurso extensionProperty e seus métodos associados. No entanto, como eles são usados em B2C por meio do b2c-extensions-app
aplicativo que não deve ser atualizado, eles são gerenciados no Azure AD B2C usando o tipo de recurso identityUserFlowAttribute e seus métodos associados.
Utilização do inquilino
Use a API Obter detalhes da organização para obter sua cota de tamanho de diretório. Você precisa adicionar o $select
parâmetro query conforme mostrado na seguinte solicitação HTTP:
GET https://graph.microsoft.com/v1.0/organization/organization-id?$select=directorySizeQuota
Substitua organization-id
pelo ID da sua organização ou locatário.
A resposta à solicitação acima é semelhante ao seguinte trecho JSON:
{
"directorySizeQuota": {
"used": 156,
"total": 1250000
}
}
Registos de auditoria
Para obter mais informações sobre como acessar logs de auditoria do Azure AD B2C, consulte Acessando logs de auditoria do Azure AD B2C.
Acesso Condicional
- Listar os modelos internos para cenários de política de Acesso Condicional
- Listar todas as políticas de Acesso Condicional
- Ler propriedades e relações de uma política de Acesso Condicional
- Criar uma nova política de Acesso Condicional
- Atualizar uma política de Acesso Condicional
- Excluir uma política de Acesso Condicional
Recuperar ou restaurar usuários e aplicativos excluídos
Os utilizadores e aplicações eliminados só podem ser restaurados se tiverem sido eliminados nos últimos 30 dias.
- Lista de itens excluídos
- Obter um item excluído
- Restaurar um item excluído
- Excluir permanentemente um item excluído
Como gerenciar programaticamente o Microsoft Graph
Quando você deseja gerenciar o Microsoft Graph, você pode fazê-lo como o aplicativo usando as permissões do aplicativo, ou você pode usar permissões delegadas. Para permissões delegadas, o usuário ou um administrador consente com as permissões solicitadas pelo aplicativo. A aplicação é delegada com a permissão para agir como um utilizador com sessão iniciada quando faz chamadas ao recurso de destino. As permissões de aplicativo são usadas por aplicativos que não exigem um usuário conectado presente e, portanto, exigem permissões de aplicativo. Por isso, apenas os administradores podem consentir com as permissões do aplicativo.
Nota
As permissões delegadas para usuários que entram por meio de fluxos de usuários ou políticas personalizadas não podem ser usadas em relação às permissões delegadas para a API do Microsoft Graph.
Exemplo de código: Como gerenciar contas de usuário programaticamente
Este exemplo de código é um aplicativo de console do .NET Core que usa o SDK do Microsoft Graph para interagir com a API do Microsoft Graph. Seu código demonstra como chamar a API para gerenciar usuários programaticamente em um locatário do Azure AD B2C. Você pode baixar o arquivo de exemplo (*.zip), navegar no repositório no GitHub ou clonar o repositório :
git clone https://github.com/Azure-Samples/ms-identity-dotnetcore-b2c-account-management.git
Depois de obter o exemplo de código, configure-o para seu ambiente e, em seguida, crie o projeto:
Abra o projeto no Visual Studio ou Visual Studio Code.
Abrir
src/appsettings.json
.appSettings
Na seção , substituayour-b2c-tenant
pelo nome do locatário eClient secret
Application (client) ID
pelos valores para o registro do aplicativo de gerenciamento. Para obter mais informações, consulte Registrar um aplicativo do Microsoft Graph.Abra uma janela de console dentro do clone local do repositório, alterne para o diretório e crie o
src
projeto:cd src dotnet build
Execute o aplicativo com o
dotnet
comando:dotnet bin/Debug/netcoreapp3.1/b2c-ms-graph.dll
O aplicativo exibe uma lista de comandos que você pode executar. Por exemplo, obter todos os usuários, obter um único usuário, excluir um usuário, atualizar a senha de um usuário e importar em massa.
Nota
Para que o aplicativo atualize as senhas da conta de usuário, você precisará conceder a função de administrador do usuário ao aplicativo.
Discussão de código
O código de exemplo usa o SDK do Microsoft Graph, que foi projetado para simplificar a criação de aplicativos de alta qualidade, eficientes e resilientes que acessam o Microsoft Graph.
Qualquer solicitação à API do Microsoft Graph requer um token de acesso para autenticação. A solução usa o pacote NuGet Microsoft.Graph.Auth que fornece um wrapper baseado em cenário de autenticação da Microsoft Authentication Library (MSAL) para uso com o SDK do Microsoft Graph.
O RunAsync
método no arquivo Program.cs :
- Lê as configurações do aplicativo a partir do arquivo appsettings.json
- Inicializa o provedor de autenticação usando o fluxo de concessão de credenciais do cliente OAuth 2.0. Com o fluxo de concessão de credenciais do cliente, o aplicativo pode obter um token de acesso para chamar a API do Microsoft Graph.
- Configura o cliente de serviço do Microsoft Graph com o provedor de autenticação:
// Read application settings from appsettings.json (tenant ID, app ID, client secret, etc.)
AppSettings config = AppSettingsFile.ReadFromJsonFile();
// Initialize the client credential auth provider
var scopes = new[] { "https://graph.microsoft.com/.default" };
var clientSecretCredential = new ClientSecretCredential(config.TenantId, config.AppId, config.ClientSecret);
var graphClient = new GraphServiceClient(clientSecretCredential, scopes);
O GraphServiceClient inicializado é então usado em UserService.cs para executar as operações de gerenciamento de usuários. Por exemplo, obter uma lista das contas de usuário no locatário:
public static async Task ListUsers(GraphServiceClient graphClient)
{
Console.WriteLine("Getting list of users...");
try
{
// Get all users
var users = await graphClient.Users
.Request()
.Select(e => new
{
e.DisplayName,
e.Id,
e.Identities
})
.GetAsync();
// Iterate over all the users in the directory
var pageIterator = PageIterator<User>
.CreatePageIterator(
graphClient,
users,
// Callback executed for each user in the collection
(user) =>
{
Console.WriteLine(JsonSerializer.Serialize(user));
return true;
},
// Used to configure subsequent page requests
(req) =>
{
Console.WriteLine($"Reading next page of users...");
return req;
}
);
await pageIterator.IterateAsync();
}
catch (Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(ex.Message);
Console.ResetColor();
}
}
Fazer chamadas de API usando os SDKs do Microsoft Graph inclui informações sobre como ler e gravar informações do Microsoft Graph, usar para controlar as propriedades retornadas, fornecer parâmetros de consulta personalizados e usar $select
os $filter
parâmetros e $orderBy
consulta.
Próximos passos
- Para obter exemplos de código em JavaScript e Node.js, consulte: Gerenciar contas de usuário B2C com MSAL.js e Microsoft Graph SDK
- Explore o Graph Explorer que permite experimentar as APIs do Microsoft Graph e aprender sobre elas.