Client-managed authentication - Live SDKから、我々はあなたが伐採については、以下のペイロードを渡す必要があることを見つけることができる:
{"authenticationToken":"{Live-SDK-session-authentication-token}"}
その後、私はLiveSDKをチェックしLiveLoginResult.Session.AuthenticationToken
を呼び出すことによってLiveConnectSession.AuthenticationTokenを取得しようとしたが、それはnullを返します。
次に、Microsoft Accountのサーバーフロー認証を確認し、Live SDK REST API - Signing users in with RESTを使用することを確認しました。この問題を確認するために、郵便番号を使って認証リクエストをシミュレートしようとしました。ここではアクセストークンを取得するための私のテストは、次のとおりです。
https://login.live.com/oauth20_authorize.srf?client_id={client-id}&redirect_uri={return-url}&response_type=code&scope=wl.basic+wl.offline_access+wl.signin
あなたが見ることができたようGet an access token and an authentication tokenに関する公式文書で述べたように、我々はauthentication_token
を取得できませんでした。
次に、次のようにログにaccess_token
を使用しようとしましたが、動作する可能性があります。私はマイクロソフトの認証を使用するように設定されているAzureの機能へのアクセスを許可するために得るためにMSALクライアント・フローを使用してみる
。 MSALについては
、あなたはそれが次のエンドポイントに対して要求を送信し、両方の{"authenticationToken":"App.TokenRequest.AccessToken"}
と{"access_token":"App.TokenRequest.AccessToken"}
ペイロードが正常にログインすることができませんでした見つけることができます。私のテストパー
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
マイクロソフトのための認証/承認が異なる認証エンドポイントを使用しているため、各エンドポイントによって生成されたトークンは、相互に適用することができませんでした。
私のテストに基づいて、Microsoft Account Developer Centerにあなたのアプリを作成して、あなたの晴れた機能アプリの認証情報を追加するだけでよいのです。クライアントの場合は、MSAロギングにはLiveSDK [非推奨]またはOneDrive SDK for CSharpを使用し、アシルファンクションアプリでログするにはaccess_token
を取得できます。ここでOneDrive SDKにログインするための私のUWPクライアントである、あなたはそれを参照することができます:MsaAuthenticationProvider
について、あなたはAuthentication Adapter for the OneDrive SDKを参照してください可能性があり
var msAuth = new MsaAuthenticationProvider(
"{app-Id}", //application id of your app
"urn:ietf:wg:oauth:2.0:oob", //the redirect url for your native application in your app
new string[] { "wl.signin", "offline_access" });
await msAuth.AuthenticateUserAsync();
。
私はonedrive sdkを行っていますが、MSALが新しいエンドポイントをターゲットにしているので、問題の中心にあるようです。ポータルのAppサービスで設定できる簡単な認証を使用できません。 OneDrive SDKで職場と個人の両方のアカウントを使用できますか? – snowCrabs
私のテストでは、[Microsoft Application Registration Portal](https://apps.dev.microsoft.com/)に登録されているアプリケーションの場合、Microsoftアカウントで動作します。 [Microsoft Azure Active Directory](https://manage.windowsazure.com/)に登録されているアプリの場合、テナントの職場または学校のユーザーをサポートします。詳細については、[OneDrive SDKの認証アダプタ](https://github.com/OneDrive/onedrive-sdk-dotnet-msa-auth-adapter)を参照してください。 –
私の理解では、MSALは今のところAzure App ServiceのAuthentication/Authorizationでは動作しませんでした。 –