私はidentityServer4のドキュメントを読んでおり、ログインプロバイダとしてMicrosoft Office 365を使用するように設定しました。ユーザーがログインしたとき、私は彼が私のアプリがstartup.csASP.NET ID(IdentityServer4を使用)外部リソースoauthアクセストークンを取得
app.UseMicrosoftAccountAuthentication(new MicrosoftAccountOptions
{
AuthenticationScheme = "Microsoft",
DisplayName = "Microsoft",
SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme,
ClientId = "CLIENT ID",
ClientSecret = "CLIENT SECRET",
CallbackPath = new PathString("/signin-microsoft"),
Events = new OAuthEvents
{
OnCreatingTicket = context =>
{
redisCache.Set("AccessToken", context.AccessToken.GetBytes(), new DistributedCacheEntryOptions
{
AbsoluteExpiration = DateTimeOffset.UtcNow.AddDays(3)
});
return Task.FromResult(context);
}
}
Scope =
{
"Calendars.Read",
"Calendars.Read.Shared",
},
SaveTokens = true
});
にgraph.microsoft.com
のウェブフックAPIを使用して自分のカレンダーイベントにコードを購読できるようにすることができ、ボタンを作りたいです
しかし、これは明らかに実行可能な道ではありません。私はテストの目的でこれを行い、必要な購読のPoCを作成しました。
今、私は、この外部アクセストークンを取得できるようにするidentityServerと通信するためにスマートな方法があるかどうかを知りたいので、ログインしたユーザーの代わりにmicrosoft apiを使用できますか?
また、このOAuthEventから直接Microsoft AccessTokenを取得し、ログインしたユーザーにリンクされたデータベースに直接格納する唯一の方法はありますか?
私の機能のほとんどは第三者からのデータに基づいているので、これは本当に必要です。
こんにちはクリスチャンログインしているユーザーのコンテキストでこれらのトークンを取得するために
1つのasp.netプロジェクトですべての部品を使用しているのですか、IdentityServerの別のエンドポイントを使用していますか? –
@AmrElsehemy私は別のプロジェクトでIDサーバーをホストしています。私たちはマイクロサービスを利用しており、他のAPIはAccessトークン検証ミドルウェアを通じてIDサーバーと通信しています。希望があなたの質問に答えることを望みます。 –
別の質問ありがとう、同じエンドポイントまたは外部のものでホストされているIDサーバーがありますが、それは使用する方が良いでしょうか? –