Azure Active Directory (Azure AD) — это облачная служба управления идентификацией и доступом, предлагаемая Microsoft. Он предоставляет ряд методов, которые разработчики могут использовать для управления удостоверениями пользователей, защиты приложений и обеспечения простой аутентификации и авторизации. В этой статье мы рассмотрим различные методы работы с Azure AD, а также приведем примеры кода, которые помогут вам понять и эффективно реализовать эти возможности.
Методы и примеры кода:
-
Управление пользователями:
-
Создать нового пользователя:
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();
-
-
Интеграция приложений:
-
Зарегистрируйте новое приложение:
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;
-
-
Управление группой:
-
Создать новую группу:
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();
-
-
Аутентификация и авторизация:
-
Аутентификация пользователя:
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 }
-