私の月の長い問題取り巻くさまざまな質問をする別の試み:- MSグラフ
を私は今取得するフロー「オン代理-OF」を開始しようとしていますユーザーがMicrosoftアカウントでログインしたときのMSグラフトークン。ここで説明したよう: https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-on-behalf-of
をクライアントでは、ユーザーがサーバー・フローを使用してログイン:.NETのバックエンドで
var user = await MobileService.LoginAsync(MobileServiceAuthenticationProvider.MicrosoftAccount);
を、私はMSグラフトークンを取得しようとしています:
string clientId = "id-shown-in-app-registration-portal";
string clientSecret = "secret-shown-in-app-registration-portal";
IEnumerable<string> msIdTokenOut = null;
Request.Headers.TryGetValues("x-ms-token-microsoftaccount-access-token", out msIdTokenOut);
string msIdToken = msIdTokenOut.FirstOrDefault();
AuthenticationContext authContext = new AuthenticationContext("https://login.microsoftonline.com/common/oauth2/v2.0");
UserAssertion assertion = new UserAssertion(msIdToken);
ClientCredential cred = new ClientCredential(clientId, clientSecret);
AuthenticationResult authResult = await authContext.AcquireTokenAsync("https://graph.microsoft.com/", cred, assertion);
次のエラーが表示されます。 aadsts50027:無効なjwtトークン。トークン形式が無効です。
クライアントフロー(取得したトークンでApp Servicesを認証しない)に対してMSALを使用して、サーバーフローからログインに至るまでのあらゆる組み合わせを試しました。これは私を1ヶ月以上夢中にさせてくれました。私は、2つのマイクロソフト製品が一緒に働くために何人もの人が飛び乗ってきたとは思えません。誰かが私を解決策に向かって導くことができれば、私は感謝の意を超えています。
私が知る限り、live sdkトークンは今のところoauthで使用できませんでした。私は、それをテストするためにログインするためのクライアント・フローとサーバー・フローの両方を作成しています。私は、代わりにoauthにリターントークンを使用できないことがわかりました。この機能を追加するには、[feedback](http://feedback.azure.com)をazureチームに追加することをお勧めします。 –
ありがとうございます、私はフィードバックを提出します。今のところ、私のAzure MobileバックエンドにMS Graphのアクセスをどのように含めることができるか、ご意見はありますか?動作するフローはありますか? –
回避策があります。モバイルバックエンドでMSALアクセストークンを使用して簡単な認証を使用しないカスタム認証を有効にすることをお勧めします。 –