私はXamarinアプリケーション内の一部であるグループを取得しようとしています。Xamarinアプリケーション内のMicrosoft Graph APIスコープ
は今のところ、私はこの方法でトークンを取得しています:
public async Task SignIn()
{
if (App.IdentityClientApp != null)
this.authenticationResult = await App.IdentityClientApp.AcquireTokenAsync(new String[] { Constants.ApplicationID });
}
マイアプリのIDがApps.dev.microsoft.com登録ポータルから来ています。
私は、この方法で静かに別のトークンを取得:
private async Task GetTokenForGroups()
{
this.authenticationResult = await App.IdentityClientApp.AcquireTokenAsync(new String[] { "User.Read", "Directory.AccessAsUser.All" }, null);
}
私はこれを行う場合、私は、管理者アカウントでログインするように求められています。 トークンの取得は成功しますが、他の管理者以外のユーザーの権限を「覚えている」のではなく、毎回管理者の承認を求めるメッセージが表示されます。
私は唯一の「User.Read」スコープを持つこの呼び出し作る場合:
public void GetAuthenticatedClient()
{
try
{
this.graphClient = new GraphServiceClient(
"https://graph.microsoft.com/v1.0",
new DelegateAuthenticationProvider(
async (requestMessage) =>
{
await GetTokenForGroups();
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", this.authenticationResult.Token);
}));
}
catch (Exception ex)
{
Debug.WriteLine("Could not create a graph client: " + ex.Message + ex.InnerException);
}
}
public async void GetGroups()
{
this.GetAuthenticatedClient();
var groups = await graphClient.Me.MemberOf.Request().GetAsync();
}
を私はいくつかのグループを取得するが、彼らは、Outlookのグループではなく、セキュリティのものであるように見えます。
apps.dev.microsoft.comのマイ・グラフィックス・パーミッションは完全に空です。
ディレクトリデータをどのように読み取ることができますか?私は間違って何をしていますか?
ありがとうございます。
ありがとうございました。 リダイレクトURIは重要ですか?それともコンセプト後によりフレンドリーなナビゲーションを提供するために使用されていますか? –
これは必須ですが、どのページでもかまいません。テナントがどのような同意を得たかを示すデータを返します。これは、どのユーザーが同意を得たかを把握するのに役立ちます。 –