2016-03-03 14 views
8

OneDrive APIを試しています。Onedrive SDK/API(またはその他のAPI)で認証されたままにする

SpecificalyここOneDriveのAPIブラウザをhttps://github.com/onedrive/onedrive-sdk-csharp

のコードを検索します。

私はこの特定の科目について正式な教育を受けていません(認証)。

私が知りたいことは、最初のログイン後にどのように認証されたままになりますか?つまり、トークンのURIを毎回照会すると思われる場合、どのようにログイン情報を保存するのですか?

たとえば、OneDrive API Browserソリューションを実行すると、アプリケーションが実行されるたびにサインインする必要があります。資格情報をテキストファイルのどこかに保存したいのですが?どうすればいい? (私はセキュリティ問題/そこでの貧弱な実践を認識しています)

トークンをどこかに保存する必要がありますか?長期トークンに使用する別のサービスはありますか?それも可能ですか?クッキーは関係していますか

+0

1つの標準的な方法は、.NETでProtectedDataクラスを通じて、Windowsのデータ保護API(DPAPI)を使用することです: https://msdn.microsoft.com/en-us/library/ms229741.aspx –

+0

これを確認してくださいhttps://github.com/OneDrive/onedrive-sdk-dotnet-msa-auth-adapter#cache-sessions それ以外の場合は、Microsoftアカウントサービスoauthエンドポイントを直接https://dev.onedrive.com/auth/msa_oauth.htm#step-3-get-a-new-access-token-or-refresh-tokenで使用できます – qjuanp

答えて

2

概念的には、code flowを使用してアプリを認証した後、クライアントIDと共に保存して、後でhereのようにアクセストークンを取得するためのリフレッシュトークンを受け取ります。 WindowsおよびWindows Phone用のあなたはまた、すべての仕事をしてAuthentication Adapter for the OneDrive SDKを使用することができます。これを行うための

MsaAuthenticationProvider msaAuthProvider = new MsaAuthenticationProvider(
          MsaClientId, 
          MsaClientSecret, 
          RedirectUri, 
          Scopes, 
          null, 
          new CredentialVault(MsaClientId)); 

     await msaAuthProvider.RestoreMostRecentFromCacheOrAuthenticateUserAsync(userName); 
     OneDriveClient oneDriveClient = new OneDriveClient("https://api.onedrive.com/v1.0", msaAuthProvider); 
関連する問題