Полное руководство по Azure Active Directory: методы и примеры кода

Azure Active Directory (Azure AD) — это облачная служба управления идентификацией и доступом, предлагаемая Microsoft. Он предоставляет ряд методов, которые разработчики могут использовать для управления удостоверениями пользователей, защиты приложений и обеспечения простой аутентификации и авторизации. В этой статье мы рассмотрим различные методы работы с Azure AD, а также приведем примеры кода, которые помогут вам понять и эффективно реализовать эти возможности.

Методы и примеры кода:

  1. Управление пользователями:

    • Создать нового пользователя:

      GraphServiceClient graphClient = new GraphServiceClient(authProvider);
      var newUser = new User
      {
       DisplayName = "John Doe",
       AccountEnabled = true,
       MailNickname = "johnd",
       UserPrincipalName = "johnd@example.com",
       PasswordProfile = new PasswordProfile
       {
           Password = "P@ssw0rd",
           ForceChangePasswordNextSignIn = true
       }
      };
      await graphClient.Users.Request().AddAsync(newUser);
    • Получить данные пользователя:

      var user = await graphClient.Users["user-id"].Request().GetAsync();
    • Обновить свойства пользователя:

      user.DisplayName = "Jane Doe";
      await graphClient.Users[user.Id].Request().UpdateAsync(user);
    • Удалить пользователя:

      await graphClient.Users["user-id"].Request().DeleteAsync();
  2. Интеграция приложений:

    • Зарегистрируйте новое приложение:

      New-AzureADApplication -DisplayName "MyApp" -WebApplicaton
    • Предоставить разрешения приложению:

      New-AzureADServiceAppRoleAssignment -ObjectId $appId -PrincipalId $principalId -ResourceId $resourceId -Id $roleId
    • Получить токен доступа:

      var clientCredential = new ClientCredential(clientId, clientSecret);
      var authContext = new AuthenticationContext(authority);
      var result = await authContext.AcquireTokenAsync(resource, clientCredential);
      var accessToken = result.AccessToken;
  3. Управление группой:

    • Создать новую группу:

      var newGroup = new Group
      {
       DisplayName = "MyGroup",
       MailNickname = "mygroup",
       MailEnabled = false,
       SecurityEnabled = true
      };
      await graphClient.Groups.Request().AddAsync(newGroup);
    • Добавить пользователя в группу:

      await graphClient.Groups["group-id"].Members.References.Request().AddAsync(user);
    • Получить участников группы:

      var members = await graphClient.Groups["group-id"].Members.Request().GetAsync();
  4. Аутентификация и авторизация:

    • Аутентификация пользователя:

      string authority = "https://login.microsoftonline.com/{tenantId}";
      string clientId = "{clientId}";
      string clientSecret = "{clientSecret}";
      string[] scopes = new[] { "User.Read" };
      var app = ConfidentialClientApplicationBuilder
       .Create(clientId)
       .WithClientSecret(clientSecret)
       .WithAuthority(new Uri(authority))
       .Build();
      var result = await app.AcquireTokenForClient(scopes).ExecuteAsync();
      var accessToken = result.AccessToken;
    • Разрешить доступ к API:

      [Authorize]
      public async Task<IActionResult> GetUserData()
      {
       var accessToken = await HttpContext.GetTokenAsync("access_token");
       // Use the access token to call the API
      }