Добавьте роль в уже созданное приложение с помощью API-интерфейса Azure AD Graph в C # - PullRequest
0 голосов
/ 23 ноября 2018

Как добавить роли в приложении, которое уже создано в объявлении Azure, с помощью API Azure AD Graph в c #.
Я создаю роль, подобную этой, в c #:

 Guid _id = new Guid();

 AppRole appRole = new AppRole

    {
      AllowedMemberTypes = _AllowedMemberTypes,
      Description = "Admins can manage roles and perform all actions.",
      DisplayName = "Global Admin",
      Id = _id,
      IsEnabled = true,
      Value = "Admin"
    };  

Для какого вызова будет использоватьсядобавьте эту новую роль в приложение с помощью API-интерфейса Azure AD Graph.

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Наконец-то я смог создать новую роль в Azure с помощью Azure Ad Graph API

1) Создать роль:

Guid _id = Guid.NewGuid();
List<String> _AllowedMemberTypes = new List<string> {
    "User"
};
AppRole appRole = new AppRole
{
    AllowedMemberTypes = _AllowedMemberTypes,
    Description = "Admins can manage roles and perform all actions.",
    DisplayName = "Global Admin",
    Id = _id,
    IsEnabled = true,
    Value = "Admin"

};

2) Получить приложение, роль которого должна бытьсозданный:

IPagedCollection<IApplication> pagedCollection = await activeDirectoryClient.Applications.Where(x => x.AppId == AppclientId).ExecuteAsync();
var appObject = pagedCollection.CurrentPage.ToList().FirstOrDefault();  

3) Добавить роль в Applicationa и обновить приложение:

 appObject.AppRoles.Add(appRole as AppRole);
 await appObject.UpdateAsync();
0 голосов
/ 23 ноября 2018

Вы можете обратиться к приведенному ниже коду для назначения роли приложения.

1. получить токен доступа

private static async Task<string> GetAppTokenAsync(string graphResourceId, string tenantId, string clientId, string secretKey)
        {
            string aadInstance = "https://login.microsoftonline.com/" + tenantId + "/oauth2/token";
            AuthenticationContext authenticationContext = new AuthenticationContext(aadInstance, false);
            var result = await authenticationContext.AcquireTokenAsync(graphResourceId,
                new ClientCredential(clientId, userId));
            return result.AccessToken;
        }

2.Ввести графический клиент.

var graphResourceId = "https://graph.windows.net";
var tenantId = "tenantId";
var clientId = "client Id";
var secretKey = "secret key";
var servicePointUri = new Uri(graphResourceId); 
var serviceRoot = new Uri(servicePointUri, tenantId);
var activeDirectoryClient = new ActiveDirectoryClient(serviceRoot, async () => await GetAppTokenAsync(graphResourceId, tenantId, clientId, secretKey));

3.создание роли

AppRole appRole = new AppRole
{
    Id = Guid.NewGuid(),
    IsEnabled = true,
    Description = "Admins can manage roles and perform all actions.",
    DisplayName = "Global Admin",
    Value = "Admin"
};

4.добавление роли на роль

User user = (User) activeDirectoryClient.Users.GetByObjectId("userobjectId").ExecuteAsync().Result;
AppRoleAssignment appRoleAssignment = new AppRoleAssignment
{
       Id = appRole.Id,
       ResourceId = Guid.Parse(newServicePrincpal.ObjectId),
       PrincipalType = "User",
       PrincipalId = Guid.Parse(user.ObjectId),

  };
user.AppRoleAssignments.Add(appRoleAssignment);
user.UpdateAsync().Wait();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...