私は、Azure ADをMVCアプリケーションの認証サービスに使用しています。グラフAPIを使用して、ユーザーアカウントを正常に管理しています。私はAppRoleAssignment
をユーザーに追加しようとしています。Azure AD Add AppRoleAssignment
string tenantID = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/tenantid").Value;
string userObjectID = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value;
Uri servicePointUri = new Uri(graphResourceID);
Uri serviceRoot = new Uri(servicePointUri, tenantID);
ActiveDirectoryClient activeDirectoryClient = new ActiveDirectoryClient(serviceRoot, async() => await GetTokenForApplication());
IUser user = new User();
user.JobTitle = "Tester";
user.DisplayName = "Test Tester";
user.Surname = "Tester";
user.GivenName = "Test";
user.UserPrincipalName = "[email protected]";
user.AccountEnabled = true;
user.MailNickname = "ttester";
user.PasswordProfile = new PasswordProfile
{
Password = "XXXXX",
ForceChangePasswordNextLogin = true
};
await activeDirectoryClient.Users.AddUserAsync(user);
var appRoleAssignment = new AppRoleAssignment
{
Id = Guid.Parse("XXXXX"),
ResourceId = Guid.Parse("XXXXX"),
PrincipalType = "User",
PrincipalId = Guid.Parse(user.ObjectId)
};
user.AppRoleAssignments.Add(appRoleAssignment);
await user.UpdateAsync();
AppRoleAssignment
は決して作られません。それがコンストラクタ変数であるかどうかはわかりません。
id
ロールのID
をアプリケーションマニフェストで作成します。 ResourceId
私はアプリケーションのObjectId
を配置しています。アプリケーションはAADディレクトリの下に作成されます。
コードは実際にはエラーなしで完了しますが、ユーザにはAppRoleAssignments
ではないことが表示されます。
最後に、アプリケーションロールを使用してRBACを実装しようとしています。
ご協力いただきまして誠にありがとうございます。
にRESOURCEIDを設定する必要がありましたこれはアウト。興味深いことに、 'User'オブジェクトを取得したときに' AppRoles'プロパティが設定されています。私のコードでは、実際にAppRoleに割り当てています。しかし、その後の検索でもプロパティはまだnullです。 –