私はクライアントが私との予定を作ることができる(C#)Webアプリケーションを構築しようとしています。 私は、WebアプリがOutlookカレンダーに項目を読み込んで追加できるようにしたいと思います。 多くのユーザーがウェブアプリを使用しますが、ウェブアプリは1つのOutlookカレンダーにのみアクセスします。 私が働くことができたすべての例では、対話的に認証するWebアプリケーションユーザーが関わっていますが、ユーザーは自分のパスワードを知らないでしょう。 ウェブアプリでユーザー名/メールアドレスとパスワードをハードコードしたいと思います。ハードコードのユーザー名とパスワードでOffice Outlook APIを使用する
私はエラーを取得するトークンを取得しようとしている:
Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException:
AADSTS65001: The user or administrator has not consented to use the application.
Send an interactive authorization request for this user and resource.
私はテナントの管理者がいないですが。管理者の介入なしにこれを動作させる方法はありますか? ユーザーの資格情報としてユーザー名とパスワードではなく、何らかの証明書を使用しますか?以下のように(現在は簡単なC#のコンソールアプリケーションで)
私のコードは次のとおりです。
UserCredential uc = new UserCredential(MyUsername, MyPassword);
var AuthContext = new AuthenticationContext("https://login.windows.net/Common");
// this doesn't work unless an unexpired token already exists
ar = AuthContext.AcquireToken("https://outlook.office365.com/", MyClientId, uc);
// this does work, but requires the app user to know the password
ar = AuthContext.AcquireToken("https://outlook.office365.com/", MyClientId, new Uri(MyReturnURI));
申し訳ありませんがわかりません。あなたが提供したコードを使用すると、サインインするために私をWebページに送ります(そして、私が自分のユーザー名とパスワードを提供するとトークンを返します)。しかし、そのコードはいつ実行され、誰によって実行されるのでしょうか?実装しようとしているWebアプリケーションは、ユーザー名とパスワードを知らない他のユーザーによって使用されます。あなたが前もって提供したコードを実行し、トークンを取得し、それを私のWebアプリケーションの文字列としてハードコードしたいのですか?これらのトークンは1時間ほど後に失効すると思いましたか? – Wayne
ポストでコードを実行した後、元の投稿で使用するアカウントのページにログインします。その後、同意ページが表示され、アクセストークンが取得された後、元の投稿の問題は修正されます(既に**アプリケーションの使用に同意した**)。 –
ありがとう、それはうまくいくようです。だからこの同意は永遠に続くのですか? – Wayne