Microsoft Graph API(nugetで利用可能なdotnet/C#ライブラリ)を使用して、Azure ADグループからユーザーを追加(後で削除)する方法を調査しました。他のすべて無視MS Graph API C#グループにユーザーを追加する
は周りを取得接続GraphServiceClient
など、私は以下のサンプルに非常によく似たコードをしようとしている、(示唆物事がうまくある)任意の例外を取得ではなく、私はもう一度経由でグループを取得するときAPIはまだメンバーがいません!
興味深いことに(脇など)私はuser
オブジェクトにmemberOf
プロパティをお願いし、それを展開することを教えたときに、それはまだ戻ってヌルが来ます。
var user = await client.Users[userPrincipalName]
.Request()
.Select("id,memberOf")
.Expand("memberOf")
.GetAsync();
var group = await client.Groups[groupId]
.Request()
.Select("members")
.Expand("members")
.GetAsync();
group.Members.Add(user);
await client.Groups[groupId].Request().UpdateAsync(group);
// userPrincipalName => "[email protected]"
// groupId => the object GUID for the group
私がここで間違っていることを知っている人はいますか?私は設定ライセンスにここで提案ソリューションにアプローチのスタイルを設定しようとした、また
:私はこのコードを思い付くために使用されるドキュメントは、次のドキュメントへのリンクに基づいていましたユーザーのための:いつものように
Assign user license via Graph API
、任意の助けに感謝します。
ピーター
追加私はまた、潜在的にグループ自体ではなく、.Members
プロパティ/リソースの更新を見て、グラフAPIにチャンスをうかがってみた
:
await client.Groups[groupId].Members.Request(). // <-- Only has GetAsync()
しかし、それにはGetAync()
メソッドしかありません。答え
var usersGroups = await client.Users[userPrincipalName].MemberOf.Request().GetAsync();
if (!usersGroups.Any(g => g is Group && g.Id == groupId))
{
// User is not a member of the group, add them.
var user = await client.Users[userPrincipalName].Request().Select("id").GetAsync();
await client.Groups[groupId].Members.References.Request().AddAsync(user);
}
に基づいて更新
私はそれが簡潔にメンバーを追加することに関する問題に答えると思うように私は、回答に基づいて上記のコードスニペットを追加しました。
答えのNan Yuに感謝します。
私は以前この "GroupService"を見たことがありませんでしたが、他のものは理にかなっているようです。 :) – peteski
申し訳ありませんが、私はhttps://github.com/microsoftgraph/aspnet-snippets-sampleを使用していると思います。そのコードサンプルには、GroupServiceクラスがあります。そのコードサンプルを使用していない場合IGroupMembersCollectionWithReferencesPage members = await graphClient.Groups [id] .Members.Request()。GetAsync();を使用することができます。グループメンバーを得る。編集した回答を確認してください。 –
申し訳ありませんが、コードサンプルはhttps://github.com/microsoftgraph/aspnet-snippets-sampleです。 –