問題タブ [msal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - サービス アカウントを使用して O365 ユーザーのカレンダーを読み取り/更新する
サービス アカウントを使用して、O365 ユーザーのカレンダーを読み取り、更新したいと考えています。アクセスしたいすべてのユーザーが自分のカレンダーを私のアカウントと共有しています。
認証に AAD v2.0 MSAL を使用するアプリがあります。問題は、資格情報を使用してこれらのユーザーのカレンダーを更新/読み取りたいのですが、このアカウントでサインインしたくないため、API エンドポイントを呼び出すときに資格情報を保存して使用することです。
Exchange Web サービスを使用して、保存されたユーザーから電子メールを送信する例:
ここで、MSAL を使用して、ユーザー カレンダーの読み取り/更新に対して同じことを行いたいと考えています。これはできますか?そうでない場合、証明書を使用するなど、他の方法はありますか?
たとえば、ADAL には次のようなものがあります。
azure-ad-b2c - AspNetCore で Azure AD-B2C に MSAL を使用していますか?
これが私の問題です。VS2017 RC で新しい AspNetCore WebApplication を作成します。
認証に Azure AD B2C を使用したいので、必要な NuGet パッケージを追加します。
次に、すべてのコードを追加して認証を構成します。実際、この Channel9 ビデオでデモされたアプリを再現しました: https://channel9.msdn.com/events/Ignite/Australia-2017/CLD336a
正常に動作し、期待どおりに認証できます。ここで、AAD-B2C を使用してセキュリティで保護された WebApi にアクセスするために、access_token を取得したいと考えています。このためには、ResponseType を次のように変更する必要があります。
そしてイベントを処理しOnAuthorizationCodeReceived
ます。そのためには、Nuget Package を追加する必要があると理解していMicrosoft.IdentityModel.Clients.ActiveDirectory
ます。しかし、このライブラリは、AAD-B2C に必要な v2.0 エンドポイントをターゲットにしません。
そのため、別の GitHub ソリューション ( https://github.com/dzimchuk/azure-ad-b2c-asp-net-core ) で、Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory
パッケージを使用できることがわかりました。
残念ながら、このパッケージは NETCoreApp,Version=v1.0 と互換性がなく、プロジェクトに追加しようとすると次のエラー メッセージが表示されます。
1 つ以上のパッケージが .NETCoreApp,Version=v1.0 (win-x64) と互換性がありません。
パッケージ Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory 4.0.209160138-alpha は netcoreapp1.0 (.NETCoreApp,Version=v1.0) / win-x86 と互換性がありません。パッケージ Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory 4.0.209160138-alpha
私は何が欠けていますか?
asp.net-identity - OpenId Connect のユーザーの一意の ID は何ですか?
Asp.Net Identity を使用して顧客データベースを管理する Asp.Net 4.5 MVC アプリがあります。現在、Microsoft アカウント認証を使用しています。職場/学校のアカウントを持つ顧客もサインインできるように、OpenId Connect の使用を検討しています。.NET MVC Web アプリにサインインを追加します。
Microsoft アカウント認証は、ログインしたユーザーの一意の ID として ProviderKey を返します。これは、顧客データベースの UserId にマップされます。
OpenId Connect は ProviderKey を返していないように見えますが、NameIdentifier
有望に見えます
ClaimsPrincipal.Current.FindFirst(System.IdentityModel.Claims.ClaimTypes.NameIdentifier)?.Value;
NameIdentifier
OpenId Connect によって返されるユーザーの一意の識別子ですか? 時間の経過とともにユーザーを一意に識別するために確実に使用できますか?